[英]Updating Active Directory user properties in Active Directory using Powershell
[英]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”脚本文件中,输入您需要在指定服务器上执行的命令。
欲知更多详情,请参阅以下链接:-
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.