pixel0815
Goto Top

Rechteänderung von TS Profilen mit SamAccountName Überprüfung

Moin zusammen,

mit folgenden Zeilen verändere ich die Rechte von Terminalserver Profilen:

 
for /d %%a in ("D:\Userprofiles\*") do (  
    takeown /F "%%a" /A /R /D j  
    @cscript //nologo "%windir%\xcacls.vbs" "%%a" /G "kit\%%~nxa":F /E /T  
    @cscript //nologo "%windir%\xcacls.vbs" "%%a" /E /R "Everyone"  
    @cscript //nologo "%windir%\xcacls.vbs" "%%a" /G "kit\Dom„nen-Admins":F /E /T   
    @cscript //nologo "%windir%\xcacls.vbs" "%%a" /G "s010\Administratoren":F /E /T  
    @cscript //nologo "%windir%\xcacls.vbs" "%%a" /G "SYSTEM":F /E /T  
	
) >>%log%

Wie kann ich jetzt am besten prüfen ob das Profilverzeichnis mit %%~nxa übereinstimmt?

Ich möchte das Profile die keinen übereinstimmenden SamAccountName haben, nicht angefasst werden, sondern protokolliert werden das diese Fehlerhaft sind.
Habt ihr da einen Tipp für mich? face-sad

Liebe Grüße aus Hamburg
Heiko

Content-ID: 229029

Url: https://administrator.de/forum/rechteaenderung-von-ts-profilen-mit-samaccountname-ueberpruefung-229029.html

Ausgedruckt am: 15.04.2025 um 00:04 Uhr

bastla
bastla 07.02.2014 um 10:41:51 Uhr
Goto Top
Hallo HeikoWellendorf!

Wenn ein TIpp genügt: Mit
dsquery user -samid %%~nxa
könntest Du nach einem User mit passendem Logon suchen ...

Grüße
bastla
pixel0815
pixel0815 07.02.2014 um 11:38:28 Uhr
Goto Top
Hmm das stimmt. Ich suche etwas das ungefähr so geht

C:\Benutzerprofile\test.test ( test.test entspricht immer dem SamAccountName) dann kommt die Abfrage mit dsquery wo dann %%~nxa mit dem Ordner verglichen wird und abhängig davon ob der Benutzer gefunden wurde oder nicht solls dann weiter gehen und wenn er nicht gefunden wurde eine Meldung das ein Fehler aufgetreten ist.
bastla
Lösung bastla 07.02.2014 aktualisiert um 13:30:37 Uhr
Goto Top
Hallo HeikoWellendorf!

Eigentlich wird nicht "%%~na" mit dem Ordner verglichen, da diese Information ja vom Ordner stammt - Du musst das Ergebnis von dsquery untersuchen, um festzustellen, ob es einen User mit dem entsprechenden Anmeldenamen gibt; (ungetestet) etwa so:
 for /d %%a in ("D:\Userprofiles\*") do (  
    set "UserExists="  
    for /f "delims=" %%i in ('dsquery user -samid %%~nxa') do set "UserExists=True"  
    if defined UserExists (
        takeown /F "%%a" /A /R /D j  
        @cscript //nologo "%windir%\xcacls.vbs" "%%a" /G "kit\%%~nxa":F /E /T  
        @cscript //nologo "%windir%\xcacls.vbs" "%%a" /E /R "Everyone"  
        @cscript //nologo "%windir%\xcacls.vbs" "%%a" /G "kit\Dom„nen-Admins":F /E /T   
        @cscript //nologo "%windir%\xcacls.vbs" "%%a" /G "s010\Administratoren":F /E /T  
        @cscript //nologo "%windir%\xcacls.vbs" "%%a" /G "SYSTEM":F /E /T  
    ) else (
        echo Kein User %%~na gefunden!
    )	
) >>%log%
Grüße
bastla
pixel0815
pixel0815 07.02.2014 um 13:30:32 Uhr
Goto Top
Genau so ! Es funktioniert, habe es gerade getestet.
Ich finde dein Nicknamen Bastla ist untertrieben face-wink))
Danke und liebe Grüße
Heiko