Windows-Befehlszeile, die als der aktuell angemeldete Benutzer ausgeführt wird, nachdem das Befehls- / Stapelskript als ein anderer Benutzer innerhalb desselben Skripts gestartet wurde?

1145
mettle

Ich habe ein Windows-Batch-Skript, das beim Anmelden als bestimmter Admin-Benutzer (nicht derselbe Benutzer, der angemeldet ist) für alle Standardbenutzer automatisch ausgeführt wird.

Innerhalb desselben Skripts muss ich die Gruppenzugehörigkeit des aktuell angemeldeten Benutzers überprüfen (durch Aufrufen eines Exe mit einer bestimmten Gruppe als Parameter), dh des Benutzers, der in Fenstern angemeldet ist, die von der Shell des Skripts angezeigt werden und sind laufen von / auf .

Fahren Sie dann abhängig vom Ergebnis der oben genannten Prüfung mit der Verarbeitung desselben Skripts fort, wobei Sie die ursprünglichen Administratorrechte verwenden, z. B. um Software zu installieren.

Gibt es eine Möglichkeit, dies zu tun, ohne nach Anmeldeinformationen zu fragen, lediglich über die Befehlszeile oder sogar über die Powershell (aus dem Skript heraus) ?

Ich suche ein völlig nicht interaktives Erlebnis für den Benutzer, da dieses auf bis zu ca. 9000 Benutzer.

Jede Hilfe wäre dankbar. Prost.

1
Siehe [Befehlszeilenargument für die Ausführung als anderer Benutzer unter Windows?] (Http://superuser.com/questions/232899/command-line-argument-for-running-as-another-user-on-windows?rq=1 ) Ƭᴇcʜιᴇ007 vor 7 Jahren 0

1 Antwort auf die Frage

0
Slipeer

RunasBefehl hat die Taste /savedсred, aber unter jedem neuen Benutzer müssen Sie das Kennwort noch einmal eingeben.

Es gibt einen Weg in Powershell:

  1. Verwenden Sie ConvertTo-SecureStrin g, um das Kennwort zu verschlüsseln
  2. Erstellen Sie Anmeldeinformationen Objekt
  3. Anwendung mit Start-Prozess ausführen

$secstring = ConvertTo-SecureString -String $password -AsPlainText -Force

$credentials = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,$secstring)

Start-Process <filefullpath> -WorkingDirectory <work dir> -Credential ($credentials)

Aber verschlüsselten Secure auf einem Computer kann nicht an dem anderen entschlüsselt werden ( wenn Sie nicht mit einem bekannten Schlüssel mit -Key Parameter verschlüsseln ) In der Tat, müssen Sie Anmeldeinformationen in den Körper des Skripts setzen.