WindowsのRunasコマンド:全オプションとその詳細な使い方

runasは、指定したユーザーの資格情報でプログラムを起動するWindowsコマンドです。パスワードをcommand lineへ渡すoptionはなく、実行後の安全なpromptへ入力します。別ユーザーで動かすこととUACで管理者昇格することは同じではありません。本記事では公式構文に含まれる全optionを、組み合わせ制約、用途、確認方法、credential保護とともに説明します。

基本は runas /user:DOMAIN\user "program" です。最初にrunas /?とwhoamiを記録し、署名済みprogramのfull pathを指定します。/savecredを便利さだけで常用せず、/netonlyのlocal identityが変わらない点を理解してください。

目次

公式構文と引数の読み方

runas /?
runas [{/profile | /noprofile}] [/env] [{/netonly | /savecred}] [/smartcard] [/showtrustlevels] [/trustlevel:TrustLevel] /user:UserAccountName "ProgramName PathToProgramFile"

波括弧内は同時指定ではなく選択肢です。/profileと/noprofile、/netonlyと/savecredを同時に使いません。対象端末のhelpとMicrosoft資料に差がある場合は、実機のrunas /?と組織policyを優先します。

全オプション:ユーザーとprofile

  • /user:UserAccountName:起動に使うaccountを指定する中心optionです。形式はDOMAIN\userまたはuser@domainです。local accountは.\userで明示します。
  • /profile:指定ユーザーのprofileをloadします。既定動作です。HKCUやユーザー別設定が必要なapplicationで使います。/netonlyとは併用できません。
  • /noprofile:profileをloadせず速く起動できる場合がありますが、ユーザー別Registry、environment、設定fileがなくapplicationが失敗することがあります。
  • /env:指定ユーザー固有のenvironmentではなく、現在のnetwork environmentを使用します。profile切替とは別のoptionで、必要性が明確な場合だけ使います。
runas /user:CONTOSO\user1 "cmd.exe"
runas /profile /user:CONTOSO\user1 "mmc.exe"
runas /noprofile /user:.\labuser "notepad.exe"
runas /env /user:CONTOSO\user1 "cmd.exe"

全オプション:network credentialとcredential保存

  • /netonly:指定credentialをremote accessだけに使います。local processは現在のlocal contextを基に動くため、起動windowのwhoamiは指定ユーザーへ変わりません。/profileとは併用できません。credentialは起動時でなくnetwork接続時に検証される場合があります。
  • /savecred:そのユーザーが以前保存したcredentialを再利用します。promptを省ける一方、後続のrunas実行に高権限credentialを再利用されるriskがあります。共有PC、Domain Admin、高権限accountでは使いません。
  • /smartcard:smart cardからcredentialを取得します。card、reader、certificate、組織policyが必要です。/savecredとは併用できません。
runas /netonly /user:CONTOSO\user1 "cmd.exe"
rem /savecred は組織policyで承認済みの場合だけ検討
runas /savecred /user:CONTOSO\limited-user "cmd.exe"
runas /smartcard /user:CONTOSO\user1 "cmd.exe"

/netonlyでremote shareを確認する場合は、読み取り許可されたtest locationだけへ接続し、local identityとnetwork access結果を別々に記録します。passwordをbatch、shortcut、ticket、screenshot、PowerShell argumentへ書かないでください。

全オプション:trust level

  • /showtrustlevels:/trustlevelへ渡せるtrust levelを表示します。利用可能値は対象端末で確認します。
  • /trustlevel:TrustLevel:/showtrustlevelsに表示されたlevelでapplicationを起動します。任意の値を推測せず、表示値と目的を照合します。これはUACの「管理者として実行」の代用ではありません。
runas /showtrustlevels
rem 次のTrustLevelは /showtrustlevels の実機表示値へ置換
runas /trustlevel:TrustLevel "notepad.exe"

全オプション:helpと起動program

  • /?:対象端末のrunas helpを表示します。optionと組み合わせを安全に確認できます。
  • "ProgramName PathToProgramFile":起動するprogramと引数を一つのquoted commandとして指定します。spaceを含むpathは引用し、実行fileのfull pathとdigital signatureを確認します。

公式構文では/userと起動programが実質的な必須要素です。外部から得たdocument、macro、script、download fileを高権限contextで開きません。program pathを省略して同名の不正実行fileを拾う状況を避けます。

runas /user:CONTOSO\user1 "C:\Windows\System32\cmd.exe /k whoami"

起動後のidentityと権限を確認する

新しく開いたwindow内でwhoami、group、privilegeを確認します。/netonlyではlocal identityが現在ユーザーのままであることが正常です。通常の/userでは指定accountのSIDやgroupを目的と照合します。出力には内部domain、SID、group構成が含まれるため、外部共有前にreviewします。

whoami
whoami /groups
whoami /priv

runasとUACを混同しない

管理者グループのaccountをrunasへ指定しても、UACの高integrity tokenが自動的に得られるとは限りません。単に現在accountで昇格したい場合は、署名済み管理toolの「管理者として実行」とUAC promptを使います。別ユーザーprofileが必要ならrunas /user、remote resourceだけ別credentialなら/netonlyというように目的を分けます。

安全な実行手順

  1. 現在windowでwhoamiを実行し、local/remoteのどちらのidentityを変えたいか決める。
  2. 起動する実行fileのfull path、署名、必要権限、引数を確認する。
  3. 最小権限のtest accountを指定し、passwordは表示されないpromptへ本人が入力する。
  4. 新window内でwhoami /groupsと目的resourceへの最小accessを確認する。
  5. 作業後にprocessとnetwork sessionを閉じ、不要なsaved credentialがないことを確認する。

避けるべき使い方と戻し方

/savecredを高権限accountで常用する、passwordをcommandへ埋め込む、/netonlyでlocal userも変わると思い込む、untrusted programを別ユーザーで開く、runasをUAC elevationと同一視する方法は避けます。誤ったcontextで起動した場合は、そのprocess内で変更を続けず終了し、対象resourceのauditと変更履歴を確認します。保存credentialを削除する必要がある場合は、組織のCredential Manager運用と管理者手順に従います。

用途別の選び方

  • 別ユーザーの通常application設定を確認:/userと既定/profile。
  • profile不要の短いtest:影響を理解したうえで/noprofile。
  • remote shareだけ別credential:/netonly。local identityは変わりません。
  • smart card必須環境:/smartcard。card policyとcertificateを先に確認します。
  • 利用可能な制限levelの確認:/showtrustlevels後に表示値だけを/trustlevelへ渡す。
  • 管理者昇格だけが目的:runasではなくUACの承認済み経路を使う。

公式情報・参考資料

以下は2026年7月17日に確認した製品ベンダーの一次資料です。画面名や対応環境は、導入時点の公式ページと実機表示を再確認してください。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次