Windows
有沒有辦法以程式方式確定 Windows 電腦是否作為 SYSTEM 加入 AAD?
我希望能夠通過腳本確定給定的 Windows 工作站是加入 AAD、加入混合 AD 還是加入本地 AD。
我想從我正在使用的 RMM 執行這個腳本,這樣我就可以將這些結果儲存在 RMM 中,並且能夠輕鬆地將電腦分為這三個類別(加上一個用於未加入任何類型域的工作站)。
我正在使用的 RMM 作為 NT AUTHORITY\SYSTEM 執行 powershell 腳本。
獲取此資訊的典型推薦方法是執行命令
dsregcmd /status
但是,根據Microsoft 的文件
dsregcmd /status 實用程序必須作為域使用者帳戶執行。
我已經在自己的測試中驗證了在 Powershell 中執行 dsregcmd /status 作為 NT AUTHORITY\SYSTEM 返回錯誤
dsregcmd : The term 'dsregcmd' is not recognized as the name of a cmdlet, function, script file, or operable program.
在 cmd 中執行該命令會返回類似的錯誤。
當我嘗試指定 dsregcmd.exe 的完整路徑時,錯誤是相同的。
以SYSTEM身份執行時,有沒有辦法讓這個命令工作?或者,是否有另一種方法可以確定工作站在以 SYSTEM 身份執行時是否加入了 AAD?
查詢系統資料庫 https://nerdymishka.com/articles/azure-ad-domain-join-registry-keys/
確定機器是否加入 AzureAd HKLM:/SYSTEM/CurrentControlSet/Control/CloudDomainJoin/JoinInfo/{Guid}
在密鑰下方,可以找到以下密鑰: – TenantId – UserEmail
$subKey = Get-Item "HKLM:/SYSTEM/CurrentControlSet/Control/CloudDomainJoin/JoinInfo" $guids = $subKey.GetSubKeyNames() foreach($guid in $guids) { $guidSubKey = $subKey.OpenSubKey($guid); $tenantId = $guidSubKey.GetValue("TenantId"); $userEmail = $guidSubKey.GetValue("UserEmail"); }