instinctless
Goto Top

User kontext wechseln innerhalb eines powershell scripts

Hallo,
ich habe schon recherchiert aber die gefundenen Lösungen gefallen mir nicht, daher stelle ich meine Frage mal hier.
Ich führe ein Powershell Script als Admin aus. Innerhalb des Scripts sollen zwei Befehle im normalen Userkontext ausgeführt werden.

Ich möchte das nicht über NewPSession oder start-process machen.
Hat jemand ne Idee?

Content-ID: 342937

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

Ausgedruckt am: 21.11.2024 um 22:11 Uhr

133417
133417 10.07.2017 aktualisiert um 15:40:16 Uhr
Goto Top
oder start-process machen
Gegenfrage: Wieso nicht, was stört dich daran ?
Start-Process bietet dir alles was du benötigst um einen Prozess in einem anderen Kontext auszuführen.
Die Shell läuft nun mal in Ihrem Kontext, brauchst du einen anderen musst du den neuen Prozess mit den alternativen Credentials starten, ist ja logisch.

Gruß
instinctless
instinctless 10.07.2017 aktualisiert um 17:02:36 Uhr
Goto Top
ich baue ein install script um appx pakete ohne store zu installieren. dies soll möglichst einfach geschehen, somit möchte ich keine unnötigen ps oder batch files sondern alles in einem guss. nach dem motto fire & forget. der admin der das installieren soll, soll nach möglichkeit nicht erst ne anleitung dafür lesen müssen oder durch unnötige dateien verwirrt werden. ;)

Aber danke erstmal für deinen Hinweis face-smile
133417
133417 10.07.2017 aktualisiert um 17:11:37 Uhr
Goto Top
somit möchte ich keine unnötigen ps oder batch files sondern alles in einem guss.
Und wo soll hier das Problem sein?start-process kannst du PS-Befehle direkt mitgeben, da braucht es keine "externen" ps1 Files ...
Mit Invoke-Command kannst du hier bei Bedarf auch arbeiten
emeriks
emeriks 10.07.2017 aktualisiert um 18:34:52 Uhr
Goto Top
Hi,
die gefundenen Lösungen gefallen mir nicht
die da waren?
Ich führe ein Powershell Script als Admin aus. Innerhalb des Scripts sollen zwei Befehle im normalen Userkontext ausgeführt werden.
Man müsste jetzt genau wissen, worauf es Dir ankommt. Man kann zum einen die Identität wechseln, um für den laufenden Prozess andere Berechtigungen zu erlangen. Oder man möchte, dass für bestimmte Operationen das betreffende Benutzerprofil verwendet (ausgelesen und/oder geändert) wird. Letzters geht meines Wissen nicht mit einem reinen Identitätswechsel, weil dabei das Profil des anderen Benutzers nicht geladen wird.
Und der von Dir genannte Anlass mit den App's suggeriert mir, dass da was im Benutzerprofil geändert wird (werden muss).

Wenn Du das eh als Script schreiben willst, warum dann dieses nicht als Loginscript für die Benutzer laufen lassen?

Ansonsten: Ins Blaue geraten -- Add-AppxProvisionedPackage
Adds an app package (.appx) that will install for each new user to a Windows image.

E.

Edit:
Für den einfachen Identitätswechsel
Ich habe es nicht ausprobiert, aber das sieht auf den ersten Blick so ähnlich aus, wie ich selbst das im VB.Net mache.
Impersonate a User