簡體   English   中英

在遠程 Powershell session 中使用 Active Directory cmdlet

[英]Using Active Directory cmdlets in a remote Powershell session

我需要能夠在遠程 session 中運行 Active Directory cmdlet,而不必每次都傳遞顯式憑據。

這是我的設置:

ServerA:我從哪里開始。

ServerB:我使用 PS 遠程處理/WinRM 遠程訪問的服務器

ServerC:域 controller 我正在嘗試與之通信。

連接到 ServerB 后,我嘗試聯系 AD:

Get-ADUser frank -Server ServerC

這失敗並出現以下錯誤:

Unable to contact the server. This may be because this server does not exist, it is currently down, or it does not have the Active Directory Web Services running.
    + CategoryInfo          : ResourceUnavailable: (frank:ADUser) [Get-ADUser], ADServerDownException
    + FullyQualifiedErrorId : ActiveDirectoryServer:0,Microsoft.ActiveDirectory.Management.Commands.GetADUser

但是顯式傳遞憑據:

Get-ADUser frank -Server ServerC -Credential $storedCredential

成功如你所料。

據我了解,第一個命令的失敗是因為不允許 ServerB 將用於創建遠程 session 的憑據傳遞給 ServerC。 我做了一些研究,我認為在這種情況下應該有效的解決方案是基於資源的約束 Kerberos 委派。

我已將 ServerB 添加到 ServerC 的 AD 計算機 object 的PrincipalsAllowedToDelegateToAccount屬性中,但我仍然收到完全相同的錯誤消息。

我現在無法判斷我是否弄亂了 RBCKD 配置,或者我是否以某種方式誤解了它,這實際上並不是實現我想要做的事情的一種方式。 我也沒有在 ServerB 或 ServerC 的日志中看到任何有用的信息來解釋為什么對 AD 的調用被拒絕。

我的主要問題是:這應該工作嗎? 如果是,我如何確定它失敗的原因? 如果沒有,我應該使用另一種解決方案嗎?

• 我建議您檢查是否在您的域環境中啟用了以下組策略設置。 如果已啟用,請禁用它,因為此設置將禁用 WinRM 服務的身份驗證協議協商。

'組策略管理 -> 默認域策略 -> 編輯 -> 計算機配置 -> 管理模板 -> Windows 組件 -> Windows 遠程管理 -> WinRM 服務 -> 禁止協商身份驗證 -> 禁用'

• 完成上述操作后,通過主域 controller 和成員服務器上的“gpupdate /force”命令更新組策略設置。 然后在兩者上重新啟動 Windows 遠程管理 (WS-MAN) 服務。 然后,請嘗試將 IIS 應用程序池更改為在“本地系統”下運行並刪除現有的 SPN,如下所示,然后重新連接到服務器 B 進行檢查。 如果問題仍然存在,請在 IIS 管理控制台中禁用 Kernel 模式身份驗證。

另外,我建議您通過執行以下命令,通過 powershell 命令行執行您想要作為遠程 powershell 腳本的命令:-

Invoke-Command -ComputerName Server01, Server02 -FilePath c:\Scripts\ADUser.ps1

在“ADUser.ps1”腳本文件中,輸入您需要在指定服務器上執行的命令。

欲知更多詳情,請參閱以下鏈接:-

https://docs.microsoft.com/en-us/powershell/scripting/learn/remoting/running-remote-commands?view=powershell-7.2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM