プログラム ファイル内のフォルダーへのアクセス許可を変更するために実行できるバッチ ファイルがあります。現在のユーザーがローカル管理者権限を持っている場合は問題なく実行されますが、権限を持っていないユーザーの場合は、変更を有効にするためにドメイン管理者のパスワードを入力する必要があります。フォルダーのアクセス許可設定を再確認すると、ドメイン管理者が該当のフォルダーを完全に制御していることが示されます。
どうすれば現在ログインしているユーザーWindows は完全な権限を取得しますか?
バッチ ファイルの一部として次の内容が含まれています。
icacls "program files directory" /grant %userdomain%\%username%:F
答え1
管理者としてバッチファイルを実行するときに、現在ログインしているユーザー名を取得するにはどうすればいいですか
現在のユーザーがローカル管理者権限を持っている場合は正常に実行されますが、権限を持たないユーザーの場合は、変更を有効にするためにドメイン管理者のパスワードを入力する必要があります。
以下の例では、ICACLSコマンドロジックに既にある環境変数で変数を設定し、その変数を使用してアカウントを指定して、適切な権限を付与し、それを電話ルーティーン。
@ECHO OFF
SET Identity=%userdomain%\%username%
CALL :ICACLS "%Identity%"
GOTO EOF
:ICACLS
runas /user:MYDOMAIN\USER icacls "program files directory" /grant %~1:F
GOTO EOF
困ったときは
走っている場合コマンドプロンプトRUNASを使用して%userdomain%\%username%
変数を決定します期待値を設定(またはリスト化)しないICACLSコマンドが期待通りに動作するために必要なものなので、以下のコマンドを実行します。コマンドプロンプトRUNAS機能を使用して現在ログオンしているドメインとユーザー名の資格情報の値。ICACLSコマンドで使用できます。権限を設定するにはアイデンティティ\セキュリティプリンシパル。
SET Identity=%userdomain%\%username%
ECHO %Identity%