Domanda

Attualmente sto usando Vista 32-bit. Come faccio ad aggiungere il gruppo di protezione di Windows "Everyone" e dare il pieno controllo in una directory e tutto questo di sub-directory e tutti i file? C'è uno script PowerShell che potrei usare?

Grazie!

È stato utile?

Soluzione

ho ampliato frammento di Martona ed è stato in grado di dare accesso a tutte le cartelle e sottocartelle. Ecco il mio codice -

$FilesAndFolders = gci "c:\data" -recurse | % {$_.FullName}
foreach($FileAndFolder in $FilesAndFolders)
{
    #using get-item instead because some of the folders have '[' or ']' character and Powershell throws exception trying to do a get-acl or set-acl on them.
    $item = gi -literalpath $FileAndFolder 
    $acl = $item.GetAccessControl() 
    $permission = "Everyone","FullControl","Allow"
    $rule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission
    $acl.SetAccessRule($rule)
    $item.SetAccessControl($acl)
}

Altri suggerimenti

$acl = Get-Acl c:\mydir
$permission = "Everyone","FullControl","Allow"
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission
$acl.SetAccessRule($rule)
$acl | Set-Acl c:\mydir

A volte il modo "nativo" PowerShell non è necessariamente il modo migliore. Per qualcosa come questo vorrei ancora usare icacls.exe. Ricordate che exes buon ol' funzionano abbastanza bene in PowerShell. Basta spostarsi nella directory che si desidera impostare ed eseguire:

icacls $pwd /grant "Everyone":(OI)(CI)F

Questo darà a tutti il ??pieno accesso ai verso il basso directory corrente (tramite l'ereditarietà delle autorizzazioni). Questo dovrebbe funzionare fintanto che non ci sono smentite espliciti a tutti nella struttura di directory.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top