Desktop-Shortcut erstellen, um ein Script „als Administrator“ auszuführen
Manchmal muss ein Skript halt mit erhöhten Rechten laufen. Das erreicht man in der Regel entweder damit, dass man den Aufrufenden mit
1 |
#Requires -RunAsAdministrator |
vor den Kopf stößt, oder man macht das Skript „Self-Elevating“:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
[CmdletBinding()] Param( [Parameter(Mandatory=$false)] [switch]$RunElevated ) 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 ($RunElevated) { Write-Warning 'We tried to elevate and failed' } else { try { Start-Process powershell.exe -Verb RunAs -ArgumentList ('-noprofile -nologo -noexit -file "{0}" -RunElevated' -f ($myinvocation.MyCommand.Definition)) -EA Stop } catch { Write-Warning ('Error trying to self-elevate: {0}' -f $_.Exception.Message) } exit } } Write-Host "Hello elevated world!" # Code that needs elevation |
Doch was ist, wenn das Skript […]