2016-05-09 8 views
-2

Was für einen freigegebenen Ordner ein guter Weg, um die Berechtigungen zu löschen, die ich unter Verwendung geteilt:Erteilung und löschen Berechtigungen für einen freigegebenen Ordner im Netzwerk in Powershell vorzugsweise ohne alias

NET SHARE MyFolder=C:\FolderX\Subfolder1 "/GRANT:Everyone,Full" (dies macht \ MyServer \ MyFolder \ SubFolder1 zugänglich Explorer von Jeder!)

Ich bin daran interessiert, diese Erlaubnis entfernt zu haben, zB \ MyServer \ MyFolder \ Subfolder1 wird nicht mehr für Jeder verfügbar sein (aber der Ordner wird physisch bleiben)

Auch, was ist eine gute Möglichkeit zum Ändern des aktuellen Zugriffs eines Ordners? z.B. Dies zweimal auszuführen funktioniert nicht: NET SHARE MyFolder=C:\FolderX\Subfolder1 "/GRANT:Everyone,Full" weil MyFolder bereits existiert!

Ist es möglich, die Erlaubnis zu erteilen, ohne einen künstlichen Namen zu erstellen? Daher ist \ MyServer \ FolderX \ Subfolder1 anstelle von \ MyServer \ Subfolder1 verfügbar. Sicher ist es möglich, denn manuell kann es gemacht werden. Wenn Sie den Zugriff manuell in Windows erteilen, müssen Sie keinen künstlichen Freigabenamen (Alias) erstellen. Danke!

+0

Ich bin nicht sicher, ob ich folge. Zuerst sagen Sie, dass Sie Freigabeberechtigungen entfernen möchten, aber dann sagen Sie, dass Sie Berechtigungen ändern möchten, ohne eine Freigabe zu erstellen. Freigabeberechtigungen können nur für einen freigegebenen Ordner festgelegt werden. NTFS-Berechtigungen (Registerkarte "Sicherheit") können jedoch ohne Freigabe festgelegt werden. Sprichst du darüber? Freigabe Dauerwelle und NTFS zul. sind sehr unterschiedlich –

Antwort

0

Wenn Sie NTFS-Berechtigungen von einem Benutzer entfernen möchten (der den Zugriff auf eine Ressource lokal/interaktiv auf dem Computer ermöglicht), verwenden Sie Get-ACL und Set-ACL.

#Get ACL-object (NTFS-security) 
$acl = Get-Acl -Path .\Test 

#Get access rules for EVERYONE 
$everyone = $acl.Access | Where-Object { $_.IdentityReference -match 'Everyone' } 

#Remove all access rules for EVERYONE 
$modified = @($everyone | Foreach-Object { $acl.RemoveAccessRule($_) }) -contains $true 

if($modified) { 
    #AccessRules modified, save. 
    Set-Acl -Path .\Test -AclObject $acl 
} 
+0

Danke Frode, das ist was ich brauchte! – dear1

Verwandte Themen