Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Per Batch Berechtigungen für Benutzerprofile ändern

Frage Entwicklung Batch & Shell

Mitglied: heiko.wellendorf

heiko.wellendorf (Level 1) - Jetzt verbinden

13.11.2012, aktualisiert 16:07 Uhr, 2873 Aufrufe, 18 Kommentare

Wie kann ich möglichst effizient per Batch NTFS Berechtigungen ändern / hinzufügen?

Moin zusammen,

ich habe ein kleines Problem. Auf einem Fileserver liegen Benutzerprofile.
Da ist nun etwas durcheinander gekommen und einige Benutzer haben keine Vollen Rechte mehr auf Ihr Profil.
Es betrifft ca. 250 Profile, jedes einzeln zu bearbeiten wäre ja ziemlich aufwendet. Da dachte ich - Per Batch und Skript!

... Jetzt dachte ich so.

Beispiel:
01.
for /f "delims=" %%i in ('dir /b /ad "C:\Dokumente und Einstellungen\"') do @echo C:\Dokumente und Einstellungen\%%i>>ProfileList.txt
Die Liste nehme ich dann und ein zweites Script nimmt den Inhalt

In dem Fall steht z.B. das drin: C:\Dokumente und Einstellungen\Lars.Testbenutzer

Und vergibt dann über subinacl oder ähnlichem die Berechtigung für den Benutzer lars.testbenutzer.
Jetzt ist das gar nicht so einfach.. Wie kommme ich jetzt jeweils an den Benutzernamen ran?
Nun da dachte ich selbes spiel.. aber nein. Das geht ja nicht so einfach.

... Ich hab gerade kein Plan mehr wie man das in einem kleinen Script realisieren könnte.
Habt ihr da ne Idee? Wäre ganz dankbar

Lieber Gruß aus Hamburg
Heiko
Mitglied: Penny.Cilin
13.11.2012 um 16:16 Uhr
hallo Heiko,

schau Dir mal CACLS oder XCACLS (Ressource Kit Windows Server 2003) an. Damit kannst Du die Berechtigungen in eine Datei umleiten. Dann kannst Du diese via Batch neu setzen.

Under Windows 7 bzw. Windows Server 2008 heißt das Tool ICACLS.


Gruss Penny.
Bitte warten ..
Mitglied: heiko.wellendorf
13.11.2012 um 16:19 Uhr
Das Tool kenne ich.. aber ich hab gerade so ne Blockade wo ich nicht weiterkomme..

Ich hab n Userprofile X auf D:\Profile, dort sind 250 Profilordner und auf jeden Ordner muss der USer selbst wieder vollzugriff haben ...

Gibts da kein Zweizeiler oder so?
Bitte warten ..
Mitglied: DerWoWusste
13.11.2012 um 16:28 Uhr
Moin.

Generier eine Liste von Usern.
Dann lass eine For-schleife gegen diese Liste arbeiten, die mit icacls Rechte setzt bzw. mit subinacl Besitzer. Also sowas wie
icacls ...\\server\share\%%a .../grant %%a:m
Bitte warten ..
Mitglied: heiko.wellendorf
13.11.2012 um 16:54 Uhr
for /f "tokens=1,2,3 delims=\" %%a in (C:\ProfileList.txt) do (
echo.
echo Variable 1 %%a
echo Variable 2 %%b
echo Variable 3 %%c
echo.
:: Variablen zusammensetzen
set pfad=%%a\%%c\%%c
set benutzer=%%c
echo ntfsrechtetool %pfad% %benutzer% vollzugriff
pause
)


Sowas in die Richtung stelle ich mir dann vor?! ..
Hmm... warum kann ich pfad und benutzer nicht als variable benutzen? da ist das echo für pfad und benutzer leer
Ach mensch .. .
Bitte warten ..
Mitglied: bastla
13.11.2012, aktualisiert um 17:05 Uhr
Hallo heiko.wellendorf und willkommen im Forum!

Du brauchst doch überhaupt keine eigenen Variablen für Pfad und Benutzer:
01.
for /f "delims=" %%a in (C:\ProfileList.txt) do ( 
02.
    echo ntfsrechtetool "%%a" "%%~nxa" vollzugriff 
03.
)
Die Textdatei wäre übrigens auch nicht nötig gewesen:
01.
for /d %%a in (D:\Profile\*) do ( 
02.
    echo ntfsrechtetool "%%a" "%%~nxa" vollzugriff 
03.
)
Grüße
bastla
Bitte warten ..
Mitglied: heiko.wellendorf
13.11.2012 um 17:09 Uhr
... Was soll ich da jetzt sagen? Krass!
Das klappt toll, hätte nicht gedacht das man das so kürzen kann.
Bitte warten ..
Mitglied: heiko.wellendorf
14.11.2012 um 08:19 Uhr
for /d %%a in ("B:\Profile\*") do (
@cscript //nologo "%windir%\xcacls.vbs" "%%a" /G "kit\%%~nxa":F /E
)


