Ich bin darauf viele Monate nach dem Beitrag gestoßen, aber ich denke, mein Kommentar ist hilfreich.
@ Deadly-Bagel Nein, das Skript ist nur eine Datei, daher wird es nicht "ausgeführt".
Ein Skript ist zwar nur eine Datei, kann aber durchaus Funktionen enthalten. Eine dieser Funktionen kann so eingerichtet werden, dass sie als erster Prozess in dieser Skriptdatei ausgeführt wird. Diese Funktion kann verwendet werden, um festzustellen, ob die aktuelle Sitzung als Administrator ausgeführt wird oder nicht. Wenn dies nicht der Fall ist, kann es sich selbst erhöhen (vorausgesetzt der angemeldete Benutzer hat Administratorrechte).
function Use-RunAs { # Check if script is running as Adminstrator and if not use RunAs # Use Check Switch to check if admin param([Switch]$Check) $IsAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()` ).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator") if ($Check) { return $IsAdmin } if ($MyInvocation.ScriptName -ne "") { if (-not $IsAdmin) { try { $arg = "-file `"$($MyInvocation.ScriptName)`"" Start-Process "$psHome\powershell.exe" -Verb Runas -ArgumentList $arg -ErrorAction 'stop' } catch { Write-Warning "Error - Failed to restart script with runas" break } exit # Quit this session of powershell } } else { Write-Warning "Error - Script must be saved as a .ps1 file first" break } } Use-RunAs
Ich hoffe das hilft deiner Situation. Wenn nicht, würde ich mich freuen, wieder zu kommen.