Axels Webseite

zum Seitenanfang springen

Willkommen!

Willkommen auf der privaten Webseite von Axel Hahn.

Axels Blog

NTFS: in den ACLs rekursiv einen Benutzer hinzufügen

22.01.2015 - 19:51

Auf unserem Firmen-Fileserver sollte ein Benutzer zusätzlich berechtigt werden, das NTFS zu lesen.

Das Problem: Wenn man bei einem Startverzeichnis die Rechte gibt, wird dieses dann soweit nach unten vererbt, bis es auf irgendenem Verzeichnis andere Rechte gibt. So ist im Basisverzeichnis der Zugang für alle Mitarbeiter, einige Ebenen tiefer sind Projektordner, Protokolle, … verschiedenste Ordner halt. Bei jedem einzelnen Projektordner stoppt also der Vererbungsmechanismus und man muss bei jedem dieser Projektordner den Benutzer erneut hinzufügen.

Das wollte ich nicht von Hand und hunderten von Klicks erledigen.

Die nachfolgende Batchdatei sucht ab einem Startverzeichnis rekursiv alle Verzeichnisse (dir /s /b [Verzeichnis]).

Auf jedem Verzeichnis wird iacls aufgerufen (das zeigt die Berechtigungen an) und in der Ausgabe wird geschaut, ob der User bereits drin ist.

Ist der User nicht drin, gibt es einen Aufruf für die subroutine addUser. Dort wird der Benutzer (rekursiv) hinzugefügt und auf ein Return gewartet (aber das nur zur Kontrolle).

@echo off
rem ======================================================================
::
::    Skript zum Hinzufuegen eines einzelnen Users in die bestehenden
::    ACLs
::
::  ----------------------------------------------------------------------
::  2015-01-22  Axel Hahn
rem ======================================================================
set line=-------------------------------------------------------------------------------
 
set mydir=nas-blabla\irgend\wo
set cuser=DOMAIN\newuser
 
echo.
echo %line%
echo user %cuser% hinzufuegen in %mydir%
echo %line%
 
for /F "tokens=*" %%a in ('dir /b /s /a:d %mydir%') do (
      echo ... %%a
      icacls "%%a" | findstr "%cuser%" >nul || call :addUser "%%a"
)
echo.
echo fertig.
timeout /t 100
exit
 
:addUser
echo ...... adding %cuser%
icacls %1 /grant "%cuser%":(OI)(CI)(RX)
set /p dummy=Return

Weiterführende Links


Blog-Kategorieen: Computer Programmierung Windows Batch


die letzten Blog-Einträge:
22.01.2015-19:51 Uhr NTFS: in den ACLs rekursiv einen Benutzer hinzufügen
21.01.2015-20:57 Uhr Javascript-Schnipsel: HTML strippen
14.12.2014-16:45 Uhr Axels Weihnachtskarte 2014
09.12.2014-23:20 Uhr Wenn die jQuery-Animation mit fadeIn() nicht mag
28.11.2014-17:53 Uhr IML-Appmonitor - v0.07 - James Bond Edition

Statistisches



Herkunft der Besucher

Übersicht der Herkunftsländer der Besucher meiner Webseite. Bots von Suchmaschinen sind in dieser Liste ausgeschlossen.

Übersicht der Herkunftsländer der Besucher meiner Webseite. Bots von Suchmaschinen sind in dieser Liste ausgeschlossen.


Webbrowser meiner Besucher

Welche Webbrowser werden verwendet? Die Anzeige fasst alle Versionsnummern zusammen.

Welche Webbrowser werden verwendet? Die Anzeige fasst alle Versionsnummern zusammen.


Replica watches