Windows用の'sudo'コマンドはありますか?
私はいつもWindowsコンピュータ上で管理者ではないアカウントで作業をしているのですが、時々、管理者アクセスを必要とするプログラムをインストールする必要があります。時々、管理者アクセスを必要とするプログラムをインストールする必要があります。私はほとんどWindowsのコマンドプロンプトを使用しているので、Linuxのターミナルコマンドsudo
のように、権限をエスカレートするためのWindowsコマンドはありますか?
私はいつもWindowsコンピュータ上で管理者ではないアカウントで作業をしているのですが、時々、管理者アクセスを必要とするプログラムをインストールする必要があります。時々、管理者アクセスを必要とするプログラムをインストールする必要があります。私はほとんどWindowsのコマンドプロンプトを使用しているので、Linuxのターミナルコマンドsudo
のように、権限をエスカレートするためのWindowsコマンドはありますか?
runas ](http://technet.microsoft.com/en-us/library/bb490994.aspx) コマンド。
runas [{/profile|/noprofile}] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] /user:UserAccountName program
管理者としてコマンドシェルを起動するには、
runas /noprofile /user:Administrator cmd
を実行するだけです。
sudo
と同じではなく、実行ユーザを Administrator に変更しますが、その構文は runas
よりもはるかに使いやすく、カレントディレクトリを保持し、相対パスの使用を可能にします。UAC が有効になっている限り、プロセス中のある種のプロンプトが存在しなければなりません。プロンプトを完全になくしたい場合は、UAC を無効にする. エレベートが緩和する問題点は、非特権シェルから特定のプロセスをエスカレートさせて、通常通りに実行することです。これがなければ、特権コマンドを実行する前に、right-click > “Run as Administrator” で特権コマンドプロンプトを起動する必要があります。sudo
昇降しているプログラムのエラーコードを返さないという制限があります。
もしあなたの記憶が sudo で行き詰っているなら、Doskey を使ってエイリアスを作成してください:
secpol.msc
または PATH のバッチファイル:
%wheel ALL=(ALL) NOPASSWD: ALL
Elevate は Johannes Passing によって書かれたサードパーティツールです。11kbのダウンロードで、ポータブル(インストール不要)です。http://code.kliu.org/misc/elevate/ ](https://jpassing.com/)
似たようなコマンドである runas コマンドを使うこともできますし、SourceForge の sudo for Windows プロジェクトをチェックして、sudo コマンドを追加することもできます。
Bob でログインして “runas james acommand” を実行すると、James が実行したかのようにコマンドが実行され、James のユーザ設定にアクセスし、ユーザの変更は James の My Documents と設定フォルダなどに移動します。そのため、アプリケーションをインストールしている場合には、Bob ではなく James としてインストールされます。任意のユーザーが sudo することができないようにするには、sudo を使用して昇格する権限を持つ通常のユーザーのリストを含む sudoers ユーザーグループを定義する必要があります。
この違いは重要ではない場合もあれば、重要ではない場合もあります。
もしあなたが代替のコンソールに切り替える準備ができているならば、 ConEmu (私が著者です)があります。その特徴の一つは、一つのConEmuウィンドウで昇降タブと非昇降タブの両方を実行できることです。タブは異なる認証情報で起動することもできます。
ユーザーの快適さのために、バッチファイル csudo.cmd (これは bash に簡単に採用できるかもしれません) が用意されています。詳細は プロジェクトのwiki を参照してください。簡単に言うと、既存の非昇降タブからコマンドを実行すると、例えば
csudo dism /online /enable-feature /featurename:NetFX3 /All /Source:D:\sources\sxs /LimitAccess
ConEmu は新しい昇降コンソール/タブ(Vistaでは先行するUACプロンプト、XPではログインボックス)で dism
を起動します。
デフォルトでは、csudo
は分割して新しいコンソールを起動します (csudo.cmd
の内容を編集することで変更することができます)。
3ステップでsudoを追加します。PowerShellを開きます。
$script_path="$HOME\Documents\Scripts"; if (!(test-path $script_path)) {New-Item -ItemType directory $script_path} if (!(test-path $profile)) { new-item -path $profile -itemtype file -force }". $script_path\sudo.ps1" | Out-File $profile -append; "function sudo(){if (`$args.Length -eq 1){start-process `$args[0] -verb `"runAs`"} if (`$args.Length -gt 1){start-process `$args[0] -ArgumentList `$args[1..`$args.Length] -verb `"runAs`"}}" | Out-File $script_path\sudo.ps1; powershell
1.Enterキーを押す。
PowerShellでsudo
コマンドを永久に有効にする。
sudo <process-name> [param1 [param2 [param3]]]
例:
sudo explorer
sudo notepad
sudo powershell
sudo cmd
sudo taskmgr
sudo tasklist
sudo taskkill /IM Skype.exe /PID 8496
注: 前述のスクリプトを作成するために、両方の記事のスクリプトを混ぜてみました。メモ帳に手動で貼り付けるのではなく、Out-File
ステートメントを追加して、ps1
と$profile
ファイルをスクリプトから保存しました。
**Tip: (私のように) UACポップアップの大ファンではない場合は、以下の内容を .regファイルに保存して実行してください。
Windowsでこれを実行しているのであれば、他のいくつかの回答で述べたRunAsコマンドに加えて、マウスで実行する方法もあります。
また、Microsoftから ShellRunAs と呼ばれる、より高度なバージョンのRunAsをダウンロードすることができますが、これは、アカウントの資格情報を保存することを含む、コマンドラインとグラフィカルモードの両方で、組み込みのRunAsコマンドよりも強化されています。
Surun は、ユーザーレジストリを変更したり、環境変数を変更したりすることなく、パスワードを提供することなく、管理者権限で特定のプログラムを実行できるようにする無料のオープンソースアプリケーションです。
私がWindows XPを使用していたとき、このアプリは私を大いに助けてくれました。ベータ版】(http://forum.kay-bruns.de/thread/411)はWindows 7で動作します。
おそらくお気づきだと思いますが、runasは別のユーザとして実行できますが、昇格はできませんし、カレントディレクトリや環境変数、長いコマンドラインを渡すこともできません。sudo (実際には su のエイリアス) を使うと、昇格したコマンドを実行することができます。現在のディレクトリ、環境変数、長いコマンドラインは、呼び出し元のコンテキストで実行されている su と、新しい資格情報の間奏として実行されている自身のコピーとの間で、共有メモリのハンドシェイクによって渡され、子プロセスが開始されます。完全な開示: 私が著者です。
私は gsudo を書きました。これは *nix sudo
のように感じ、いくつかのキラー機能を持っています:
-n
を追加することもできます。(ExitCodes, StdIn/Out/Err Redirection/Capture) gsudo
が起動された場合、UAC ポップアップが一度だけ表示されます。gsudo
昇格した権限で指定したコマンドを実行します。
最も関連するgsudo [options] {command} [arguments]
:
[options]
昇格した権限で新しいコンソールでコマンドを起動します(すぐに戻ります)。-n | --new
プロセスが終了するのを強制的に待ちます(終了コードを返します)。 -w | --wait
ローカルシステムアカウントとして実行します(「NT AUTHORITY」)。インストール方法
Using Scoop: -s | --system
Using Chocolatey: --copyev
Manual Install
PowerShell -Command "Set-ExecutionPolicy RemoteSigned -scope Process; iwr -useb https://raw.githubusercontent.com/gerardog/gsudo/master/installgsudo.ps1 | iex"
Or check the latest release .
以下の vbs スクリプトは、引数に elevation を指定してコマンドを起動することを可能にし、限られた使用例のためにオリジナルの unix の sudo
コマンドの動作を真似しています (これは資格情報をキャッシュしませんし、異なる資格情報を持つコマンドを真に実行することを可能にします)。
Set objArgs = WScript.Arguments
exe = objArgs(0)
args = ""
IF objArgs.Count >= 2 Then
args = args & objArgs(1)
End If
For it = 2 to objArgs.Count - 1
args = args & " " & objArgs(it)
Next
Set objShell = CreateObject( "WScript.Shell")
windir=objShell.ExpandEnvironmentStrings("%WINDIR%")
Set objShellApp = CreateObject("Shell.Application")
objShellApp.ShellExecute exe, args, "", "runas", 1
set objShellApp = nothing
コマンドプロンプト C:\Windows\System32
での使用例
このスクリプトは仕事をします:
@echo Set objShell = CreateObject("Shell.Application") > %temp%\sudo.tmp.vbs
@echo args = Right("%*", (Len("%*") - Len("%1"))) >> %temp%\sudo.tmp.vbs
@echo objShell.ShellExecute "%1", args, "", "runas" >> %temp%\sudo.tmp.vbs
@cscript //NoLogo %temp%\sudo.tmp.vbs
注意: sudo.cmd
はこの文脈では “管理者として実行 "を意味し、"他のユーザーとして実行 "ではありません
ここから抜粋 と、出力から cscript.exe ヘッダを削除するために少し編集しました