Cambiare i permessi ai files con Powershell

Find username

Vorreste cambiare i permessi di una serie di files usando Powershell ma non sapete come fare?

Ecco la funzione per voi!

Mi è capitato che un virus cambiasse tutti i permessi dei files EXE nella cartella di Windows, con le conseguenze che potete immaginare.
Quindi ho creato questa funzione per Powershell che modifica i premessi di un file.

La sintassi è questa:

ImpostaAutorizzazioni -Percorso "percorso_del_file" -IdentitaDaAutorizzare "Utente_o_gruppo" -TipoAutorizzazione "Tipo_di_permesso"


Dove il tipo di permesso può essere: FullControl, ReadAndExecute, Read.

Ecco come realizzare la funzione in Powershell:

function ImpostaAutorizzazioni()
{
Param(
   [Parameter(Mandatory=$True,Position=1)]
   [string]$Percorso,
	
   [Parameter(Mandatory=$True,Position=2)]
   [string]$IdentitaDaAutorizzare,

   [Parameter(Mandatory=$True,Position=3)]
   [ValidateSet("FullControl", "ReadAndExecute", "Read")]
   [string]$TipoAutorizzazione

)


    $Acl = (Get-Item $Percorso).GetAccessControl('Access')
    Write-Host "Percorso:" $Percorso "Utente da autorizzare:" $IdentitaDaAutorizzare "Tipo autorizzazione:" $TipoAutorizzazione
    $RegolaAccesso = New-Object system.security.accesscontrol.filesystemaccessrule(
         $IdentitaDaAutorizzare,$TipoAutorizzazione,"Allow"
    )
    $Acl.SetAccessRule($RegolaAccesso)
    Write-Host $Acl
    $Acl | Set-Acl $Percorso
}

Esempi:
Per permettere all’utente TrustedInstaller il controllo completo del file attrib.exe:

ImpostaAutorizzazioni "C:\Windows\System32\attrib.exe" "NT SERVICE\TrustedInstaller" "FullControl"

Per permettere al gruppo di utenti NOMEDOMINIO\Domain Admins il permesso di lettura/scrittura del file attrib.exe:

ImpostaAutorizzazioni "C:\Windows\System32\attrib.exe" "NOMEDOMINIO\Domain Admins" "ReadAndExecute"

Per cambiare il permesso a tutti i files exe presenti nella cartella c:\programmi\adobe e relative sottocartelle ed assegnare a Everyone il controllo di sola lettura:

get-childitem "c:\programmi\adobe" -recurse -include *.exe | % {ImpostaAutorizzazioni $_.fullname "Everyone" "Read"}


P.S.

Per cambiare i permessi potrebbe essere necessario anche assumere la proprietà (ownership) del file.
In questo caso basterà usare il comando takeown /f nomefile

Lascia un commento qui

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...