Hallo,
ich moechte ein PowerShell script starten, welches, wenn es ohne administrative Rechte gestartet wurde, sich selbst noch einmal (diesmal mit administrativen) Rechten neu startet.
Das hier funktioniert leider nicht... Das neue PowerShell Fenster taucht nur fuer einen kurzen Moment auf, bevor es wieder beendet wird. Die Parameter mit denen das script initial aufgerufen wurden sind aber:
D.h. wenn die Parameter aus "$params.ArgumentList" korrekt uebergeben worden waeren, waere das neue PowerShell-Fenster offen geblieben (-NoExit). Was laeuft hier schief?
ich moechte ein PowerShell script starten, welches, wenn es ohne administrative Rechte gestartet wurde, sich selbst noch einmal (diesmal mit administrativen) Rechten neu startet.
Das hier funktioniert leider nicht... Das neue PowerShell Fenster taucht nur fuer einen kurzen Moment auf, bevor es wieder beendet wird. Die Parameter mit denen das script initial aufgerufen wurden sind aber:
PowerShell:
$cmdArgs
-NoProfile
-NoExit
-ExecutionPolicy
ByPass
-File
D:\Users\Highend\Development\PowerShell\Get font metadata.ps1
D.h. wenn die Parameter aus "$params.ArgumentList" korrekt uebergeben worden waeren, waere das neue PowerShell-Fenster offen geblieben (-NoExit). Was laeuft hier schief?
PowerShell:
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]"Administrator")) {
$proc = Get-Process -Id $PID
$cmdArgs = [Environment]::GetCommandLineArgs() | Select-Object -Skip 1
$params = @{ FilePath = $proc.Path }
$params.Verb = "RunAs"
if ($cmdArgs) { $params.ArgumentList = $cmdArgs }
Start-Process @params
$proc.CloseMainWindow()
}