Windows Server: come ripristinare l’accesso agli Amministratori di sistema al reindirizzamento della cartella Documenti

Se avete seguito le Microsoft’s Best practices for Folder Redirection per il reindirizzamento delle cartelle utente, avete accettato le impostazioni predefinite e permesso al sistema di creare le cartelle.

Il problema è che per impostazione predefinita l’opzione concedi all’utente i diritti esclusivi per la cartella Documenti è selezionata, con la seguente conseguenza (Technet library article):

If you select this check box, the user and the local system have full control over the folder, and no one else, not even the administrator, has any rights to it. If you clear this check box, no changes are made to the permissions on the folder. Whatever permissions are in effect by default remain in effect.

Questo significa che, se avete già parecchi reindirizzamenti di cartelle Documenti impostati in quel modo e che avete bisogno di accedervi, siete un filo sfortunati. L’unico modo documentato per riottenere l’accesso a queste cartelle è quello di ottenere la proprietà di ogni singola cartella e modificare manualmente le autorizzazioni per dare al gruppo Administrators controllo completo. Spulciando l’internet ho trovato un modo migliore.

Si noti che se si sta solo configurando il reindirizzamento delle cartelle e si vuole fare in modo che gli amministratori abbiano accesso alle cartelle reindirizzate, è possibile seguire i passaggi elencati nel seguente articolo: Enabling the administrator to have access to redirected folders. Per tutti gli altri continuate a leggere.

Il trucco è quello di rendersi conto che l’account di sistema locale ha il pieno controllo della cartella e che PsExec consente di eseguire i comandi utilizzando tale account (opzione-s). Quindi, se il comando in questione è uno script PowerShell che dà il controllo completo ad un gruppo cui appartenga l’account administrator, il problema è risolto!

Ecco cosa dovete fare:

1. Scaricare e installare PsExec e PowerShell. PowerShell deve essere installato sul computer (probabilmente un server) che ospita le cartelle reindirizzate.

2. Modificare le variabili $StartingDir e $Principal nel seguente script per adattarle alla vostra situazione. $StartingDir è il percorso della cartella condivisa che contiene tutte le cartelle Documenti reindirizzate, $Principal è il nome del gruppo di utenti o utente locale a cui dovrebbe essere concessa l’autorizzazione. Deve essere un account locale, in quanto lo script verrà eseguito utilizzando l’account di sistema locale, che non conosce gli account di dominio. Aggiungeremo utenti di dominio e / o gruppi più tardi (fase 4).

#ChangePermissions.ps1
# CACLS rights are usually
# F = FullControl
# C = Change
# R = Readonly
# W = Write

$StartingDir= "C:\USERS"

$Principal="Administrators"

$Permission="F"

$Verify=Read-Host `n "You are about to change permissions on all" `
"files starting at"$StartingDir.ToUpper() `n "for security"`
"principal"$Principal.ToUpper() `
"with new right of"$Permission.ToUpper()"."`n `
"Do you want to continue? [Y,N]"

if ($Verify -eq "Y") {

foreach ($file in $(Get-ChildItem $StartingDir -recurse)) {
#display filename and old permissions
write-Host -foregroundcolor Yellow $file.FullName
#uncomment if you want to see old permissions
#CACLS $file.FullName

#ADD new permission with CACLS
CACLS $file.FullName /E /P "${Principal}:${Permission}" >$NULL

#display new permissions
Write-Host -foregroundcolor Green "New Permissions"
CACLS $file.FullName
}
}

Nota: Questo script è una versione semplificata dello script di Don Jones trovato qui: http://technet.microsoft.com/en-us/magazine/2008.02.powershell.aspx. Verifica per ulteriori opzioni.

3. Ora, abbiamo bisogno di eseguire lo script sopra utilizzando PsExec via l’account di sistema locale. Si noti che la riga di comando mostrata eseguirà PsExec sul computer corrente e che lo switch -noexit impedirà PowerShell di chiudere lo script al termine, così si avrà la possibilità di leggere l’output.

Ecco cosa è necessario digitare al prompt dei comandi (per sicurezza eseguirlo con i permessi di administrator) (cambiate i percorsi ed i nomi dei file per adattarli al vostro ambiente):

psexec -s -i powershell -noexit "& 'C:\Path\To\ChangePermissions.ps1'"

L’opzione -i fa in modo che la finestra di PowerShell sia visibile sul desktop. Se si utilizza il Desktop Remoto per connettersi al server, assicurarsi che ci si connetta alla console o non si vedrà alcun output.

4. Ora che il gruppo locale Administrators ha il pieno controllo su tutti i file e cartelle, è possibile eseguire nuovamente lo script utilizzando ad esempio il proprio account (rimuovere l’opzione -s) per dare agli utenti del dominio (o gruppi) il controllo completo, utilizzando il formato dominio\utente oppure dominio\gruppo al posto della  variabile $Principal.

E questo è tutto, facile no?

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

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...

%d blogger cliccano Mi Piace per questo: