deathman
Goto Top

Start-Process Script mit Optionen starten

Guten Tag zusammen,

Ich möchte meinen Nutzer eine Software installieren. Dafür brauch ich natürlich höhere Rechte.
Ich muss dem Script aber den User mitgeben mit dem er arbeiten soll.

Ich habe es so versucht:

$anmeldedaten = Get-Credential -UserName "Firma\admin" -Message "Anmeldedaten"  
Start-Process powershell.exe -Argumentlist "\\server\daten\test2.ps1 $env:USERNAME" -Credential $anmeldedaten  

Ich bekomme jedoch immer:
Start-Process : Dieser Befehl kann aufgrund des folgenden Fehlers nicht ausgeführt werden: Der Verzeichnisname ist ungültig.

Der Pfad stimmt aber zu 100%. Wenn ich das -Credential weg lasse geht es auch. Nur habe ich nicht die passenden Rechte dann.

Wie kann ich das lösen?

Gruß Andre

Content-ID: 2133915450

Url: https://administrator.de/forum/start-process-script-mit-optionen-starten-2133915450.html

Ausgedruckt am: 22.12.2024 um 18:12 Uhr

jsysde
jsysde 12.03.2022 um 16:24:35 Uhr
Goto Top
Servus.
Zitat von @deathman:
[...]Wie kann ich das lösen?
Dem User "Firma\Admin" Rechte auf \\server\daten\test2.ps1 erteilen?

Cheers,
jsysde
deathman
deathman 12.03.2022 aktualisiert um 19:07:54 Uhr
Goto Top
Hi,

Der User ist Domain-Admin. Lasse ich $env:USERNAME weg geht es auch mit den Creds.
Ich brauche in dem Script danach aber den Usernamen der es aufgerufen hat.

Gruß Andre
CH3COOH
CH3COOH 13.03.2022 um 07:39:35 Uhr
Goto Top
Guten Morgen,
setze mal in die Argumentlist -File ein und übergehe deinen Parameter(namen) für $env:USERNAME mit.

https://docs.microsoft.com/de-de/powershell/module/microsoft.powershell. ...

Gruß
jsysde
jsysde 13.03.2022 aktualisiert um 10:24:29 Uhr
Goto Top
Moin.

Vielleicht so?
$anmeldedaten = Get-Credential -UserName "Firma\admin" -Message "Anmeldedaten"  
Start-Process C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Argumentlist "\\server\daten\test2.ps1 $env:USERNAME" -Credential $anmeldedaten  

Cheers,
jsysde

Nachtrag:
Durch die Sicherheitsbrille betrachtet ist es natürlich fatal, dass ein Domänen-Admin auf einem Client-System genutzt wird bzw. genutzt werden kann....
1915348599
Lösung 1915348599 13.03.2022 aktualisiert um 10:49:43 Uhr
Goto Top
Ich möchte meinen Nutzer eine Software installieren. Dafür brauch ich natürlich höhere Rechte.
Gut, aber dazu reicht es in der Regel nicht einfach nur die Powershell mit Admin-Credentials zu starten, denn die Shell läuft dann erst mal nicht elevated! Du musst also erst mal eine Konsole als Admin starten und darin anschließend das Skript elevieren mittels -verb runas Parameter, das geht so:
$anmeldedaten = Get-Credential -UserName "Firma\admin" -Message "Anmeldedaten"  
start powershell -Argumentlist "-EP Bypass -C start powershell -verb runas -Argumentlist '-EP Bypass -File `"\\server\daten\test2.ps1`" $env:Username'" -Credential $anmeldedaten  
(Funktioniert, getestet)

Also Step1: Starte eine unelevierte Shell mit Credentials des Admins, Step2: aus dieser Shell starte eine elevierte Session mittels -verb runas Parameter.

Der User ist Domain-Admin
Autsch ... Da hat mal wieder einer die goldene Regel gebrochen. Never, never ever use Domain-Admin-Credentials on untrusted devices/workstations! Stichwort "Golden Ticket" sollte reichen.
deathman
deathman 13.03.2022 aktualisiert um 17:13:33 Uhr
Goto Top
Zitat von @1915348599:

Ich möchte meinen Nutzer eine Software installieren. Dafür brauch ich natürlich höhere Rechte.
Gut, aber dazu reicht es in der Regel nicht einfach nur die Powershell mit Admin-Credentials zu starten, denn die Shell läuft dann erst mal nicht elevated! Du musst also erst mal eine Konsole als Admin starten und darin anschließend das Skript elevieren mittels -verb runas Parameter, das geht so:
$anmeldedaten = Get-Credential -UserName "Firma\admin" -Message "Anmeldedaten"  
start powershell -Argumentlist "-EP Bypass -C start powershell -verb runas -Argumentlist '-EP Bypass -File `"\\server\daten\test2.ps1`" $env:Username'" -Credential $anmeldedaten  
(Funktioniert, getestet)

Also Step1: Starte eine unelevierte Shell mit Credentials des Admins, Step2: aus dieser Shell starte eine elevierte Session mittels -verb runas Parameter.


Ich werde es nachher mal testen.

Mein Script ruft ein 2tes auf was dann den Step des "elevated" hätte machen sollen.

Ich habe es in einem Rutsch nicht hinbekommen und wollte es erstmal schaffen das Script als Admin aufzurufen, um überhaupt Rechte auf dem System zu haben.

Der User ist Domain-Admin
Autsch ... Da hat mal wieder einer die goldene Regel gebrochen. Never, never ever use Domain-Admin-Credentials on untrusted devices/workstations! Stichwort "Golden Ticket" sollte reichen.

Das ist bekannt ;) Das Script soll genau das beheben.

Das eigentliche Script soll ein neues VPN installieren was dauerhaft on ist, damit ich wieder an die Rechner komme.
Dann kann ich endlich LAPS umsetzten und alle Domain-Admin Konten auf den Rechnern killen und auch endlich mal alte lokale Admin Konten bereinigen.

Ich habe das ganze so übernommen face-sad
deathman
deathman 15.03.2022 um 22:04:01 Uhr
Goto Top
Zitat von @1915348599:
$anmeldedaten = Get-Credential -UserName "Firma\admin" -Message "Anmeldedaten"  
start powershell -Argumentlist "-EP Bypass -C start powershell -verb runas -Argumentlist '-EP Bypass -File `"\\server\daten\test2.ps1`" $env:Username'" -Credential $anmeldedaten  
(Funktioniert, getestet)

Hi,

Danke dafür es geht endlich *freu*

Ich musste noch ein Set-Location "C:\Windows\System32\WindowsPowershell\v1.0" setzten, da er weiter behauptete: "Der Verzeichnisname ist ungültig" wenn ich es aus dem Netzlaufwerk gestartet habe.

Ich glaube fast ich hatte es schonmal richtig hab nur den Fehler nicht gelesen und verstanden ;)

Danke für die Hilfe!!