redder
Goto Top

Powershell Script als anderer User ausführen

Hallo zusammen,
ich suche eine Möglichkeit Powershell Scripte als anderer User auszuführen.

Szenario:
Die Admins beim Kunden haben alle zwei AD User. Z.B. xyz123user und xyz123admin.
Standardmäßig arbeiten alle mit ihrer normalen Benutzerkennung.

Ich habe nun einige Powershell Scripte geschrieben, die die Berechtigungen des Adminusers erfordern.

Leider gibt es nicht die Möglichkeit mit rechter Maustaste und Shift auf die Scripte zu klicken und "Als anderer Benutzer ausführen" auszuwählen.

Die einzigen Wege die ich bisher kenne ist entweder sich komplett unter dem Adminuser anzumelden oder das PowerShell ISE als anderer Benutzer starten, das Powershell Script zu laden und von dort auszuführen.

Diese Wege sind leider nicht besonders praktikabel, daher meine Frage an euch:
Wie löst ihr dieses Problem?

LG redder

Content-ID: 197368

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

Ausgedruckt am: 22.11.2024 um 19:11 Uhr

redder
redder 21.01.2013 aktualisiert um 15:15:37 Uhr
Goto Top
Mein aktueller Ansatz ist es ein Start-Script zu nutzen, welches den User ändern lässt unter dem das Script ausgeführt werden soll:

Code von Datei \\win.muster.de\test\bla\script_start.ps1
$newusercontext = Read-Host 'User waehlen'  
$newuseranddomain = "nt\"+$newusercontext  

Start-Process powershell.exe -Credential $newuseranddomain -NoNewWindow -ArgumentList "-File \\win.muster.de\test\bla\script.ps1"  

Jetzt habe ich aber ein merkwürdiges Phänomen:
Wenn ich mich im Windows Explorer im Pfad \\win.muster.de\test\bla\ befinde kann ich das Script "script_start.ps1" ausführen. Dieses führt dann wie erwartet das Script "script.ps1" mit den angegebenen Benutzerinformationen aus.

Wenn ich aber ein Netzlaufwerk verwende, also mich Pfad x:\bla\ befinde erhalte ich die Fehlermeldung: "Start-Process : Dieser Befehl kann aufgrund des folgenden Fehlers nicht ausgeführt werden: Der Verzeichnisname ist ungültig."

Warum ist das so? Ich habe in jedem Fall im Script selbst den UNC Pfad angegeben.
Onitnarat
Onitnarat 21.01.2013 um 15:35:57 Uhr
Goto Top
Zitat von @redder:
Wenn ich aber ein Netzlaufwerk verwende, also mich Pfad x:\bla\ befinde erhalte ich die Fehlermeldung: "Start-Process :
Dieser Befehl kann aufgrund des folgenden Fehlers nicht ausgeführt werden: Der Verzeichnisname ist ungültig."

Warum ist das so? Ich habe in jedem Fall im Script selbst den UNC Pfad angegeben.

Hi,
das ist so weil das Netzlaufwerk ja als User verbunden wurde. Baue in Dein Script einfach nochmal die Verbindung zum Share ein und schon wird es flutschen oder Du arbeitest mit UNC-Pfaden.

Gruß
Marcus
redder
redder 21.01.2013 um 15:54:05 Uhr
Goto Top
Hallo Onitnarat,
danke für den Post.

Ich meine aber das ich das Problem umgangen habe da ich im Start-Script ja den UNC Pfad verwende: \\win.muster.de\test\bla\script.ps1

Also noch einmal zusammengefasst:
Hauptscript: \\win.muster.de\test\bla\script.ps1
Startscript: \\win.muster.de\test\bla\script_start.ps1

Anweisung im Startscript: öffne Powershell -File \\win.muster.de\test\bla\script.ps1

Wenn ich das Startscript aus \\win.muster.de\test\bla\ starte funktioniert es wenn ich es aus x:\bla\ starte funktioniert es nicht.

Oder was meinst du mit "Baue in Dein Script einfach nochmal die Verbindung zum Share ein"?
Onitnarat
Onitnarat 21.01.2013 um 16:09:01 Uhr
Goto Top
Sorry, klingt aufs zweite Lesen wirklich etwas abgedreht...ich meine damit, dass Du im Skript einfach nochmal das Netzlaufwerk verbinden musst, damit Du auch unter dem Adminuser mit "X:" arbeiten kannst.
redder
redder 21.01.2013 um 17:06:56 Uhr
Goto Top
Ach so meinst du das :D

Ich weiß nicht ob das funktionieren würde aber ich habe das grundsätzliche Problem jetzt über eine Verknüpfung gelöst (dann funktioniert Shift + Rechte Maustaste > Als anderer Benutzer ausführen).

Anleitung dazu gibts Hier

LG redder