 |
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
Devi effettuare l'accesso per postare un commento.