通常のコマンドラインでコマンドラインを使用して管理者特権のコマンドプロンプトを開くにはどうすればよいですか?
たとえば、使用しましたrunas /username:admin cmd
が、開いたコマンドが昇格していないようです。解決策はありますか?
通常のコマンドラインでコマンドラインを使用して管理者特権のコマンドプロンプトを開くにはどうすればよいですか?
たとえば、使用しましたrunas /username:admin cmd
が、開いたコマンドが昇格していないようです。解決策はありますか?
回答:
私は同じ問題に遭遇し、CMDから管理者としてCMDを開くことができた唯一の方法は、次のことでした:
powershell -Command "Start-Process cmd -Verb RunAs"
てプレスEnterドキュメントによると、Windowsセキュリティモデル...
常に管理者権限を付与するわけではありません。管理者でも、昇格された特権を必要としない非管理タスクを実行するときには、標準の特権で実行されます。
あなたはしている管理権限で、このタスクを作成中にオプション[新規タスクの作成 ]ダイアログ(タスクマネージャ]> [ファイル]> [ファイル名を指定して実行新しいタスク)が、組み込みのない方法コマンドラインを使用して効果的に昇格特権にはありません。
ただし、コマンドラインから権限を昇格するために使用できるサードパーティツール(内部ではWindows APIに依存)があります。
nircmdc elevate cmd
npm install -g windosu
(node.jsがインストールされている必要があります)sudo cmd
nircmdc elevate route delete 0.0.0.0 mask 0..0.0 192.168.1.1
ようやく働きました。他のrunas /user:...
方法では、すでに管理者(強制終了モード)であるにもかかわらず、パスワードの入力を求められました。
nircmdc elevate cmd
nircmd
、Linuxのように機能させるには、パスに次の内容のファイルをsudo
作成しsudo.bat
ます nircmd elevate %*
。次に、たとえば、sudo net stop W3SVC
windosu
:)
sudo.bat
(好きsudo
な名前に
置き換えることができる)というファイルを作成します
powershell.exe -Command "Start-Process cmd \"/k cd /d %cd%\" -Verb RunAs"
sudo.bat
内のフォルダに移動しますPATH
。意味がわからない場合は、これらのファイルをc:\windows\
sudo
で、[実行]ダイアログ(win+r)またはエクスプローラーのアドレスバーで動作します(これが最良の部分です:))。sudo.bat
(好きsudo
な名前に
置き換えることができる)というファイルを作成します
nircmdc elevate cmd /k "cd /d %cd%"
nircmdc.exe
し、sudo.bat
あなたの中のフォルダにPATH
。意味がわからない場合は、これらのファイルをc:\windows\
sudo
で、[実行]ダイアログ(win+r)またはエクスプローラーのアドレスバーで動作します(これが最良の部分です:))。私は常にnirsoftプログラム(たとえば、nircmdc)とsysinternals(たとえば、psexec)を使用しています。彼らはとても役に立ちます。
しかし、サードパーティのプログラムをダウンロードしたくない、またはできない場合は、別の方法として純粋なWindowsを使用します。
短い答え:昇格中に昇格された特権でスケジュールされたタスクを作成し、昇格していないときに後で呼び出すことができます。
ミドルレングスの答え:高度な作成タスクで(ただし、私はタスクスケジューラGUIを好む):
schtasks /create /sc once /tn cmd_elev /tr cmd /rl highest /st 00:00
その後、標高は必要ありません。
schtasks /run /tn cmd_elev
長い答え:細かいところに細かい点がたくさんあります。私のブログエントリ「UACなしでプログラムを開始します。システムの起動時とバッチファイルで役立ちます(タスクスケジューラを使用)」
これを行う私のお気に入りの方法は、http: //technet.microsoft.com/en-us/sysinternals/bb897553にあるSysInternalsのPsExec.exeを使用することです。
.\psexec.exe -accepteula -h -u "$username" -p "$password" cmd.exe
「-h」スイッチは魔法をかけるものです:
-hターゲットシステムがVista以上の場合、アカウントの昇格されたトークン(利用可能な場合)を使用してプロセスを実行します。
/savecred
スイッチを使用して、バッチファイルに実際の管理者アカウントの資格情報を保存させます。これにより、最初に資格情報の入力が求められ、暗号化されたパスワードが資格情報マネージャーに保存されます。その後、バッチが実行されるときはすべて、完全な管理者として実行されますが、資格情報マネージャーに暗号化されて保存され、エンドユーザーがパスワードを取得できないため、資格情報の入力は求められません。次のコマンドは、完全な管理者権限で昇格されたCMDを開き、初回のみパスワードを要求します。
START c:\Windows\System32\runas.exe /user:Administrator /savecred cmd.exe
Dheeraj Bhaskarワークが提供する両方のソリューションが、残念ながら彼らはになりますUACのトップ(z順序ワイズ)上に表示するダイアログが、ないばかり焦点を当てたので、私はどちらかが必要に、(フォーカスされたウィンドウは、呼び出し側CMD / PowerShellのウィンドウです)マウスをつかんで「はい」をクリックするか、Alt + Shift + Tabを使用してUACウィンドウを選択します。(Win10x64 v1607ビルド14393.447でテスト; UAC = "[...]暗くしない[...]")
次の解決策は2つのファイルを使用するため少し厄介ですが、正しいフォーカス順序が維持されるため、追加のマウス/キーボード操作は必要ありません(UACダイアログを確認する以外に、Alt + Y)。
%SystemRoot%\System32\cmd.exe /k "cd /d"
@start cmdadm.lnk %cd%
で実行しsu
ます。
Elevate
しばらく使ってます。
説明です- This utility executes a command with UAC privilege elevation. This is useful for working inside command prompts or with batch files.
私はコピーbin.x86-64\elevate.exe
から.zip
にC:\Program Files\elevate
、私にそのパスを追加しますPATH
。
次に、GitBashでサービスをelevate sc stop W3SVC
オフにするようなものを実行できますIIS
。
コマンドを実行するUAC
と、キーボードコントロールで適切にフォーカスされたダイアログが表示され、ダイアログを受け入れるとシェルに戻ります。
..
@ECHO OFF
SETLOCAL EnableDelayedExpansion EnableExtensions
NET SESSION >nul 2>&1
IF %ERRORLEVEL% NEQ 0 GOTO ELEVATE
GOTO :EOF
:ELEVATE
SET this="%CD%"
SET this=!this:\=\\!
MSHTA "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('CMD', '/K CD /D \"!this!\"', '', 'runas', 1);close();"
EXIT 1
このスクリプトを「god.cmd」としてsystem32またはパスの宛先に保存します...
e:\ mypictures \でcmdを開き、godと入力すると、資格情報を要求され、管理者と同じ場所に戻ります...
上記の他のソリューションのいくつかと同様にelevate
、昇格したPowerShellウィンドウを実行するバッチファイルを作成し、実行ポリシーをバイパスして、単純なコマンドからバッチファイル、複雑なPowerShellスクリプトまですべてを実行できるようにしました。使いやすいように、C:\ Windows \ System32フォルダーに保存することをお勧めします。
元のelevate
コマンドはタスクを実行し、出力をキャプチャし、生成されたPowerShellウィンドウを閉じてから戻り、キャプチャされた出力を元のウィンドウに書き出します。
私は2つの変異体、作成elevatep
およびelevatex
それぞれ一時停止して、より多くの仕事のためのPowerShellウィンドウを開いたまま、。
https://github.com/jt-github/elevate
そして、私のリンクが停止した場合に備えて、元の昇格バッチファイルのコードを次に示します。
@Echo Off
REM Executes a command in an elevated PowerShell window and captures/displays output
REM Note that any file paths must be fully qualified!
REM Example: elevate myAdminCommand -myArg1 -myArg2 someValue
if "%1"=="" (
REM If no command is passed, simply open an elevated PowerShell window.
PowerShell -Command "& {Start-Process PowerShell.exe -Wait -Verb RunAs}"
) ELSE (
REM Copy command+arguments (passed as a parameter) into a ps1 file
REM Start PowerShell with Elevated access (prompting UAC confirmation)
REM and run the ps1 file
REM then close elevated window when finished
REM Output captured results
IF EXIST %temp%\trans.txt del %temp%\trans.txt
Echo %* ^> %temp%\trans.txt *^>^&1 > %temp%\tmp.ps1
Echo $error[0] ^| Add-Content %temp%\trans.txt -Encoding Default >> %temp%\tmp.ps1
PowerShell -Command "& {Start-Process PowerShell.exe -Wait -ArgumentList '-ExecutionPolicy Bypass -File ""%temp%\tmp.ps1""' -Verb RunAs}"
Type %temp%\trans.txt
)
一時的な環境変数を使用して、昇格されたショートカット(
start.cmd
setx valueName_betterSpecificForEachCase %~dp0
"%~dp0ascladm.lnk"
ascladm.lnk(ショートカット)
_ properties\advanced\"run as administrator"=yes
(パスを変更するには、一時的にを作成する必要がありますenv.Variable
)
_ properties\target="%valueName_betterSpecificForEachCase%\ascladm.cmd"
_ properties\"start in"="%valueName_betterSpecificForEachCase%"
ascladm.cmd
setx valueName_betterSpecificForEachCase=
reg delete HKEY_CURRENT_USER\Environment /F /V valueName_betterSpecificForEachCase
"%~dp0fileName_targetedCmd.cmd"
)(targetedCmdは管理者特権のコマンドウィンドウで実行されます)
3つのファイルですが、すべての(targetedCmdを含む)サブフォルダーに配置し(フォルダー名をパッチに追加することを忘れないでください)、「start.cmd」の名前を対象の1つの名前に変更できます。
私にとっては、これを行う最もネイティブな方法のように見えますが、cmdには必要なコマンドがありません
ツールExecElevated.exe(13KB)が機能するかどうかはわかりませんが、機能する可能性があります。または、少なくとも、私と同じようにこのページにアクセスした同様のニーズを持つ他のユーザーには役立ちます(ただし、解決策が見つからなかったため、自分で.Netでツールを作成しました)。
昇格したトークンでアプリケーションを実行します(管理モード)。ただし、確認のためにUACダイアログが表示されます。(UACが無効になっている場合はテストしていない可能性があります)。
また、ツールを呼び出すアカウントにも管理者が必要です。もちろん権利。
使用例:
ExecuteElevated.exe "C:\Utility\regjump.exe HKCU\Software\Classes\.pdf"
Powershellを使用したDheeraj Bhaskarのメソッドには、Windows 10にPowershellが組み込まれている場合を除いて、スペースが不足しています。
彼のsudo.bat内のコマンドラインは
powershell.exe -Command "Start-Process cmd \"/k cd /d %cd% \" -Verb RunAs"
%cd%の後の余分なスペースに注意してください
;)Frode
以下は、エクスプローラーと統合する方法です。Windowsエクスプローラー内のフォルダーを右クリックすると、追加のメニュー項目がポップアップ表示されます。
手順は次のとおりです。
*任意のドライブで機能させるには、cdの代わりにpushdを使用します。:-)
次の構文を使用できます。同じ質問があり、スクリプトが必要であるとは思いませんでした。
runas / profile / user:domain \ username cmd
これは私にとってはうまくいきました、あなたのネットワークでは異なるかもしれません。
私はcmdで次のコマンドを使用して簡単に行いました
runas / netonly / user:Administrator \ Administrator cmd
このコマンドを入力した後、管理者パスワードを入力する必要があります(管理者パスワードがわからない場合は、空白のままにしてEnterキーを押すか何かを入力してください)。
昇格されたcmdを開く方法はいくつかありますが、標準のコマンドプロンプトから操作できるのはメソッドだけです。あなたは単に置く必要はありuser
ませんusername
:
runas /user:machinename\adminuser cmd
Microsoftコミュニティから関連するヘルプを参照してください。
runas /user:domainuser@domain cmd
昇格したプロンプトを正常に開いたものを使用しました。