web-dev-qa-db-ja.com

Windows7管理者ユーザー-バッチファイルは常に管理者として実行されます

この質問は、以下のコメントを通じて受け取った必要な説明に基づいて編集されています。

https://stackoverflow.com/questions/4051883/batch-script-how-to-check-for-admin-rights から取得した簡単なbatファイルがあります。 batスクリプトをダブルクリックするだけでユーザーとして呼び出されたか、「管理者として実行」として実行されたかをテストします。私はそれをテストしました、そしてそれは管理者レベルのユーザーの下で私のWindows 8.1 Home64ビットラップトップでうまく動作します。ダブルクリックすると、昇格したコマンドプロンプトから実行されていないことを示し、[管理者として実行]の場合は別の方法で表示されます。

以下のコメントから、管理者の最低の特権レベルはユーザーであり、[管理者として実行]を選択すると管理者に昇格することがわかります。

ただし、私のWindows 7 Ultimate 32ビットでは、同じように動作しません。ダブルクリックすると、管理者として実行されたままになります。これはセキュリティの問題ですか?デフォルトのユーザーレベルに設定する方法はありますか?

コントロールパネルでUACがオフになっています。また、ショートカットを作成/実行していないことに注意してください。常に「管理者として実行」に設定してください。

私のWindows7では、ダブルクリックしたときにユーザーとして実行し、「管理者として実行」が呼び出されたときにのみ管理者として実行したいと思います。


スクリプトは説明の範囲外ですが、参照用に以下に貼り付けるだけであることに注意してください。

@echo off
openfiles > NUL 2>&1 
if NOT %ERRORLEVEL% EQU 0 goto NotAdmin 
echo Hello from elevated command Prompt 
goto End 
:NotAdmin 
echo This command Prompt is NOT ELEVATED
:End
pause
exit 
3
patkim

ユーザーアカウント制御(UAC)が有効になっている場合でも、[組み込みの管理者アカウントでログオンした場合の予想される動作

デフォルト構成のWindowsVista(およびこの記事の執筆時点では include Windows 10)以降、組み込みの管理者アカウントで実行されるアプリケーションは、完全な管理者権限で実行されます。これは、 「管理者承認モード」セキュリティポリシー のデフォルト設定が無効であるためです。

ユーザーアカウント制御:組み込みの管理者アカウントポリシー設定の管理者承認モードは、組み込みの管理者アカウントの管理者承認モードの動作を制御します。

オプションは次のとおりです。

  • 有効。組み込みの管理者アカウントは、管理者承認モードを使用します。デフォルトでは、特権の昇格が必要な操作はすべて、ユーザーに操作の承認を求めます。

  • 無効。 (デフォルト)組み込みの管理者アカウントは、完全な管理者権限ですべてのアプリケーションを実行します。


管理者承認モードの設定を変更する方法

WindowsのProfessional/Business/Enterprise/Ultimateエディションを使用している場合:ローカルグループポリシーを 編集することでこの設定を変更できます

  1. Startをクリックし、プログラムとファイルの検索ボックスにsecpol.mscと入力して、Enterキーを押します。

  2. ユーザーアカウント制御ダイアログボックスが表示された場合は、表示されるアクションが目的のアクションであることを確認してから、はいをクリックします。

  3. コンソールツリーで、[ローカルポリシー]を展開し、[セキュリティオプション]をクリックします。

  4. 詳細ウィンドウで、下にスクロールして、グループポリシー設定をダブルクリックしますユーザーアカウント制御:組み込みの管理者アカウントの管理者承認モード

  5. Propertiesページで選択を行い、[〜#〜] ok [〜#〜]をクリックします。

WindowsのHomeエディションまたはStarterエディションを使用している場合:secpol.mscにアクセスできないため、ローカルセキュリティポリシーを編集できません。ただし、この スーパーユーザーの回答 は、別の 幸いなことに 、まだアクセス可能な askvg.comのリンクを示しています。 レジストリの設定を変更する方法を説明します:

  1. [ファイル名を指定して実行]または[スタートメニュー]検索ボックスにregeditと入力し、Enterキーを押します。レジストリエディタが開きます。次に、次のキーに移動します。

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies

  2. [ポリシーキー]で、「System "」という名前のキーを探します。存在しない場合は、ポリシーキーを右クリックして作成し、「新規->キー "」を選択して名前を付けます" システム " 。

  3. 次に、Systemキーを選択し、右側のペインで新しいDWORD値を作成して、次のリストに記載されているように、目的の微調整を適用します。

ユーザーアカウント制御:組み込みの管理者アカウントの管理者承認モード

DWORD値-FilterAdministratorToken

有効にするには---1
無効にするには---