AddAccessRule:"无法翻译部分或全部身份参考。"如何查看特定服务器?

时间:2017-08-31 06:55:15

标签: powershell active-directory acl

使用大多数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()之类的内容中?也许是一种略有不同的方法?

1 个答案:

答案 0 :(得分:1)

您可以使用this answer中指定的巧妙技巧。您使用某个服务器为AD创建New-PSDrive,然后将cdset-location调用到该驱动器,瞧,任何调用的.NET函数(以及任何未重定向的cmdlet)到不同的服务器)将使用该服务器处理请求,将AD实体解析为SID等,而无需等待AD复制。