使用大多数ActiveDirectory
命令,您可以添加参数:-server
。事实证明这个参数对我来说非常有用,因为我工作的地方似乎有一些缓慢的更新系统,当我不只使用其中一个服务器时,我的程序可能会滞后并完全出错。 / p>
我也试图修改文件夹的ACL。为此,我有一个函数,它接受-PassThru
New-ADGroup
命令,然后将其传递给自定义函数。
自定义函数创建并返回新的AccessRules
(添加到数组$AccessRules
),然后将其添加到$acl
变量中:
$AccessRules |
%{$acl.AddAccessRule($_)}
这不一致地返回错误:有时,它运行顺利,但有时,它返回经典"部分或全部身份引用无法翻译"。我90%肯定这是因为它没有检查正确的服务器,因为即使在
之间Get-ADGroup -filter {name -eq "[group name]"}
和
Get-ADGroup -filter {name -eq "[group name]"} -Server [server name/address]
我只得到第二个结果。
有没有办法可以将类似的-Server
参数添加到.AddAccessRule()
之类的内容中?也许是一种略有不同的方法?
答案 0 :(得分:1)
您可以使用this answer中指定的巧妙技巧。您使用某个服务器为AD创建New-PSDrive
,然后将cd
或set-location
调用到该驱动器,瞧,任何调用的.NET函数(以及任何未重定向的cmdlet)到不同的服务器)将使用该服务器处理请求,将AD实体解析为SID等,而无需等待AD复制。