Jak w PowerShellu wymóc uruchomienie skryptu jako administrator

Aby uzyskać dostęp do ustawień systemowych Windows oraz niektórych aplikacji konieczne jest uruchomienie procesu jako administrator. Podobnie tworząc skrypt w PowerShellu można wymusić by nie dało się go uruchomić bez dodatkowych uprawnień.

Jest to szczególnie przydatne gdy wykonywanych jest kilkanaście operacji z których jedna część możliwa jest jako zwykły użytkownik, a inna z dodatkowymi uprawnieniami.

Poniższy przełącznik wymaga posiadania przynajmniej wersji 4.0 PowerShella do pobrania ze strony Microsoftu. Przed instalacją warto jednak zapoznać się z zawartością sekcji System Requirements.

Aby to zrobić wystarczy skorzystać z przełącznika #Requires -RunAsAdministrator do umieszczenia w kodzie skryptu. Oto co się stanie gdy będzie on uruchomiony bez uprawnień administratora.

PS D:\Skrypty> .\tylko_administrator.ps1
.\tylko_administrator.ps1 : The script 'tylko_administrator.ps1' cannot be run because it contains a "#requires" statement for running as Administrator. The current Windows PowerShell session is not running as Administrator. Start Windows PowerShell by  using the Run as Administrator option, and then try running the script again.
At line:1 char:1
+ .\tylko_administrator.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (tylko_administrator.ps1:String) [], ScriptRequiresException
    + FullyQualifiedErrorId : ScriptRequiresElevation

PS D:\Skrypty>