5

UAC が有効になっているかどうかのチェックを実行するバッチ ファイルのスクリプトを作成する方法:

REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v EnableLUA

結果が次の場合に有効になります。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System EnableLUA    REG_DWORD    **0x1**)

結果が次の場合は無効になります。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System EnableLUA    REG_DWORD    **0x0**)

スクリプトは、結果に応じてさまざまなコマンドを実行する必要があります。

4

2 に答える 2

2

検索結果に応じて、FINDまたはおよび 呼び出しコマンドを使用して、どちらか一方の値を単純に検索できます。FINDSTRパターンは基本的に次のようになります。

REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v EnableLUA | (
  FIND "0x1" >NUL
) && (
  command(s)_to_run_when_UAC_is_enabled
) || (
  command(s)_to_run_when_UAC_is_disabled
)

つまり、REGは、「パイプ」( |) を使用して の入力に渡される出力を生成しますFINDFIND0x1その入力を検索し、検索の結果に応じて、次の括弧で囲まれたコマンド ブロックのいずれかが実行されます。

command && command || command、コマンドを選択的に実行できるようにする標準的なメカニズムであり、 に代わるものですIF。最初のコマンドは結果を生成します。&&結果が「成功」の場合は直後のコマンドが||実行され、失敗の場合は直後のコマンドが実行されます。

両方のケースでアクションを実行する必要がある場合は、結果を生成するコマンドの後に と の両方&&を使用します||が、1 種類の結果のみに反応する必要がある場合は、 または のいずれかを省略でき&&ます||

于 2012-06-30T22:09:34.820 に答える
1

EnableLUA ここに関するMicrosoftのドキュメントをチェックしてください:

@echo off
for /f "skip=2 tokens=3" %%a in ('reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA') do if "%%a" equ "0x0" (
rem When UAC is disabled
) ELSE (
rem When UAC is enabled
)
于 2020-02-22T03:21:01.977 に答える