Windowsで「コマンドプロンプト(cmd.exe)やPowerShell」を別のユーザーとして実行したい場面は意外と多くあります。例えば、管理者権限が必要な作業をしたり、他のユーザーアカウントでプログラムをテストしたりする時です。
この記事では、別のユーザーとしてコマンドライン環境を起動する3つの方法をわかりやすく解説します。それぞれの特徴と使い分けも含めて、初心者の方でも理解できるよう丁寧に説明していきます。
別のユーザーとして実行する理由

よくある使用場面
なぜ別のユーザーで実行する必要があるの?
- 管理者権限での作業
- システムファイルの変更
- ソフトウェアのインストール
- レジストリの編集
- セキュリティ上の分離
- 危険な可能性があるスクリプトの実行
- 信頼できないプログラムのテスト
- 権限を制限した環境での作業
- 開発・テスト環境
- 異なるユーザー権限でのアプリケーションテスト
- ユーザーごとの設定の確認
- 権限に関する問題の調査
- システム管理
- 他のユーザーのファイルにアクセス
- ユーザーアカウントの管理
- トラブルシューティング
セキュリティの重要性
なぜセキュリティを意識する必要があるの?
- 最小権限の原則:必要最小限の権限でだけ作業を行う
- アカウント分離:日常作業と管理作業でアカウントを分ける
- 監査ログ:誰がいつ何をしたかを記録に残す
方法①:右クリックメニューから実行(推奨)
この方法の特徴
最も直感的で使いやすい方法です。マウス操作だけで簡単に別ユーザーとして実行できます。
詳細な手順
ステップ1:対象ファイルを探す
- スタートメニューの場合
- スタートボタンをクリック
- 「cmd」または「PowerShell」と入力
- 検索結果が表示される
- エクスプローラーの場合
- エクスプローラーを開く
C:\Windows\System32\cmd.exe
に移動- または
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
に移動
ステップ2:特別な右クリック操作
- 対象のファイル(cmd.exe や PowerShell)を見つける
- Shiftキーを押しながら右クリックする
- コンテキストメニューが表示される
- 「別のユーザーとして実行」を選択
ステップ3:認証情報の入力
- 「Windows セキュリティ」ダイアログが表示される
- ユーザー名を入力(例:Administrator)
- パスワードを入力
- 「OK」ボタンをクリック
表示されるダイアログの見方
Windows セキュリティ
───────────────────
別のユーザーとして実行します
ユーザー名: [Administrator ]
パスワード: [*************** ]
□ 資格情報を記憶する
[OK] [キャンセル]
重要な部分の説明
- ユーザー名:実行したいユーザーアカウント名
- パスワード:そのユーザーのパスワード
- 資格情報を記憶する:次回以降パスワード入力を省略(セキュリティリスクあり)
成功時の確認方法
別ユーザーで実行されているかを確認する方法:
whoami
このコマンドで現在のユーザー名が表示されます。
この方法のメリット・デメリット
メリット
- 操作が簡単で直感的
- コマンドを覚える必要がない
- Windows 10/11で標準対応
- エラーが起こりにくい
デメリット
- 自動化には向かない
- バッチファイルからは呼び出せない
- 毎回手動操作が必要
この章のまとめ:この方法は直感的で使いやすく、Windows 10/11で標準対応されています。日常的な使用には最もおすすめです。
方法②:runasコマンドを使用(コマンドライン)

この方法の特徴
コマンドライン(文字入力)を使って別ユーザーとして実行する方法です。自動化やスクリプトでの利用に適しています。
基本的な使い方
基本構文
runas /user:<ユーザー名> "<実行したいプログラム>"
具体的な使用例
# 管理者アカウントでコマンドプロンプトを起動
runas /user:Administrator cmd
# 特定のユーザーでメモ帳を起動
runas /user:testuser notepad.exe
# ドメインユーザーでプログラムを実行
runas /user:COMPANY\john.doe "C:\Program Files\MyApp\app.exe"
よく使われるオプション
基本オプション
# プロファイルを読み込まずに高速起動
runas /noprofile /user:Administrator cmd
# プロファイルを読み込む(デフォルト)
runas /profile /user:Administrator cmd
# パスワードを保存(セキュリティリスクあり)
runas /savecred /user:Administrator cmd
# ネットワークアクセスのみ別ユーザー
runas /netonly /user:DOMAIN\user cmd
オプションの詳細説明
オプション | 説明 | 使用場面 |
---|---|---|
/noprofile | ユーザープロファイルを読み込まない | 高速起動が必要な時 |
/profile | ユーザープロファイルを読み込む | 通常の使用 |
/savecred | 資格情報を保存 | 頻繁に使用する時(要注意) |
/netonly | ネットワークアクセスのみ | リモートサーバーアクセス時 |
実際の操作例
ステップ1:コマンドプロンプトを開く
Windows + R
キーを押す- 「cmd」と入力してEnter
ステップ2:runasコマンドを実行
# 管理者として新しいコマンドプロンプトを起動
runas /user:Administrator cmd
ステップ3:パスワードの入力
Administrator のパスワードを入力してください:
パスワードを入力してEnterキーを押します(画面には表示されません)。
ステップ4:実行結果の確認
成功すると新しいコマンドプロンプトウィンドウが開きます。
# 現在のユーザーを確認
whoami
バッチファイルでの自動化
バッチファイル例(run_as_admin.bat)
@echo off
echo 管理者権限でコマンドプロンプトを起動します...
runas /user:Administrator cmd
pause
PowerShellスクリプトでの実行
# PowerShellスクリプト内でrunasを使用
Start-Process -FilePath "runas" -ArgumentList "/user:Administrator cmd" -Wait
エラーとトラブルシューティング
よくあるエラーメッセージ
1326: ログオンに失敗しました: ユーザー名またはパスワードが正しくありません。
→ ユーザー名やパスワードを確認してください
1327: ログオンに失敗しました: ユーザー アカウントの制限。
→ アカウントが無効化されているか、権限が不足しています
この章のまとめ:runas
コマンドは自動化に便利で、スクリプトやバッチファイルから呼び出すことができます。
方法③:PowerShellのStart-Processを使用

