為什麼我的 cmd.exe 在 Windows 7 中以管理權限開啟?

為什麼我的 cmd.exe 在 Windows 7 中以管理權限開啟?

為什麼我的 cmd.exe 在 Windows 7 中以管理權限開啟。 (我不會說“以管理員身份運行”,因為我知道Win7“以管理員身份運行”選項,以管理權限而不是以管理員身份運行它,這就是這裡發生的情況,儘管是自動的)

我透過點擊我的用戶名進入 Windows。

現在,假設我啟動 cmd.exe,我將以最清晰的方式執行此操作,以表明我沒有單擊快捷方式

在此輸入影像描述

所以我轉到 c:\windows\system32 並且我肯定是從那裡運行 cmd.exe 的。

但它出現的是這樣的

在此輸入影像描述

如果您認為哦,也許我是使用管理員帳戶登入的,但我不是

在此輸入影像描述

我直接從 system32 打開的 cmd.exe 也顯示,雖然它由於某種原因以管理權限運行。它是從用戶帳戶運行的。

在此輸入影像描述

添加

回答評論者「scott」的一些詢問。我顯然有一個名為“用戶”的帳戶,這一點應該很清楚。

評論者“斯科特”建議命令-

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 提示符,則會顯示相同的內容。顯然,就我而言,這是自動發生的。那麼,也許評論者斯科特可以說明他可能一直在尋找什麼?

如果您whoami /priv | find "Enabled"在全新安裝時從使用管理權限啟動的 cmd 提示字元執行該命令,那麼它也會顯示相同的三個項目(來自本機安全性原則..已啟用的使用者權限),已啟用。

因此,除了我已經說過/顯示的內容之外,這些命令不會顯示任何不尋常的內容。

(至於評論者斯科特的其他問題,我不在安全模式下,也不是全新安裝,無論如何,這些事情都不會導致這種行為。至於評論者提出的問題是何時開始的。我不知道這種行為是從什麼時候開始的。

之前也有一些評論,現在都沒有了。有人建議進行修復安裝,但我對什麼設定可能導致此問題感興趣。

評論者 scott 問道:“當你運行 netplwiz 時會發生什麼?”好吧,就像您執行 windows 鍵 + R(以獲取舊的運行對話框)並輸入 一樣control userpasswords2<ENTER>。它顯示您設定使用者是否必須輸入密碼才能登入以及哪些使用者可以自動登入的畫面。

在此輸入影像描述

但這一切都無關緊要。我確實有未隱藏的管理員帳戶,但我沒有以管理員身分登入。正如我所展示的,echo %username% 我以“用戶”身份登入。

評論者「HelpingHand」指出「新增列、「Elevated」和「UAC 虛擬化」。Explorer 的 Elevated 狀態是什麼,cmd 的父進程。是「Elevated=No」、「UAC 虛擬化禁用」嗎?也許是焦點在父進程而不是子進程上,我也會啟動cmd.exe 並執行進程監視器。 。

Windows 7 沒有「Elevated」欄位! Elevated 欄位特定於 Windows 10(也可能是 Win8,但誰在乎 Win8)。在 Win10 中,這些列是特定於選項卡的,並且與 Win10 的詳細資料標籤相關聯。在 Win7 中,列不是特定於選項卡的,並且沒有「提升」列。

您還提到了進程監視器,很棒的程序,但我認為當您指的是一棵樹時,您指的是進程資源管理器。進程監視器不會顯示進程樹。進程資源管理器將。這兩個程式都是 sysinternals/Mark Russinovich 開發的優秀程序,現在可以從 MS 取得。當您提到操作(例如按操作過濾)時,您指的是進程監視器。儘管有 ThreadCreate,但我看不到 CreateProcess

看看一個相當新的、常規的 Windows 7 系統,它沒有這個問題。 Process explorer顯示cmd.exe進程是它在「Explorer」下顯示的explorer.exe進程的子進程,雙擊它它表示父進程是/一個explorer.exe實例。查看各種進程,有些進程將 UAC 虛擬化設定為“允許”,有些進程設定為“停用”。資源管理器已將其設定為停用。 cmd 將其設定為停用。

查看有問題的 Windows 7 系統,查看進程資源管理器,我看到兩個資源管理器進程。 cmd 沒有顯示在它們中的任何一個下。但如果我雙擊 cmd,它會說 explorer.exe 是父進程。查看任務管理器,沒有進程將 UAC 設定為停用。 Explorer 將其設為“不允許”,cmd 將其設定為“不允許”。在兩個資源管理器進程中,一個有一個帶有「/factory....」的命令列,另一個只是對explorer.exe的常規呼叫。 Process Explorer顯示了cmd.exe的PPID(父進程ID/PPID),它與剛剛正常呼叫的explorer.exe實例相符。

至於查看操作ThreadCreate的進程監視器信息,以及堆疊選項卡,這裡貼上。

在此輸入影像描述

您提到要考慮那裡是否有第三方模組。我在那裡沒有看到任何第三方模組/dll 或 exe。

答案1

似乎整個問題都基於錯誤的前提,即「管理員:」前綴表示進程運行的帳戶名稱。事實並非如此。

但這一切都無關緊要。我確實有未隱藏的管理員帳戶,但我沒有以管理員身分登入。正如我用 echo %username% 所示,我以「使用者」身分登入。

不過,所有這些都無關緊要。 「管理員:」前綴其實並不表示管理員帳戶 – 它表示權限一個管理員,即程式以管理員成員的全部權限執行團體

此前綴由 Windows Conhost 添加,因為通常 Windows 7 使用 UAC 並導致所有互動式登入以較低的權限運行,儘管具有群組成員資格 - 只有「提升」的進程在您確認安全提示後才會獲得完整權限。因此,如果您使用「以管理員身分執行」功能表項目以提升的身分執行 cmd.exe,通常您會在 Cmd 的標題列中看到此前綴。

但如果系統禁用了UAC,全部您的“使用者”運行的進程具有完全特權的安全令牌,並且程式始終將自己視為“以管理員身份運行”。

請參閱有關停用 UAC 的其他線程,並按照相反的說明操作以重新啟用 UAC:在 Windows 7 上停用 UAC?

相關內容