Wie erhalte ich den aktuell angemeldeten Benutzernamen, wenn ich eine Batchdatei als Administrator ausführe?

Wie erhalte ich den aktuell angemeldeten Benutzernamen, wenn ich eine Batchdatei als Administrator ausführe?

Ich habe eine Batchdatei, die ich ausführen kann, um die Berechtigungen für einen Ordner in Programmdateien zu ändern. Sie läuft einwandfrei, wenn der aktuelle Benutzer über lokale Administratorrechte verfügt, aber bei Benutzern ohne diese Rechte muss ich das Domänenadministratorkennwort eingeben, damit die Änderungen wirksam werden. Wenn ich die Berechtigungseinstellungen für den Ordner noch einmal überprüfe, zeigt sich, dass der Domänenadministrator die volle Kontrolle über den besagten Ordner hat.

Wie stelle ich sicher, dass dieaktuell angemeldeter Benutzererhält das Fenster die volle Berechtigung?

Dies ist, was ich als Teil dieser Batchdatei habe:

icacls "program files directory" /grant %userdomain%\%username%:F

Antwort1

Wie erhalte ich den aktuell angemeldeten Benutzernamen, wenn ich eine Batchdatei als Administrator ausführe?

Es läuft einwandfrei, wenn der aktuelle Benutzer über lokale Administratorrechte verfügt. Bei Benutzern ohne diese Rechte muss ich jedoch das Kennwort des Domänenadministrators eingeben, damit die Änderungen wirksam werden.

Im folgenden Beispiel legen Sie einfach eine Variable mit den Umgebungsvariablen fest, wie Sie sie bereits in Ihrer ICACLS-Befehlslogik haben, und verwenden diese Variable dann, um das Konto anzugeben, dem die entsprechenden Berechtigungen erteilt werden sollen, und übergeben sie an einenANRUFRoutine.

@ECHO OFF
SET Identity=%userdomain%\%username%
CALL :ICACLS "%Identity%"
GOTO EOF

:ICACLS
runas /user:MYDOMAIN\USER icacls "program files directory" /grant %~1:F
GOTO EOF

Wenn Sie Probleme haben

Wenn Sie laufencmd.exemit RUNAS und Sie bestimmen die %userdomain%\%username%VariablenLegen Sie die erwarteten Werte nicht fest (oder listen Sie sie nicht auf).die Sie verwenden müssen, damit die ICACLS-Befehle wie erwartet funktionieren, führen Sie dann die folgenden Befehle aus incmd.exebevor Sie die RUNAS-Funktionalität verwenden, um dieaktuell angemeldete Domänen- und Benutzernamenanmeldeinformationen, die Sie dann mit den ICACLS-Befehlen verwenden könnenzum Festlegen der Berechtigungen für dieseIdentität\Sicherheitsprinzipal.

SET Identity=%userdomain%\%username%
ECHO %Identity%

verwandte Informationen