1. ホーム
  2. ウィンドウズ

[解決済み] [Solved] バッチファイルを自動昇格させ、必要に応じてUACの管理者権限を要求するにはどうすればよいですか?

2022-04-02 23:19:59

質問

バッチファイルを昇格状態でのみ実行させたいのですが、どうすればいいですか?昇格していない場合、ユーザーが昇格してバッチを再起動するオプションを提供します。

システム変数を設定するバッチファイルを書いています。 プログラムファイル の場所に移動し、ドライバのインストーラを起動します。もし、Windows 7/Windows Vistaのユーザー( UAC 右クリックして「管理者として実行」を選択せずに実行すると、2つのファイルをコピーしてシステム変数を書き込む際に「アクセスが拒否されました」と表示されます。

ユーザーが実際に管理者である場合、自動的に昇格してバッチを再起動するコマンドを使いたいのですが。そうでなければ、管理者でない場合、バッチファイルを実行するには管理者権限が必要であることを伝えたいと思います。現在、次のコマンドを使用しています。 xcopy でファイルをコピーし REG ADD を使ってシステム変数を書き込む。これらのコマンドは、Windows XPマシンの可能性に対処するために使用しています。このトピックで似たような質問を見つけましたが、バッチファイルを昇格して再立ち上げすることを扱っているものは見つかりませんでした。

解決方法は?

でスクリプトを呼び出すようにすればよい。 psexec 's -h オプションを使用して、昇格して実行します。

アクセス拒否のエラーが出たときだけ、昇格したパーミッションで再試行するとか?

または、単純にコマンドを xcopyreg.exe は常に psexec -h しかし、毎回パスワードを入力しなければならないのでは、エンドユーザーにとって煩わしい(あるいは、スクリプトにパスワードが含まれていると安全でない)...。