32
38

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PowerShellを管理者権限に昇格して実行

Last updated at Posted at 2022-05-09

以下について記載します。
・PowerShellを監理者権限に昇格して実行したい。
・ps1スクリプト実行時に監理者権限でない場合、自動的に昇格させて実行したい。

2024/3/30:追記
いつも使ってるbatからps1実行する方法投稿しました。
超簡単に.Ps1を実行する方法

目次

PowerShellを監理者権限に昇格して実行したい
ps1実行時に自動的に昇格させたい

PowerShellを監理者権限に昇格して実行したい

  • WindowsメニューからPowerShellを右クリックし、管理者として実行する。
  • もしくは、WindowsメニューからPowerShellを起動し、以下のコマンドを入力
PowerShell
Start-Process powershell -verb runas
コマンド 意味
Start-Process powershell PowerShellを新しく始めます
-Verb RunAs 管理者権限で


ps1実行時に自動的に昇格させたい

スクリプトの頭にこれを挿入するだけでOK

hoge.ps1
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole("Administrators")) { Start-Process powershell.exe "-File `"$PSCommandPath`"" -Verb RunAs; exit }

コードの解説

コード 意味
if ( ! ( ~~~ ) ) もし(~~~)でなければ
[Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]
::GetCurrent()
現在の実行権限を取得
.IsInRole("Administrators") 管理者権限
Start-Process powershell.exe PowerShellを新しく始めます
"-File `"$PSCommandPath`" 自分自身のフルパスを指定します
-Verb RunAs 管理者権限で
; exit 現在のスクリプトを終了します。

直訳すると
現在の実行権限を確認します。 もし管理者権限でなければ、自分自身を管理者権限のPowerShellで新たに起動します。 ついでに現在のスクリプトは終了します

参考にしたサイト

32
38
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
38

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?