web-dev-qa-db-ja.com

別のユーザーおよび管理者としてコマンドプロンプトからプログラムを実行するにはどうすればよいですか

「runas」を使用してコマンドプロンプトを別のユーザーとして開きますが、そのコマンドプロンプトは管理者として実行されていません。管理者として実行するにはどうすればよいですか?

更新:Windows Server 2012を使用しています

更新:実行して別のアカウントのcmdを開きました

 runas /user:domain\username cmd.exe

次に、この新しいプロンプトでいくつかのコマンドを実行しようとしましたが、これは管理者権限を持っているにもかかわらず、昇格したユーザーとして実行されていません。

49
Mark

こちらをご覧ください: https://superuser.com/questions/42537/is-there-any-Sudo-command-for-windows

それによると、コマンドはadminに対して次のようになります。

 runas /noprofile /user:Administrator cmd
53
Herms

残念ながら、これらの答えはすべてポイントを逃しています。

ここには2つのセキュリティコンテキストニュアンスがあり、それらを重複させる必要があります。 -「管理者として実行」-ローカルマシンの実行レベルを変更-「別のユーザーとして実行」-プロセスを実行するユーザー資格情報を選択します。

ワークステーションでUACが有効になっている場合、昇格しない限り実行を拒否するプロセスがあります。ローカルの「管理者」グループのメンバーであるだけでは不十分です。また、サインインしているユーザーに対して代替資格情報を使用することを要件が規定している場合は、代替資格情報および昇格されたプロセスの両方を呼び出すメソッドが必要です。

少し面倒ですが、使用できるとわかったのは次のとおりです。

  • 管理者としてCMDプロンプトを実行します
  • 次のようにSysinternals psexecユーティリティを使用します。

    psexec \\ localworkstation -h -i -u domain\otheruser exetorun.exe

最初の昇格は、psexecサービスをプッシュできるようにするために必要です。 -hは、昇格された新しい「リモート」(ローカル)プロセスを実行し、-iはデスクトップと対話します。

おそらくこれよりも簡単な方法がありますか?

16
Kevin

スタート->シフト+コマンドプロンプトを右クリックすると、別のユーザーまたは管理者として使用できます

14
Sun_Sparxz

私はこれを1行で行う方法を見つけました:

runas /user:DOMAIN\USER2 /savecred "powershell -c start-process -FilePath \"'C:\\PATH\\TO\\YOUR\\EXECUTABLE.EXE'\" -verb runAs"

ここでいくつかのコツがあります。

1:PowershellをDOMAIN\USER2として実行するようにCMDに指示しています

2:「Start-Process」コマンドをPowershellに渡し、動詞「runAs」を使用してDOMAIN\USER2を管理者/昇格特権モードに昇格させます。

一般的な注意事項として、「FilePath」引数のエスケープ文字mustが存在する必要があります(つまり、「\&\\文字の組み合わせ」)、単一引用符( ')mustはEXEパスを囲む-このように、CMDはFilePathを単一文字列として解釈し、Powershellは単一引用符を使用してFilePathを単一の引数として解釈します。

「RunAs」動詞を使用してPowershell内で昇格するhttp://ss64.com/ps/syntax-elevate.html =

7
Coruscate5

Microsoft Sysinternals Suiteからpsexec.exeを使用できます https://docs.Microsoft.com/en-us/sysinternals/downloads/sysinternals-suite

例:

c:\somedir\psexec.exe -u domain\user -p password cmd.exe
1
Paweł M.

Runasは管理者として魔法のようにコマンドを実行するのではなく、資格情報を提供するアカウントとしてコマンドを実行します。管理者アカウントでない場合、runasは気にしません。

1
Wug

GUIを介して動作する手順を提供しています

スタートメニューまたは検索バーで「cmd」を検索し、ファイルの場所を右クリックして開きます。

次に、Shiftキーを押しながら、別の資格情報で開くアプリケーション/プログラムまたはショートカットを右クリックしてください。

詳細については、以下の記事を参照してください http://www.windowscage.com/how-to-run-application-as-different-user-in-windows/

私の場合、私はすでにローカル管理者としてログインしており、CMDをドメイン管理者として実行する必要があったので、私にとってうまくいったのは以下を実行することでしたpowershellウィンドウから

runas/noprofile/user:DOMAIN\USER "cmd"

0
Ajay Raw

メモ帳を開き、次のコードを貼り付けます。

@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/c %*'"
@echo on

次に、ファイルをSudo.cmdとして保存します。このファイルをコピーしてC:\Windows\System32に貼り付けるか、Sudo.cmdのパスをPATH環境変数に追加します。

コマンドプロンプトを開くと、Sudo start .のようなものを実行できるようになりました。

コマンドを実行するときにターミナルウィンドウを開いたままにする場合は、メモ帳のコードを次のように変更します。

@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k %*'"
@echo on

説明:

powershell -Commandはpowershellコマンドを実行します。

Start-Processは、プロセス(この場合はコマンドプロンプト)を開始するpowershellコマンドです。

-Verb RunAsは、adminとしてコマンドを実行します。

-Argument-Listは引数を指定してコマンドを実行します。

引数は'/c %*'です。 %*はすべての引数を意味するため、Sudo foo barを実行すると、コマンドプロンプトfoo barで実行されます。パラメーターはfooとbarであり、%*foo barを返すためです。

/cは、コマンドの終了後にウィンドウを閉じるためのcmdパラメーターです。/kは、ウィンドウを開いたままにするためのcmdパラメーターです。

0
CME1 Crewmember