13

次のようなエラーが発生しないように、別のバッチファイルを管理者権限で開始/呼び出すにはどうすればよいですか?

アクセスが拒否されましたエラー コード 5

これが私が望んでいるようなものです。

echo PLEASE TYPE YOUR USERNAME AND PASSWORD IN THE FIELDS BELOW.
echo.
echo.
echo.
echo.
set /p u=Username:
echo.
set /p p=Password:
start next.bat %u% %p%
4

7 に答える 7

4

どちらの方法を選択しても、管理者権限で実行する必要があるため、どちらが短いかがポイントです。jean-Michaelが言ったように、私はジェームス アプローチ (vbScript を使用) を好みRight Click > Run as administratorます、別の vbScript ファイルを使用したくない場合は、バッチ ファイルをクリックして管理者権限で実行することを受け入れます (1 つの権利があることに注意してください)。クリックして左クリックしないでください)これをお勧めします:

バッチ ファイルからショートカットを作成し、ショートカットを右クリック> [プロパティ] > [ショートカット] タブ > [詳細設定] で、[管理者として実行] チェックボックスをオンにします。ショートカットから実行するたびに、ワンクリックで管理者権限で実行できます。

この助けを願っています。

于 2015-01-17T10:28:16.040 に答える
3

AutoIt ( runas関数を参照)のようなサードパーティのユーティリティはオプションではない場合もありますが、そのオプションがある場合は、それを確認してください。これにより、目的のことが正確に実行できるようになります。その後、スクリプトから AutoIt スクリプトを呼び出して、その runas 関数を使用できます。

Windows runas は、オプションに満足しない限り、パスワードの提供をサポートしていません。/savecredこれは、単一のコンピューターからのみタスクを実行している場合には問題ありません。初めてパスワードを要求されますが、その後は要求されません (ただし、使用/savecredするたびにオプションを使用する必要があります)。これを使用すると、巨大なセキュリティ ホールになる可能性があると感じています。ただし、これは自分のマシン用のように見えるため、バッチでこれを使用します。

runas /user:computername\username /savecred yourcommand.exe

もう 1 つの方法は、スクリプトから呼び出すことができるスケジュールされたタスクを作成することです。ここで説明されているように、 GUIを使用するか、昇格したコマンド ラインから作成できます。

次に、次のようにスクリプトから呼び出すことができます。

SCHTASKS /Run /TN yourtaskname
于 2013-08-04T18:23:35.950 に答える
1

@cmd、例を投稿しました(バッチスクリプトからユーザーの有効なアクセス許可をテストするにはどうすればよいですか? )および 権限を使用bat fileして別の実行を実行する(必要な場合のみ)。 ShellExecuteelevated

それがあなたが探しているものであり、必要なものであるかどうかを見てください。そうでない場合はお知らせください。スクリプトが機能するように調整できます。

幸運を

于 2013-08-05T07:36:01.527 に答える
1

バッチ ファイル内で管理者として実行する方法はありませんが、.VBS ファイル内からバッチ ファイルを起動すると、「runas」パラメーターを指定できます。

set shell=CreateObject("Shell.Application")
shell.ShellExecute "your_batch_file.bat",,"C:\path\to\thedirectory", "runas", 0 
set shell=nothing 

これにより、バッチ ファイルが管理者として起動され、シェルの表示を有効または無効にすることができます (この例では、プログラムを表示せずにバックグラウンドで実行したかったので非表示にしています)。

于 2014-11-13T13:28:09.057 に答える