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 Script Ordnerrechte ändern, etwas kniffelig

Frage Microsoft Windows Server

Mitglied: 12223

12223 (Level 1)

20.05.2010 um 13:30 Uhr, 8621 Aufrufe, 6 Kommentare

Hi Community,

kurz zur Ausgangssituation:

Eigene Dateien und Desktop sind umgebogen auf Netzwerkshares.

Server ist Windows Server 2003 R1, Client OS ist XP Pro SP2

Das Problem ist nun folgendes:

Wenn sich ein neuer User anmeldet, werden die Ordner auf den Shares erstellt, bekommen aber die Rechte vererbt. Und das sind nunmal nicht die Admins (Voll), User (Eingeschränkt), System (Voll) sondern Admins (Voll) DomUser (Eingeschränkt), System (Voll). Was nun zur folge hat, dass Alle Domänen Benutzer überall drauf dürfen, und das bei rund 700 Nutzern.

Meine Idee, ein Script was den Ordnername (=Nutzername) ausliest, die Rechte neu setzt und dann mit dem nächsten Ordner weiter macht. Ich hab zwar schon allerhand mit Batch gearbeitet, aber bin ein wenig eingerostet.

Jemand eine Idee oder ein paar Codeschnipsel?

Das zweite ist, ich würde das ganze dann gleich für neue User beim anmelden machen. Auch hier benötige ich ein paar Codeschnipsel.

Schon im Vorraus, seid Bedankt

Gruss

Sebastian
Mitglied: Edi.Pfisterer
20.05.2010 um 15:35 Uhr
Hallo!
naja, so kniffelig ists dann wieder nicht

hier - aus Zeitmangel - ein Codeschnipsel, der zumindest mal die Ordnernamen liest:

Ordnerliste.vbs
01.
Set WshShell = WScript.CreateObject("WScript.Shell")  
02.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
03.
function ordner(pfad) 
04.
 
05.
        Set objFolder = objFSO.GetFolder(pfad) 
06.
        Set colSubfolders = objFolder.Subfolders 
07.
 
08.
        For Each objSubfolder in colSubfolders 
09.
        on Error resume next 
10.
 
11.
                 vollername = objFSO.GetAbsolutePathName(objSubfolder) 
12.
                 WshShell.Run "cmd /c echo j|cacls " & vollername & " /G Administratoren:F ", 0, 1			   
13.
 
14.
         call ordner(ordnerneu) 
15.
        Next 
16.
 
17.
 
18.
end function 
19.
 
20.
call ordner("C:\test")
so in der Richtung... (komplett ungetetestet wegen Zeitmangels...)
cacls /? bringt die nötigen Flags, ob gelesen oder geschrieben oder whatever werden soll..

gutes gelingen
lg
Bitte warten ..
Mitglied: 12223
20.05.2010 um 17:06 Uhr
Hi, war auch nicht untätig, hab eigentlich alles zusammen, nur mag mein cacls.exe die Domänen-Benutzer nicht entfernen ... hab so ziemlich alle Deutschen und Englischen begriffe durch, jemand eine Idee?

rem config 
set title=Rechteaenderungsprogramm v0.1a 
 
@echo off 
 
title=%title% 
CLS 
 
 
:lesen 
echo Lese die Nutzer aus! 
 
echo ###>user.txt 
dir /B /O:N /A:D>>user.txt 
 
:auswertung 
title=%title% 
cls 
FOR /f "delims=" %%n in (user.txt) do set curdir=%%n 
 
:rechte setzen 
echo. 
echo. 
echo Setze Rechte fuer Verzeichnis: %curdir% 
echo.  
echo.  
cacls %curdir% /T /E /C /G "Domänen-Benutzer":R>NUL 
echo Domaenen-Benutzer sind entfernt worden aus ACL %curdir% 
echo. 
cacls %curdir% /T /E /C /G %curdir%:C>NUL 
echo Nutzer %curdir% ist in hinzugefuegt worden in ACL %curdir% 
 
 
findstr /v /c:"%curdir%" user.txt>user1.txt 
del user.txt 
rename user1.txt user.txt 
echo. 
echo.  
echo Taste druecken fuer naechsten Ordner. 
echo. 
pause>NUL 
 
if %curdir%==### (goto :end) 
goto :auswertung   
 
:end 
 
title=%title% 
CLS 
echo. 
echo Loesche temporaer Dateien 
del user.txt 
echo. 
echo. 
echo ....................................... 
echo. 
echo Ende des Programms! 
echo. 
echo. 
echo Zum Beenden beliebige Taste druecken! 
pause>NUL
Bitte warten ..
Mitglied: bastla
20.05.2010 um 18:17 Uhr
Hallo Saint2000!
hab so ziemlich alle Deutschen und Englischen begriffe durch
Dom„nen-Benutzer
hattest Du auch schon?

