AddAccessRule: "Some or all identity references could not be translated." 如何检查特定服务器?
AddAccessRule: "Some or all identity references could not be translated." How can I check a specific server?
对于大多数 ActiveDirectory
命令,您可以添加一个参数:-server
。这个参数已经证明对我非常有用,因为我工作的地方似乎有某种更新缓慢的系统,当我不只使用其中一个服务器时,我的程序可能会滞后并完全错误。
我也在尝试修改文件夹的 ACL。为此,我有一个函数接受 New-ADGroup
命令的 -PassThru
,然后将其通过管道传输到自定义函数中。
自定义函数创建 returns 新 AccessRules
(添加到数组 $AccessRules
),然后添加到 $acl
变量:
$AccessRules |
%{$acl.AddAccessRule($_)}
这不一致 returns 错误:有时,它运行流畅,但其他时候,它 returns 经典 "Some or all identity references could not be translated"。我 90% 肯定这是因为它没有检查正确的服务器,因为即使在
之间
Get-ADGroup -filter {name -eq "[group name]"}
和
Get-ADGroup -filter {name -eq "[group name]"} -Server [server name/address]
我只得到第二个结果。
有什么方法可以将类似的 -Server
参数添加到 .AddAccessRule()
之类的东西中?也许方法略有不同?
您可以使用 this answer 中指定的巧妙技巧。您使用某个服务器为您的 AD 创建一个 New-PSDrive
,然后调用 cd
或 set-location
到该驱动器,瞧,任何调用的 .NET 函数(以及任何未重定向的 cmdlet到不同的服务器)将使用该服务器处理请求,将 AD 实体解析为 SID 等,而无需等待 AD 复制。
对于大多数 ActiveDirectory
命令,您可以添加一个参数:-server
。这个参数已经证明对我非常有用,因为我工作的地方似乎有某种更新缓慢的系统,当我不只使用其中一个服务器时,我的程序可能会滞后并完全错误。
我也在尝试修改文件夹的 ACL。为此,我有一个函数接受 New-ADGroup
命令的 -PassThru
,然后将其通过管道传输到自定义函数中。
自定义函数创建 returns 新 AccessRules
(添加到数组 $AccessRules
),然后添加到 $acl
变量:
$AccessRules |
%{$acl.AddAccessRule($_)}
这不一致 returns 错误:有时,它运行流畅,但其他时候,它 returns 经典 "Some or all identity references could not be translated"。我 90% 肯定这是因为它没有检查正确的服务器,因为即使在
之间Get-ADGroup -filter {name -eq "[group name]"}
和
Get-ADGroup -filter {name -eq "[group name]"} -Server [server name/address]
我只得到第二个结果。
有什么方法可以将类似的 -Server
参数添加到 .AddAccessRule()
之类的东西中?也许方法略有不同?
您可以使用 this answer 中指定的巧妙技巧。您使用某个服务器为您的 AD 创建一个 New-PSDrive
,然后调用 cd
或 set-location
到该驱动器,瞧,任何调用的 .NET 函数(以及任何未重定向的 cmdlet到不同的服务器)将使用该服务器处理请求,将 AD 实体解析为 SID 等,而无需等待 AD 复制。