6

2 つの部分で実行されるスクリプトがあります。最初の部分には管理者アクセスが必要です (HOSTS ファイルを更新し、コピー/上書きを行います)。その部分が終了したら、スクリプトの最初の部分で更新されたホスト名エイリアスを使用してドライブをマップする必要があります。

このSO Questionを使用して昇格された特権を取得する方法を理解しました。ただし、(管理者で) ドライブをマッピングすると、ドライブが管理者のセッションにマッピングされます。2 番目のスクリプトを実行するには、ユーザー モードに「昇格解除」する必要があります。

これは、少なくとも毎日 1 回、場合によっては 1 日に複数回実行するスクリプトです。可能であれば、1 つの .bat ファイルだけのソリューションを作成しようとしています。理由により、スクリプトは perl で書かれています。

私が試したこと:

  1. runas /user:regular_user コマンドを使用する (これは機能しませ)
  2. 1 つのバッチ ファイル 2 つのバッチ ファイルに CALL を使用する (これは「動作」しますが、何らかの理由で両方が同時に実行されます)
  3. 2 つのバット ファイルを個別に手動で実行します。
  4. SOを検索しましたが、ユーザー->管理者のみではなく、管理者->ユーザーが見つかりませんでした

TLDR: バッチ ファイルで管理者モードからユーザー モードへの昇格を解除するにはどうすればよいですか?

4

3 に答える 3

2

2 つのバッチ ファイルを使用している場合は、次を使用ElevatedBatch.cmdして昇格を指定してバッチを呼び出します (昇格されてMain.cmdいないことを続けます)。

@ECHO OFF
START /WAIT ElevatedBatch.cmd %1 %2 %3 %4 %5 %6 %7 %8 %9
REM here you can do unelevated stuff:
ECHO Running unelevated now

このパラメーター/WAITは、スクリプトが終了するまで待機することを保証しますElevatedBatch.cmd。このElevatedBatch.cmd ようなテンプレートを使用し昇格させることができます。

于 2015-02-13T10:03:43.507 に答える
2

あなたの最善の策は、最高のサード パーティのリモート/ローカル実行ツールである Windows Sysinternals PSEXEC を使用することです。資格情報を提供し、PSEXEC を使用して必要なことを達成できます。PSEXEC コマンドをバッチ ファイルまたは vbs に入れれば、問題なく実行できます。資格情報を 1 つの一意のバッチ ファイルに混在させながら、1 つのコマンドを PSEXEC 昇格されたアクセス許可で呼び出し、次のコマンドを昇格なしで呼び出すこともできます。

http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

于 2013-07-16T14:50:16.163 に答える
0

最初に持ち上げられていない部分を行い、次に持ち上げて続行します。

于 2014-08-08T14:37:31.823 に答える