Grüße
bastla
Bitte warten ..
Mitglied: Edi.Pfisterer
20.05.2010 um 21:44 Uhr
Hallo!
hab mir jetzt - in aller Ruhe - mal Dein Problem durchgelesen und glaube zu erkenne, dass dieses Skript zwar interessant, aber dennoch - bei richtiger Verwendung der NTFS-Berechtigungen - nicht verwendet werden muss.

Dein Problem beruht ja auf der Vererbung der Berechtigungen des Grundordners Deines Shares.

Und genau hier ist anzusetzen:
Vererbung abdrehen und fertig. Weil: Vollzugriff bekommt der jeweilige User ohnehin auf seinen Ordner ohne Dein Zutun beim Erstellen des Accounts im AD.

Wie ist diese Vererbung abzudrehen?
Sicherheitseinstellungen / Erweitert / Bearbeiten (der Domänen-Benutzer) --> Nur dieser Ordner + Lesen

Fertig!
(Wenns nur per Skript ginge, dann würde es Dein Skript längstens in Millionenfacher Ausfertigung geben....)

Gratuliere trotzdem zu Deinem Rechteaenderungsprogramm v0.1a , hat Dich sicher um einige Erkenntnisse reicher werden lassen...
(und wenn Du die 700 User schon angelegt hast, kannst Du es für diese auch gut gebrauchen
In Zukunft sollte es dann ohne Skript laufen...)

lg
Edi
Bitte warten ..
Mitglied: 12223
21.05.2010 um 08:16 Uhr
Naja,

das Problem daran ist aber, dass die Domäne hier ein wenig ... mmh .. verbogen ist. Heisst: Neuer User wird über ein SUN Ldap ins AD geschossen, Nutzer meldet sich an und dann werden seine Ordner (Desktop, EigeneDateien und Profil) angelegt.

Das heisst, der Grundordner (z.B. desktop) benötigt aber die DomainUsers, weil sonst nicht im Kontext des Users sein Ordner darunter angelegt werden kann.

Sonst wärs ja einfach *G*
Bitte warten ..
Mitglied: 12223
21.05.2010 um 16:25 Uhr
Hallo ich habe das Problem gelöst.

Mithilfe von Batch, CACLS und fileACL (http://www.gbordier.com/gbtools/fileacl.asp)

REM Programm aendert Rechte aus Ordner in dem die Batch liegt! 
REM Alle Ordner werden ausgelesen und in die Datei user.txt geschrieben. 
REM Anhand dieser Dateien werden auf jeden Ordner die Rechte des Ordnernamens  
REM gesetzt. 
REM 
REM History: 
REM v0.1a - 20.05.2010 -  
REM v0.2a - 21.06.2010 -  
 
 
 
rem config 
set title=Rechte Aenderungsprogramm v0.2a 
 
@echo off 
 
title=%title% 
CLS 
 
 
:lesen 
echo Lese die Nutzer aus! 
 
echo ###>user.txt 
dir /B /O:N /A:D>>user.txt 
 
:auswertung 
title=%title% 
cls 
FOR /f "delims=" %%n in (user.txt) do set curdir=%%n 
if %curdir%==### (goto :end) 
 
:rechte setzen 
 
echo. 
echo. 
echo Setze Rechte fuer Verzeichnis: %curdir% 
echo.  
echo. 
fileacl.exe %curdir% /R Dom„nen-Benutzer /protect /files>NUL 
echo.  
echo Domaenen-Benutzer sind entfernt worden aus ACL %curdir% 
echo. 
echo Vererbung ist aufgehoben worden fuer %curdir% 
echo. 
cacls %curdir% /T /E /C /G %curdir%:C>NUL 
echo Nutzer %curdir% ist in hinzugefuegt worden in ACL %curdir% 
 
 
findstr /v /c:"%curdir%" user.txt>user1.txt 
del user.txt 
rename user1.txt user.txt 
echo. 
echo.  
echo Taste druecken fuer naechsten Ordner. 
echo. 
pause>NUL 
 
if %curdir%==### (goto :end) 
goto :auswertung   
 
:end 
 
title=%title% 
CLS 
echo. 
echo Loesche temporaer Dateien 
del user.txt 
echo. 
echo. 
echo ....................................... 
echo. 
echo Ende des Programms! 
echo. 
echo. 
echo Zum Beenden beliebige Taste druecken! 
pause>NUL
Ich liebe Batch *g*

Für die Nachwelt

Danke für eure Hilfen!

@bastla, du siehst, auch du wurdest gewürdigt *g*
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst Variablen in bash-script ändern (3)

Frage von cptkrabbe zum Thema Batch & Shell ...

VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...