スポンサーリンク

【Bat】管理者権限でバッチを実行する方法

Bat
スポンサーリンク

今回はバッチファイルを管理者権限で実行したいする方法を少しだけまとめてみます。

Runasコマンドを使う

まずは、シンプルにコマンドプロンプトに用意されているコマンドで紹介します。

runas /user:[管理者アカウント名] [実行したい処理]

この方法では、すでに管理者権限のあるアカウントの用意と、このコマンドを実行した後にパスワードの入力が求められます。
ユーザーに入力してもらわなくてはいけないケースも多いので、ユーザーにやってもらうのはやや難がある方法になってしまいます。

ただし、ユーザーをしっかりと指定しているので、Active Directoryなどで複雑な権限設定を設定しているときは有効です。

runas /savecred /user:[管理者アカウント名] [実行したい処理]

また、/savecredオプションをつけておくことで、資格情報を記憶できます。パスワードの入力は最初の一回のみで、それ以降はパスワード入力を省くことができます。

Runasコマンドは端末1台の管理者権限というよりかはシステム全体の権限を持ったアカウントで実行したいときに有効です。

PowerShellを使う

PowerShellには管理者権限で簡単に実行できるコマンドがなぜか用意されています。
これにより先ほどようなパスワードやアカウントの準備をしなくてよいので大変重宝します。

powershell start-process [実行したい処理] -verb runas

このコマンドによって実行された処理は端末の管理者権限で実行されます。
アカウントの指定やパスワードの入力などが必要ないため、非常に手軽に管理者権限で実行できます。(ユーザーアカウント制御によるポップアップはでますが・・・)

Windows10の1703以降はコマンドプロンプトを管理者実行するのに少し手間がかかるようになりました。(1607まではスタートボタンを右クリックすることで簡単に起動できた)
下記コマンドをバッチにしておくことで簡単に管理者実行できるようになるのも小技として挙げておきます。

powershell start-process cmd -verb runas

まとめ

Runasコマンドは、システム全体の管理者権限をもったユーザーで実行したいときに有効
PowerShellでは、端末ごとの管理者権限で実行したいときはとても簡単

どちらもケースバイケースで使いどころがはっきり決まってきます。
ほかにも管理者実行方法もありますが、まずはこのあたりで解決するのが無難かと考えます。
ご参考にしていただければ幸いです。

コメント

タイトルとURLをコピーしました