Eikatosh 0 Geschrieben 15. Dezember 2017 Melden Teilen Geschrieben 15. Dezember 2017 Einen schönen guten Tag, Ich muss 1800 Usershares ändern. Dabei müssen alle Security Einträge gelöscht werden und nur bestimmte Gruppen gesetzt werden. Desweiteren muss der Owner angepasst werden. Der User selbst wird per TextBox eingegeben. Hier der Code: $form = New-Object “System.Windows.Forms.Form”; $form.Width = 700; $form.Height = 300; $form.Text = "Share Berechtigung"; $form.StartPosition = [System.Windows.Forms.FormStartPosition]::CenterScreen; $textBox1 = New-Object “System.Windows.Forms.TextBox”; $textBox1.Left = 90; $textBox1.Top = 90; $textBox1.width = 500; $Button1=New-Object "System.Windows.Forms.Button"; $Button1.Left = 270; $Button1.Top = 120; $Button1.width = 100; $Button1.Text="Anpassen"; $eventHandler = [System.EventHandler]{ $textBox1.Text; $form.Close();}; $button1.Add_Click( { $ordner =$textBox1.Text; $temp = "\\Servername\usershare\"+ $textBox1.Text; New-Item -ItemType directory -Path $temp $Acl = Get-Acl $temp $Ar = New-Object system.security.accesscontrol.filesystemaccessrule($ordner,"FullControl","Allow") $Ar1 = New-Object system.security.accesscontrol.filesystemaccessrule("Administrators","FullControl","Allow") $Ar2 = New-Object system.security.accesscontrol.filesystemaccessrule("CREATOR OWNER","FullControl","Allow") $Ar3 = New-Object system.security.accesscontrol.filesystemaccessrule("SYSTEM","FullControl","Allow") $Acl.SetAccessRule($Ar) $Acl.SetAccessRule($Ar1) $Acl.SetAccessRule($Ar2) $Acl.SetAccessRule($Ar3) Set-Acl ($temp) $Acl $username=$ordner $ID = new-object System.Security.Principal.NTAccount($username) $acl.SetOwner($ID) set-acl -path $temp -aclObject $acl Get-ChildItem -Path $temp -recurse | set-acl -aclObject $acl } ) $form.Controls.Add($button1); $form.Controls.Add($textBox1); $ret = $form.ShowDialog(); Ich weiß leider nicht wie man alle Einträge der Security löscht und das Script für SetOwner funktioniert leider nicht. Es wird folgendes ausgegeben: "Die Sicherheits-ID darf nicht der Besitzer dieses Objekts sein." Hoffe jemand kann mir bei diesem Problem helfen. Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 16. Dezember 2017 Melden Teilen Geschrieben 16. Dezember 2017 Vielleicht fragst Du einfach den Author des Scripts um Rat. ;) ... und nur aus Neugier: Du möchtest 1.800 User-Shares anpassen und willst dafür die User jeweils per Textbox eingeben?? :schreck: ... wow ... Hut ab! ;) Zitieren Link zu diesem Kommentar
NilsK 2.957 Geschrieben 16. Dezember 2017 Melden Teilen Geschrieben 16. Dezember 2017 Moin, oder kürzer gesagt: Ich würde den wesentlichen Teil des Skripts von SetACL erledigen lassen (praktisch Industriestandard für Berechtigungen). Die einzige echte Variable in deinem Skript scheint der Username zu sein, den könnte man bei 1800 Einträgen ja sicher besser aus einer Datei entnehmen. Gruß, Nils Zitieren Link zu diesem Kommentar
Eikatosh 0 Geschrieben 18. Dezember 2017 Autor Melden Teilen Geschrieben 18. Dezember 2017 Morgen, Die User werde ich aus einer Datei entnehmen, dass ist aber noch nicht im Script hinterlegt. Mir geht es wirklich nur um den Ownership und das alle Einträge gelöscht werden. Leider sind immer unterschiedliche User im Ordner hinterlegt daher kann man die zu löschenden User nicht im Script mitgeben. Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 18. Dezember 2017 Melden Teilen Geschrieben 18. Dezember 2017 (bearbeitet) Die User werde ich aus einer Datei entnehmen, dass ist aber noch nicht im Script hinterlegt. Dann ist die Aussage in deinem ersten Posting nicht korrekt. Mir geht es wirklich nur um den Ownership und das alle Einträge gelöscht werden. Leider sind immer unterschiedliche User im Ordner hinterlegt daher kann man die zu löschenden User nicht im Script mitgeben. Wenn Du eine Liste mit Namen hast, dann kannst Du ja alle entfernen, die momentan NICHT dran sind. Beispiel: $username=$ordner If $username<>User_aus_der_Datei then DELETE Eintrag Den Rest darfst Du selbst machen. bearbeitet 18. Dezember 2017 von Sunny61 Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 18. Dezember 2017 Melden Teilen Geschrieben 18. Dezember 2017 Hast Du Dir denn die Empfehlung von Nils mal angesehen? SetACL von Helge Klein! Zitieren Link zu diesem Kommentar
Eikatosh 0 Geschrieben 18. Dezember 2017 Autor Melden Teilen Geschrieben 18. Dezember 2017 Ich hab's mir angesehen. Problem dabei ist das in den Security Einträgen viele Unterschiedliche User sind, die da nicht rein dürfen(Jeder Ordner hat andere User drin stehen). Deshalb hatte ich gefragt ob es ein Script gibt was wirklich alles daraus entfernt. $Ar = New-Object system.security.accesscontrol.filesystemaccessrule($ordner,"FullControl","Allow") $Ar1 = New-Object system.security.accesscontrol.filesystemaccessrule("Administrators","FullControl","Allow") $Ar2 = New-Object system.security.accesscontrol.filesystemaccessrule("CREATOR OWNER","FullControl","Allow") $Ar3 = New-Object system.security.accesscontrol.filesystemaccessrule("SYSTEM","FullControl","Allow") Der Teil beinhaltet nur die Einträge die später drin stehen müssen. Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 18. Dezember 2017 Melden Teilen Geschrieben 18. Dezember 2017 Mit einer Schleife alle Usernamen durchlaufen und die entfernen, die NICHT gleich dem Usernamen sind. Zitieren Link zu diesem Kommentar
NilsK 2.957 Geschrieben 18. Dezember 2017 Melden Teilen Geschrieben 18. Dezember 2017 Moin, wenn du dir endlich mal SetACL ansiehst, wirst du feststellen, dass du damit ACLs bereinigen kannst, um sie danach gezielt neu zu befüllen. Das Tool ist nicht umsonst Industriestandard. Gruß, Nils Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 18. Dezember 2017 Melden Teilen Geschrieben 18. Dezember 2017 Ich hab's mir angesehen. Hmmm ... keinen Kommentar dazu. Falls Du also weder Nils noch dem Entwickler glaubst, dass das Tool das kann, was auf der Homepage im Feature-Set angegeben ist, kannst Du immernoch ICACLS benutzen. Auch damit kann man existierende ACLs ersetzen - also eine neue erwünschte ACL konfigurieren, ohne die alte zu übernehmen oder zu ergänzen. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.