Powershell Befehl als Administrator

Kay96
Beiträge: 38
Registriert: 06 Dez 2018, 09:23

Powershell Befehl als Administrator

Beitragvon Kay96 » 18 Jul 2019, 22:18

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

holgerv
Beiträge: 278
Registriert: 20 Aug 2012, 09:35

Re: Powershell Befehl als Administrator

Beitragvon holgerv » 22 Jul 2019, 11:46

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".

Kay96
Beiträge: 38
Registriert: 06 Dez 2018, 09:23

Re: Powershell Befehl als Administrator

Beitragvon Kay96 » 23 Jul 2019, 14:42

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.

Benutzeravatar
koepkek
uib-Team
Beiträge: 224
Registriert: 11 Jan 2012, 11:27

Re: Powershell Befehl als Administrator

Beitragvon koepkek » 25 Jul 2019, 08:26

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
opsi support - uib gmbh
For productive opsi installations we recommend support contracts.
http://uib.de
http://opsi.org

Kay96
Beiträge: 38
Registriert: 06 Dez 2018, 09:23

Re: Powershell Befehl als Administrator

Beitragvon Kay96 » 27 Jul 2019, 13:18

Vielen lieben Dank, das funktioniert.
Und ich dachte, dass ich das zuerst getestet habe.