この方法の特徴
PowerShellの高機能なコマンドレットを使って、より柔軟に別ユーザーとして実行する方法です。
基本的な使い方
基本構文
$credential = Get-Credential
Start-Process -FilePath "<プログラム名>" -Credential $credential
具体的な使用例
# 認証情報を取得してPowerShellを起動
$cred = Get-Credential -UserName "Administrator" -Message "管理者のパスワードを入力してください"
Start-Process -FilePath "powershell.exe" -Credential $cred
# コマンドプロンプトを別ユーザーで起動
$cred = Get-Credential -UserName "testuser"
Start-Process -FilePath "cmd.exe" -Credential $cred
# 特定のプログラムを別ユーザーで起動
$cred = Get-Credential
Start-Process -FilePath "C:\Program Files\MyApp\app.exe" -Credential $cred
Get-Credentialダイアログの活用
認証情報の取得
# 基本的な認証ダイアログ
$cred = Get-Credential
# ユーザー名を事前指定
$cred = Get-Credential -UserName "DOMAIN\username"
# カスタムメッセージ付き
$cred = Get-Credential -UserName "Administrator" -Message "システム管理用の認証を行います"
表示されるダイアログの見方
Windows PowerShell 資格情報の要求
────────────────────────────────
システム管理用の認証を行います
ユーザー名: [Administrator ]
パスワード: [*************** ]
[OK] [キャンセル]
高度な使用例
ワーキングディレクトリを指定
$cred = Get-Credential -UserName "Administrator"
Start-Process -FilePath "cmd.exe" -Credential $cred -WorkingDirectory "C:\temp"
引数を指定してプログラムを起動
$cred = Get-Credential -UserName "Administrator"
Start-Process -FilePath "powershell.exe" -ArgumentList "-NoExit", "-Command", "Get-Process" -Credential $cred
ウィンドウ状態を指定
$cred = Get-Credential -UserName "Administrator"
Start-Process -FilePath "cmd.exe" -Credential $cred -WindowStyle Maximized
スクリプトでの活用
自動化スクリプト例
# 関数として定義
function Start-AsUser {
param(
[string]$UserName,
[string]$Program = "powershell.exe"
)
$cred = Get-Credential -UserName $UserName -Message "$UserName として実行します"
if ($cred) {
Start-Process -FilePath $Program -Credential $cred
Write-Host "$Program を $UserName として起動しました" -ForegroundColor Green
} else {
Write-Host "認証がキャンセルされました" -ForegroundColor Red
}
}
# 使用例
Start-AsUser -UserName "Administrator" -Program "cmd.exe"
エラーハンドリング
エラー処理を含む例
try {
$cred = Get-Credential -UserName "Administrator"
if ($cred) {
Start-Process -FilePath "powershell.exe" -Credential $cred -ErrorAction Stop
Write-Host "プロセスを正常に開始しました" -ForegroundColor Green
}
} catch {
Write-Host "エラーが発生しました: $($_.Exception.Message)" -ForegroundColor Red
}
UAC(ユーザーアカウント制御)との関係
重要な注意点:UAC昇格(管理者権限取得)と他ユーザー実行は同時にはできません。
2段階での実行例
# ステップ1: 別ユーザーでPowerShellを起動
$cred = Get-Credential -UserName "Administrator"
Start-Process -FilePath "powershell.exe" -Credential $cred
# ステップ2: 起動したPowerShell内で昇格が必要な場合
# 新しいPowerShellウィンドウ内で以下を実行
Start-Process -FilePath "powershell.exe" -Verb RunAs
この章のまとめ:PowerShellのStart-Process -Credential
は最も柔軟で、セキュアな方法です。プログラマーや上級者におすすめです。
用途別の最適な方法選び
シーン別推奨方法
使用シーン | 推奨方法 | 理由 |
---|---|---|
日常的な管理作業 | Shift + 右クリック | 簡単・直感的 |
バッチファイル・自動化 | runas コマンド | スクリプト対応 |
PowerShell環境 | Start-Process -Credential | 柔軟性・セキュリティ |
一時的な作業 | Shift + 右クリック | 手軽さ重視 |
定期的な作業 | runas /savecred | パスワード省略可能 |
セキュリティレベル別の選択
高セキュリティ環境
- PowerShellの
Start-Process -Credential
- 資格情報の保存は行わない
- 使用後は必ずセッションを終了
一般的な環境
- Shift + 右クリック
- 必要に応じて
runas
コマンド - パスワード保存は慎重に判断
開発・テスト環境
- 用途に応じて柔軟に選択
- 自動化が重要なら
runas
やPowerShell - 手軽さが重要ならGUI操作
重要な注意点とセキュリティ

