Windows 7 で cmd.exe が管理者権限で開くのはなぜですか?

Windows 7 で cmd.exe が管理者権限で開くのはなぜですか?

なぜ Windows 7 で cmd.exe が管理者権限で開かれるのでしょうか。(「管理者として実行」とは言いません。Win7 の「管理者として実行」オプションでは管理者としてではなく管理者権限で実行されることは承知しており、ここでは自動的にそれが起こっているからです)

ユーザー名をクリックして Windows に入ります。

さて、cmd.exeを起動して、ショートカットをクリックしていないことを示す最も明確な方法で実行します。

ここに画像の説明を入力してください

そこで、c:\windows\system32 に移動し、そこから cmd.exe を実行します。

しかし、こうなるのです

ここに画像の説明を入力してください

もしあなたが、管理者アカウントでログインしているかもしれないと思ったら、そうではありません

ここに画像の説明を入力してください

また、system32 から直接開いた cmd.exe も、何らかの理由で管理者権限で実行されていることを示しています。ユーザー アカウントから実行されています。

ここに画像の説明を入力してください

追加した

コメント投稿者「scott」からのいくつかの質問に回答します。明らかに、私は「user」というアカウントを持っています。それは明らかです。

コメント投稿者「スコット」は、コマンドを提案しています-

C:\Users\User>net user %username% | find "Group"
Local Group Memberships      *Administrators       *HomeUsers
Global Group memberships     *None

C:\Users\User>

(はい、ユーザー アカウントは管理者グループのメンバーですが、その場合、この動作は発生しません)。

コメント投稿者「scott」は、出力を表示しながらこのコマンドを実行することを提案しています。

C:\Users\User>whoami /priv | find "Enabled"
SeChangeNotifyPrivilege         Bypass traverse checking                  Enabled
SeImpersonatePrivilege          Impersonate a client after authentication Enabled
SeCreateGlobalPrivilege         Create global objects                     Enabled

C:\Users\User>

何も異常はありません。新規インストール時に管理者権限で cmd プロンプトを実行すると、同じことが表示されます。明らかに、私の場合は自動的に行われています。それで、コメント投稿者の scott は、そこで何を探していたのかを述べられるでしょうか?

whoami /priv | find "Enabled"新規インストール時に管理者権限で起動した cmd プロンプトからそのコマンドを実行すると、同じ 3 つの項目 (ローカル セキュリティ ポリシーから、ユーザー権限が有効) が有効になっていることも表示されます。

したがって、これらのコマンドは、私がすでに言った/示した内容以外に異常なことは何も示しません。

(コメント投稿者のスコットさんの他の質問については、私はセーフ モードではなく、新規インストールでもありません。いずれにせよ、これらのいずれの場合でもこの動作は発生しません。コメント投稿者が質問した、いつから始まったかという質問については、この動作がいつから始まったのかはわかりません。)

以前にもいくつかコメントがありましたが、今は消えています。修復インストールを提案するコメントもありましたが、どのような設定が原因なのか興味があります。

コメント投稿者の scott さんは、「netplwiz を実行すると何が起こりますか?」と質問していますcontrol userpasswords2<ENTER>。これは、Windows キー + R (古い実行ダイアログ ボックスを表示する) を押して と入力した場合と同じです。ユーザーがログインするためにパスワードを入力する必要があるかどうか、およびどのユーザーが自動的にログインできるかを設定する画面が表示されます。

ここに画像の説明を入力してください

ただし、これらはすべて無関係です。管理者アカウントは非表示になっていませんが、管理者としてログインしていません。前述のとおり、echo %username% 私は「ユーザー」としてログインしています。

コメント投稿者「HelpingHand」は、「列「Elevated」と「UAC Virtualization」を追加してください。cmd の親プロセスである Explorer の Elevated 状態とは何ですか。「Elevated=No」、「UAC Virtualization-disabled」ですか? 子プロセスではなく親プロセスに重点を置くといいかもしれません。また、Process Monitor を実行しながら cmd.exe を起動します。ツリー ビューで、上記のチェックされた Explorer.exe プロセスの子プロセスであることを確認し、Explorer.exe による CreateProcess 操作をチェックして cmd を起動します。具体的には、CreateProcess を呼び出しているスタックです。サード パーティ モジュールがないことを確認するといいでしょう。スクリーンショットを貼り付けるといいかもしれません。」と述べています。

