sudo」タグアーカイブ

Windows で sudo なことをする。

みむらです。
とある作業をしているときに見つけたことですが・・。

コマンドプロンプトや Power Shell で作業をしているときに管理者権限が必要になったとき、
いちいち管理者権限でコマンドプロンプトを立ち上げ直したりはしたくないものです。

また、 Shift+右クリックメニュー にて「コマンドウィンドウをここで開く」というものがありますが
このメニューから開いたときに、この画面で管理者に昇格したいもの。

そんなときに使えるコマンドです。

 

Power Shell にて

Start-Process -Verb (Command)

としてコマンドを実行すると、UAC の画面が出てきて管理者権限で起動してくれます。

 

たとえば、電卓を管理者権限で動かしたい場合は、

Start-Process -Verb runas calc

このような感じ。

 

あと、いちいち PowerShell を起動したくない場合は、

Power Shell の引数にコマンドを渡して実行すればいいので、

powershell -command "Start-Process -Verb runas (command)"

こんな感じで使えます。

 

ですので、たとえば Linux で言うところの ”sudo bash” な事をしたいのであれば、

powershell -command "Start-Process -Verb runas cmd"

と、こんな感じになります。

 


いちいちコマンドを叩くにも長いので・・

 

テキストエディタを開いて、下記の内容を “sudo.cmd” として保存し、

@powershell -command "Start-Process -Verb runas %1"

あとはそのファイルを PATH の通っているところに移動なりコピーすれば、

どこからでも “sudo (command)” で管理者権限で任意のプロセスを起動できるようになります。

 

管理者権限が必要なコマンドをよく使われる方、ぜひどうぞー。

Windows の sudo / su は runas

2014/12/11 update:
本記事の方法より、良い方法が見つかりましたので、次の記事を参照されることをおすすめします:

Windows で sudo なことをする – みむらの手記手帳


 

覚え書き程度に。

linux や unix の su コマンドや sudo コマンドに該当するコマンドとして、
Windows には runas コマンドが存在します。

ヘルプ:

RUNAS 使用法:

RUNAS [ [/noprofile | /profile] [/env] [/savecred | /netonly] ]
        /user:<ユーザー名> プログラム

RUNAS [ [/noprofile | /profile] [/env] [/savecred] ]
        /smartcard [/user:<ユーザー名>] プログラム

RUNAS /trustlevel:<信頼レベル> プログラム

   /noprofile        ユーザーのプロファイルを読み込まないように指定します。
                     この結果、アプリケーションをより速く読み込むことができま
                     すが、一部のアプリケーションが正しく動作しない可能性があ
                     ります。
   /profile          ユーザーのプロファイルを読み込むように指定します。
                     これは既定値です。
   /env              ユーザーの環境ではなく、現在の環境を使用する場合に使います
   /netonly          指定された資格情報をリモート アクセスのみで使用する場合に
                     使います。
   /savecred         ユーザーが以前に保存した資格情報を使います。
                     このオプションは Windows 7 Home Edition または Windows 7 Starter Edition では使用できません
                     Edition では利用できないので無視されます。
   /smartcard        資格情報がスマート カードから提供される場合に使います。

   /user             <ユーザー名> の形式は、"ユーザー@ドメイン" または
                     "ドメイン\ユーザー" です
   /showtrustlevels  /trustlevel に対して引数として使用できるレベルを表示し
                     ます。
   /trustlevel       <レベル> は /showtrustlevels に列挙されているレベルの
                     いずれかです。
   プログラム        実行可能なコマンドラインです。下の例を参照してください。

例:
> runas /noprofile /user:mymachine\administrator cmd
> runas /profile /env /user:mydomain\admin "mmc %windir%\system32\dsa.msc"
> runas /env /user:user@domain.microsoft.com "notepad \"my file.txt\""

注意:  要求されたときのみ、ユーザーのパスワードを入力してください。
注意:  /profile は /netonly と互換性がありません。
注意:  /savecred は /smartcard と互換性がありません。

 

ということで、要は任意のユーザ権限で動かせます。

 

使い方。

runas /user:administrator cmd

これで、 administrator で cmd (コマンドプロンプト) が立ち上がります。

 

同様に、TEST というユーザで calc (電卓) を立ち上げたいときは、

runas /user:TEST calc

というような要領で。

 

要は、

runas /user:(USERNAME) (COMMAND)

というところ。ひとまずメモまで。