パスワードの取り扱い
基本原則
- パスワードは毎回入力が原則
/savecred
オプションは便利だが、セキュリティリスクあり- 共有PCでは資格情報の保存は避ける
/savecred
使用時の注意
# 初回のみパスワード入力が必要
runas /savecred /user:Administrator cmd
# 2回目以降はパスワード不要(危険)
runas /savecred /user:Administrator cmd
この機能は便利ですが、以下のリスクがあります:
- 他の人が同じコマンドを実行できてしまう
- 悪意のあるプログラムが管理者権限を取得する可能性
- セキュリティポリシーに違反する場合がある
UACとの関係
UAC(ユーザーアカウント制御)の理解
UAC昇格と別ユーザー実行は同時にはできません。必要な場合は段階的に操作を分けます。
正しい手順例
- ステップ1:別ユーザーとして実行
runas /user:Administrator cmd
- ステップ2:必要に応じてUAC昇格 新しく開いたコマンドプロンプト内で:
# 管理者権限が必要なコマンドを実行 sfc /scannow
グループポリシーとの制約
企業環境での制限
- RunAsによる実行制限:組織によってはRunAsが制限されている場合
- ユーザー権限の制約:ログオン権限、サービス実行権限の制限
- 監査ログ:RunAs実行が記録される場合
確認すべきポリシー
# ローカルセキュリティポリシーの確認
secpol.msc
主な確認項目:
- 「サービスとしてログオン」権限
- 「バッチジョブとしてログオン」権限
- 「ネットワーク経由でのアクセス」権限
実践的な活用例
システム管理での活用
ファイルの権限変更
# 管理者として実行
runas /user:Administrator cmd
# 新しいコマンドプロンプトで実行
takeown /f "C:\important\file.txt"
icacls "C:\important\file.txt" /grant Everyone:F
サービスの管理
# PowerShellで管理者として実行
$cred = Get-Credential -UserName "Administrator"
Start-Process -FilePath "powershell.exe" -Credential $cred
# 新しいPowerShellで実行
Get-Service | Where-Object {$_.Status -eq "Stopped"}
Start-Service -Name "Spooler"
開発・テストでの活用
アプリケーションのテスト
# テストユーザーとしてアプリを実行
runas /user:testuser "C:\MyApp\app.exe"
異なる権限での動作確認
# 一般ユーザーとして実行
$cred = Get-Credential -UserName "normaluser"
Start-Process -FilePath "myprogram.exe" -Credential $cred
# 結果を確認
Get-Process -Name "myprogram"
トラブルシューティング

よくあるエラーと解決方法
エラー1326:ログオン失敗
1326: ログオンに失敗しました: ユーザー名またはパスワードが正しくありません。
解決方法
- ユーザー名の確認(ドメイン名も含めて)
- パスワードの再確認
- アカウントの有効性確認
エラー1327:アカウント制限
1327: ログオンに失敗しました: ユーザー アカウントの制限。
解決方法
- アカウントが無効になっていないか確認
- ログオン時間制限の確認
- 必要な権限が付与されているか確認
プロセスが起動しない場合
# プロセスの状態を確認
Get-Process | Where-Object {$_.ProcessName -like "*cmd*"}
# イベントログの確認
Get-EventLog -LogName System -Newest 10 | Where-Object {$_.Source -like "*Security*"}
デバッグ方法
実行ログの確認
# 詳細ログ付きで実行
runas /user:Administrator "cmd /k echo Started successfully"
PowerShellでのデバッグ
# 詳細情報付きで実行
$cred = Get-Credential -UserName "Administrator"
Start-Process -FilePath "cmd.exe" -Credential $cred -PassThru -Verbose
まとめ
Windowsで別のユーザーとしてコマンドプロンプトやPowerShellを実行する方法は、用途に応じて使い分けることが重要です。
方法別まとめ
方法 | 特徴 | 推奨レベル | 最適な用途 |
---|---|---|---|
Shift + 右クリック | 簡単・直感的 | ◎ | 日常的な管理作業 |
runasコマンド | 自動化可能 | ○ | スクリプト・バッチ処理 |
Start-Process -Credential | セキュア・柔軟 | ○ | PowerShell環境・上級者 |
重要なポイント
- セキュリティ最優先:パスワードの取り扱いには細心の注意を
- 用途に応じた選択:日常使いなら簡単な方法、自動化なら
runas
- 段階的な権限昇格:UACと別ユーザー実行は分けて考える
- ログとポリシーの確認:企業環境では制約に注意
コメント