首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# WMI 遠程關機「存取被拒」解決:目標機器需設定管理員密碼

     編輯:程式設計綜合問答

錯誤現象

ms.Connect() 拋出「需要足夠的資源權限」,目標 Win7 防火牆已關、遠程權限全開、密碼為空。

根本原因

Windows 安全策略預設**禁止空密碼帳戶進行網路遠程登入** (Network access: Sharing and security model for local accounts = Classic vs Guest only)。空密碼的 Administrator 屬於「本地帳戶」,遠程 WMI 連線被視為網路登入,遭拒絕。

解決辦法

  1. 為 Administrator 設定非空密碼(最簡單、最安全)。
  2. 或修改本地安全策略 (secpol.msc):
    • 本地原則 → 安全選項 → 「網路存取: 本地帳戶的共用和安全性模型」 → 改為 經典 - 對本地使用者進行驗證,不改變其原本身分。
    • 需重啟生效,**降低安全性**,不推薦生產環境。
  3. 程式碼補全:
    
    ConnectionOptions co = new ConnectionOptions();
    co.Username = "Administrator";
    co.Password = "YourStrongPassword"; // 必須非空
    co.Impersonation = ImpersonationLevel.Impersonate;
    co.Authentication = AuthenticationLevel.PacketPrivacy;
    co.EnablePrivileges = true; // 啟用 SeShutdownPrivilege
    

替代方案

  • PsExec / PowerShell Remoting (Enter-PSSession) / SSH (Win10+ 內建 OpenSSH) 更現代、安全。
  • 域環境下使用域帳戶 + 委派,避免本地帳戶限制。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved