Um auf UAC-fähigen Systemen sicherzustellen, dass ein Skript mit vollen Admin-Rechten ausgeführt wird, fügen Sie diesen Code am Anfang Ihres Skripts ein:
param([switch]$Elevated)
function Test-Admin {
$currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
$currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}
if ((Test-Admin) -eq $false) {
if ($elevated)
{
# tried to elevate, did not work, aborting
}
else {
Start-Process powershell.exe -Verb RunAs -ArgumentList ('-noprofile -noexit -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
}
exit
}
'running with full privileges'
Wenn Ihr Skript mit dem Schalter -erhöht ausgeführt wird, versucht es, die Rechte vor der Ausführung zu erhöhen.