Windows 7 には「管理者特権」列がありません。管理者特権列は Windows 10 に固有のものです (Win8 にも存在するかもしれませんが、Win8 については誰が気にするでしょうか)。Win10 では列はタブ固有であり、Win10 の詳細タブに関連付けられています。Win7 では列はタブ固有ではなく、「管理者特権」列はありません。

また、プロセス モニターについて言及されていますが、これは素晴らしいプログラムです。ただし、ツリーについて言及されている場合、プロセス エクスプローラーのことだと思います。プロセス モニターではプロセスのツリーは表示されませんが、プロセス エクスプローラーでは表示されます。どちらのプログラムも、sysinternals/Mark Russinovich による優れたプログラムで、現在 MS から入手できます。操作について言及されている場合 (操作によるフィルタリングなど)、プロセス モニターのことを指します。私が確認した限りでは、CreateProcess はありませんが、ThreadCreate はあります。

問題のない、比較的新しい通常の Windows 7 システムを見てみましょう。プロセス エクスプローラーでは、cmd.exe プロセスが「エクスプローラー」の下に表示される explorer.exe プロセスの子であることが示され、ダブルクリックすると、親が explorer.exe インスタンスであることが示されます。さまざまなプロセスを見ると、UAC 仮想化が [許可] に設定されているものもあれば、 [無効] に設定されているものもあります。エクスプローラーでは無効に設定されています。cmd では無効に設定されています。

問題の Windows 7 システムでプロセス エクスプローラーを見ると、2 つのエクスプローラー プロセスがあります。どちらのプロセスにも cmd は表示されません。ただし、cmd をダブルクリックすると、explorer.exe が親プロセスであると表示されます。タスク マネージャーを見ると、UAC が無効に設定されているプロセスはありません。エクスプローラーでは UAC が「許可されていません」に設定されており、cmd では「許可されていません」に設定されています。2 つのエクスプローラー プロセスのうち、1 つには「/factory....」というコマンド ラインがあり、もう 1 つは explorer.exe への通常の呼び出しです。プロセス エクスプローラーには、cmd.exe の PPID (親プロセス ID/PPID) が表示され、通常どおり呼び出される explorer.exe のインスタンスと一致します。

操作 ThreadCreate とスタック タブを確認するプロセス モニター情報については、ここに貼り付けます。

ここに画像の説明を入力してください

そこにサードパーティのモジュールがあるかどうかを考慮するように言っています。そこにサードパーティのモジュール/dll または exe は見当たりません。

答え1

質問全体は、「Administrator:」プレフィックスがプロセスが実行されているアカウント名を示すという誤った前提に基づいているようです。そうではありません。

ただし、これらはすべて無関係です。管理者アカウントは非表示になっていませんが、管理者としてログインしていません。echo %username% で示したように、私は「ユーザー」としてログインしています。

しかし、これらはすべて無関係です。「管理者:」というプレフィックスは実際には管理者アカウント – 権限を示します管理者、つまりプログラムは管理者のメンバーとしての完全な権限で実行されていますグループ

このプレフィックスは Windows Conhost によって追加されます。通常、Windows 7 は UAC を使用し、グループ メンバーシップに関係なくすべての対話型ログインが制限された権限で実行されるためです。セキュリティ プロンプトを確認した後は、「昇格された」プロセスのみが完全な権限を受け取ります。そのため、通常、「管理者として実行」メニュー項目を使用して cmd.exe を昇格して実行すると、Cmd のタイトル バーにこのプレフィックスが表示されます。

しかし、システムでUACが無効になっている場合は、全て「ユーザー」によって実行されるプロセスには完全な権限を持つセキュリティ トークンがあり、プログラムは常に「管理者として実行」されていると認識されます。

UAC を無効にする方法については、次の他のスレッドを参照し、UAC を再度有効にするには、その手順を逆に実行してください。Windows 7 で UAC を無効にしますか?

関連情報