So läuft es und macht genau was es soll.
Danke an alle die mir geholfen haben

Gruß
Heiko
Bitte warten ..
Mitglied: Penny.Cilin
14.11.2012 um 15:27 Uhr
Warum nimmst Du nicht die xcacls.exe aus dem Ressource Kit.
Stattdessen nutzt Du VB-Script.
Bitte warten ..
Mitglied: bastla
14.11.2012 um 17:03 Uhr
... oder noch billiger:
for /d %%a in ("B:\Profile\*") do cacls "%%a" /G "kit\%%~nxa":F /E
Grüße
bastla
Bitte warten ..
Mitglied: Sewman
05.03.2013 um 08:34 Uhr
Hi,

ich greife das Thema mal auf.

Könntet ihr mir erklären, wie ich per Script eine Gruppe bei den Berechtigungen hinzufügen kann.

Gruß
Sew
Bitte warten ..
Mitglied: bastla
05.03.2013 um 19:25 Uhr
Hallo Sewman!
wie ich per Script eine Gruppe bei den Berechtigungen hinzufügen kann.
Genauso, wie einen User - bei "cacls" etwa mit
cacls "D:\Dein Ordner" /e /g DeineGruppe:R
bzw
cacls "D:\Dein Ordner" /e /g DeineDomain\DeineGruppe:R
Grüße
bastla
Bitte warten ..
Mitglied: Sewman
07.03.2013 um 15:24 Uhr
Danke schön, hab leider im Moment zu viel um die Ohren, melde mich sobald ich mich dran gesetzt habe.

Gruß
Sew
Bitte warten ..
Mitglied: Sewman
27.03.2013 um 08:03 Uhr
Hi,

habe jetzt ein wenig getestet.

Das kam dabei raus:

icacls.exe c:\temp\Test /T /C /grant ads.test.de\A-TestFdMgmt:F

Kann ich mir auch ein Logfile ausgeben lassen, nach dem durchlaufen?

Würde das ganze gerne als Job dann wöchtentlich laufen lassen, und mir hinterher entspannt die Logfiles anzeigen.

Gruß
Sew
Bitte warten ..
Mitglied: bastla
27.03.2013 um 11:01 Uhr
Hallo Sewman!

Du kannst die Ausgabe mit
>>D:\Dein.log icacls.exe c:\temp\Test /T /C /grant ads.test.de\A-TestFdMgmt:F
umleiten (mit ">>" wird an eine schon bestehende Datei angefügt, mit ">" eine schon bestehende Datei überschrieben) ...

Mit
>D:\Rights.txt icacls.exe c:\temp\Test /T /C
kannst Du die derzeit gesetzten Rechte anzeigen (bzw durch die Umleitung die Ausgabe in eine Datei schreiben) lassen.

Grüße
bastla
Bitte warten ..
Mitglied: Sewman
27.03.2013, aktualisiert um 12:28 Uhr
Danke dir, aber bekomme folgende Fehlermeldung von der PowerShell, oder gilt das nicht für die PS?

The term '>>' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling
of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:3

>> <<<< c:\temp\PremSet.log icacls.exe C.Temp\Test\ /T /C /grant ads.test.de\A-testFMgmt:F

+ CategoryInfo : ObjectNotFound: (>>:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Bitte warten ..
Mitglied: bastla
27.03.2013 um 12:32 Uhr
Hallo Sewman!

Das ist, so wie alle anderen Code-Beispiele in diesem Thread, Batch (CMD) ...

Grüße
bastla
Bitte warten ..
Mitglied: Sewman
27.03.2013 um 12:42 Uhr
hehe danke dir.

Kaum macht mans richtig ;)
Bitte warten ..
Mitglied: Sewman
10.04.2013, aktualisiert um 10:39 Uhr
Hi,

Muss nochmal nachhaken.

Gibt es auch eine Möglichkeit im Logfile nur die Fehler abzuspeichern?

Gruß
Sew

Edit: Hab es selbst rausgefunden.

Für die Nachwelt: einfach statt >> , 2>> nehmen
Bitte warten ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
Batch & Shell
gelöst Datum per batch ändern in Tagen (2)

Frage von crawnby zum Thema Batch & Shell ...

IDE & Editoren
gelöst IP und DNS per Batch ändern (9)

Frage von andyw5 zum Thema IDE & Editoren ...

Batch & Shell
gelöst Per Batch FTP-Server Dateien ändern (1)

Frage von Marlon1 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...