132

通常の cmd でコマンド ラインを使用して昇格したコマンド プロンプトを開くにはどうすればよいですか?

たとえば、私は使用していますrunas /username:admin cmdが、開かれたコマンドは昇格していないようです! 解決策はありますか?

4

29 に答える 29

196

私は同じ問題に遭遇しました.CMDから管理者としてCMDを開くことができた唯一の方法は、次のことでした:

  1. CMDを開く
  2. 書いpowershell -Command "Start-Process cmd -Verb RunAs"て押すEnter
  3. 管理者として CMD を開くよう求めるポップアップ ウィンドウが表示されます。
于 2015-08-26T01:05:38.977 に答える
39

ドキュメントによると、Windows セキュリティ モデルは...

常に管理者権限を付与するわけではありません。管理者でさえ、昇格された特権を必要としない非管理タスクを実行するときは、標準特権で実行されます。

[新しいタスクの作成] ダイアログ ( [タスク マネージャー] > [ファイル] > [新しいタスクの実行] ) に [管理者特権でこのタスクを作成する] オプションがありますが、コマンド ラインを使用して特権を効果的に昇格させる組み込みの方法はありません。

ただし、コマンド ラインから権限を昇格させるために使用できるサード パーティ製ツール (内部的に Windows API に依存) がいくつかあります。

NirCmd :

  1. ダウンロードして解凍します。
  2. nircmdc elevate cmd

ウィンドス

  1. インストール: npm install -g windosu( node.jsがインストールされている必要があります)
  2. sudo cmd
于 2014-03-21T15:28:17.990 に答える
16

私は常に 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 なしでプログラムを開始、システムの開始時およびバッチ ファイルで役立つ (タスク スケジューラを使用)」を参照してください。

于 2015-02-19T07:59:27.543 に答える
6

これを行う私のお気に入りの方法は、 http: //technet.microsoft.com/en-us/sysinternals/bb897553 で入手できる SysInternals の PsExec.exe を使用することです。

.\psexec.exe -accepteula -h -u "$username" -p "$password" cmd.exe

「-h」スイッチは、魔法を行うものです。

-h ターゲット システムが Vista 以降の場合、利用可能な場合、アカウントの昇格されたトークンを使用してプロセスを実行します。

于 2014-09-07T14:11:47.290 に答える
3

Powershell を使用した Dheeraj Bhaskar の方法には、少なくとも Windows 10 の Powershell の化身にはスペースがありません。

彼の sudo.bat 内のコマンドラインは

powershell.exe -Command "Start-Process cmd \"/k cd /d %cd% \" -Verb RunAs"

%cd% の後の余分なスペースに注意してください

;)フロデ

于 2019-05-14T09:19:22.403 に答える
3

これには本当にクリエイティブな解決策がたくさんあるようですが、Stiegler & Guiが私にとって最も理にかなっていることがわかりました。これを行う方法を検討していましたが、「現在のユーザー」のローカル権限に依存するのではなく、ドメイン管理者の資格情報と組み合わせて使用​​ していました。

これは私が思いついたものです:

runas /noprofile /user:DomainName\UserName "powershell start cmd -v runas"

冗長に見えるかもしれませんが、管理者パスワードの入力を求めるプロンプトが表示され、昇格したコマンド プロンプトとして表示されます。

于 2021-10-07T14:18:18.623 に答える
2

上記の他のいくつかのソリューションと同様にelevate、昇格した PowerShell ウィンドウを実行するバッチ ファイルを作成し、実行ポリシーをバイパスして、単純なコマンドからバッチ ファイル、複雑な PowerShell スクリプトまで、あらゆるものを実行できるようにしました。使いやすいように、C:\Windows\System32 フォルダーに貼り付けることをお勧めします。

元のelevateコマンドはそのタスクを実行し、出力をキャプチャし、生成された PowerShell ウィンドウを閉じてから戻り、キャプチャした出力を元のウィンドウに書き出します。

elevatepとの 2 つのバリアントを作成しまし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
)
于 2017-03-07T14:38:24.257 に答える
-1

Can use a temporary environment variable to use with an elevated shortcut (

start.cmd

setx valueName_betterSpecificForEachCase %~dp0
"%~dp0ascladm.lnk"

ascladm.lnk (shortcut)

_ properties\advanced\"run as administrator"=yes

(to make path changes you'll need to temporarily create the 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 gets executed in elevated cmd window)

Although it is 3 files ,you can place everything (including targetedCmd) in some subfolder (do not forget to add the folderName to the patches) and rename "start.cmd" to targeted's one name

For me it looks like most native way of doing this ,whilst cmd doesn't have the needed command

于 2018-07-25T23:28:56.877 に答える
-3

このツールを .Net 4.8 ExecElevated.exe、13KB ( VS 2022 ソース プロジェクト) で作成しました。管理者モードで、昇格したトークンを使用してアプリケーションを実行します。ただし、確認のために UAC ダイアログが表示されます。(UACが無効になっている場合はそうではないかもしれませんが、テストしていません)。

また、ツールを呼び出すアカウントにも管理者が必要です。もちろん権利。

使用例:

ExecuteElevated.exe "C:\Utility\regjump.exe HKCU\Software\Classes\.pdf"
于 2014-11-14T23:55:00.417 に答える
-5

runas /user:domainuser@domain cmd昇格したプロンプトを正常に開いたものを使用しました。

于 2014-03-10T23:02:38.160 に答える
-6

昇格した cmd を開くにはいくつかの方法がありますが、標準のコマンド プロンプトから機能するのはその方法だけです。usernotを入れる必要がありますusername:

runas /user:machinename\adminuser cmd

Microsoft コミュニティから関連するヘルプを参照してください。

于 2013-09-30T16:05:53.467 に答える