Seite 1 von 1

Powershell Befehl als Administrator

Verfasst: 18 Jul 2019, 22:18
von Kay96
Hallo,
Ich bin momentan am rätseln, wie ich einen Powershell Befehl explizit als Administrator ausführen kann.
Gibt es vielleicht die Möglichkeit den Powershellcall mit erhöhten Rechten auszuführen?

Vielleicht ist der Weg auch über einen privilegierten CMD Befehl, wo man inline auf Powershell wechselt, aber bisher bin ich noch zu keinem Ergebnis gekommen.
Sobald ich den Powershell Befehl ausführe, kommt immer die Meldung, dass der Befehl mit erhöhten Rechten ausgeführt werden muss.

Hat jemand eine Idee?

Liebe Grüße

Re: Powershell Befehl als Administrator

Verfasst: 22 Jul 2019, 11:46
von holgerv
Ich bin nicht sicher, ob ich Deine Frage richtig verstanden habe.

Wenn die powershell.exe mit erhöhten Rechten läuft, dann werden auch die in der powershell.exe ausgeführten Befehle/Cmdlets mit erhöhten Rechten ausgeführt.

Wenn Du Prozesse mit anderen Credentials laufen lassen willst, dann geht das von Powershell aus mit "Start-Process -Credential".

Re: Powershell Befehl als Administrator

Verfasst: 23 Jul 2019, 14:42
von Kay96
Um es zu konkretisieren geht es um den Import von einer LayoutModification.xml.

Führe ich den Befehl mit folgender Aktion aus:

[ExecWith_powershell_LayoutModification_xml powershell.exe WINST /64Bit]

Import-startlayout -LayoutPath "C:\tmp\LayoutModification.xml" -MountPath c:\

Dann wird der Befehl nicht ausgeführt, da die Berechtigungen fehlen.
Diesen Befehl kann man mit keinem Benutzer mit Administratorenrechten ausführen, außer dem Administrator selbst.
Dementsprechend habe ich versucht den Befehl folgendermaßen auszuführen:

[ExecWith_powershell_LayoutModification_xml powershell.exe WINST /64Bit]
$pw = ConvertTo-SecureString "PASSWORD" -AsPlainText -force;
$credentials = new-object -typename System.Management.Automation.PSCredential -argumentlist "administrator",$pw;
start-process powershell -credential $credentials -nonewwindow -argumentlist 'Import-startlayout -LayoutPath "$TmpDir$\LayoutModification.xml" -MountPath c:\'

Funktioniert unter einem Benutzer mit Administratorenrechten wunderbar, aber sobald Opsi dies ausführt, läuft es auf einen Fehler, da Powershell nicht gestartet werden kann.

Ich könnte nun das Script lokal ablegen und über runonce und einem Autologin vom Administrator ausführen, aber dies möchte ich unbedingt umgehen.

Re: Powershell Befehl als Administrator

Verfasst: 25 Jul 2019, 08:26
von koepkek
Moin

versuch es mal mit

powershellCall('Import-startlayout -LayoutPath "C:\tmp\LayoutModification.xml" -MountPath c:\')

in der primären Sektion.
In diesem Befehl ist das Setzen der Executionpolicy (Rechte zum Ausführen eines Powershell Befehls) schon integriert.
Siehe auch Beispiele im opsiscript-Handbuch

VG Karsten

Re: Powershell Befehl als Administrator

Verfasst: 27 Jul 2019, 13:18
von Kay96
Vielen lieben Dank, das funktioniert.
Und ich dachte, dass ich das zuerst getestet habe.