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-Key: 229029

Url: https://administrator.de/contentid/229029

Printed on: April 16, 2024 at 08:04 o'clock

Member: bastla
bastla Feb 07, 2014 at 09:41:51 (UTC)
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
Member: pixel0815
pixel0815 Feb 07, 2014 at 10:38:28 (UTC)
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.
Member: bastla
Solution bastla Feb 07, 2014 updated at 12:30:37 (UTC)
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
Member: pixel0815
pixel0815 Feb 07, 2014 at 12:30:32 (UTC)
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