【问题标题】:Invoke command error, trying to get linked GPO's from specific OU from dc by script调用命令错误,尝试通过脚本从 dc 的特定 OU 获取链接的 GPO
【发布时间】:2020-05-18 18:05:54
【问题描述】:

我在 PS 脚本中有一行到 DC 并尝试这样做:

    $SWITCH = Invoke-Command -session $s -ScriptBlock {Get-ADOrganizationalUnit -filter *  -Property CanonicalName | Where-Object {$_.CanonicalName -eq $using:listBox2.SelectedItem}}

这里是变量: $switch = "OU=office,DC=shahar,DC=local" $s = 使用管理员帐户进入 DC 的凭据。

如果我在没有调用命令的情况下在 DC 上运行这一行,它就可以工作。如果我使用这些凭据运行其他代码行并调用命令,它也可以工作。

如果我在 powershell 上运行这一行(不是作为脚本的一部分)它可以工作。

如果我用实际字符串 ("DC=...") 替换 $switch,它仍然不起作用。 这是错误,我只是无法弄清楚问题所在:

无法绑定参数“身份”。无法将值“OU=Office,DC=shahar,DC=local”转换为类型 “Microsoft.ActiveDirectory.Management.ADOrganizationalUnit”。错误:“无法转换“OU=Office,DC=shahar,DC=local” 要键入的“Deserialized.Microsoft.ActiveDirectory.Management.ADOrganizationalUnit”类型的值 “Microsoft.ActiveDirectory.Management.ADOrganizationalUnit”。 + CategoryInfo : InvalidArgument: (:) [Get-ADOrganizationalUnit], ParameterBindingException +fullyQualifiedErrorId:CannotConvertArgumentNoMessage,Microsoft.ActiveDirectory.Management.Commands.GetADOrgani 国家单位 + PSComputerName : dc01

任何帮助将不胜感激!

顺便说一下,这样做的目的是从 DC 获取链接到该 OU 的 GPO 的名称。

【问题讨论】:

    标签: windows powershell server


    【解决方案1】:

    试试这个:

    ipmo ActiveDirectory,GroupPolicy
    
    $OU = 'OU=office,DC=shahar,DC=local'
    
    (Get-ADOrganizationalUnit $OU).DistinguishedName
    $LinkedGPOs = Get-ADOrganizationalUnit $OU | select -ExpandProperty LinkedGroupPolicyObjects
    $LinkedGPOGUIDs = $LinkedGPOs | % {$_.Substring(4,36)}
    $LinkedGPOGUIDs | % {Get-GPO -Guid $_ | select -ExpandProperty Displayname}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2020-09-11
      • 1970-01-01
      • 2018-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多