【问题标题】:Compare two organizational units with Powershell使用 Powershell 比较两个组织单位
【发布时间】:2013-05-02 14:14:32
【问题描述】:

我想比较两个单位部门的用户。 我可以使用以下命令获取我的用户列表:

OU_NUMBER_1:

Get-ADUser -filter * -SearchBase "OU=OU_NUMBER_1,OU=OU-SNE_SharePoint,DC=vf,DC=local" | Select sAMAccountName


OU_NUMBER_2:
    Get-ADUser -filter * -SearchBase "OU=OU_NUMBER_2,OU=OU-SNE_SharePoint,DC=vf,DC=local" | Select sAMAccountName

我想从这些列表中获得同名。我是否必须将我的用户放在一些列表中并进行比较?或者有人有更好的主意吗?

总而言之,我想获得一个与我的 OU 同名的列表。

【问题讨论】:

  • 如果我对您的理解正确,您希望获得两个 OU 中的用户?
  • 是的,这正是我想要的。

标签: powershell active-directory ou


【解决方案1】:

/更新

试试

$UserGroup1 = Get-ADUser -filter * -SearchBase "OU=OU_NUMBER_1,OU=OU-SNE_SharePoint,DC=vf,DC=local" | select sAMAccountName


$UserGroup2 = Get-ADUser -filter * -SearchBase "OU=OU_NUMBER_2,OU=OU-SNE_SharePoint,DC=vf,DC=local" | Select sAMAccountName


$UserInBothOU = Compare-Object $UserGroup1 $UserGroup2 -IncludeEqual

请注意,数组 $UserInBothOU 包含 PowerShell 对象。 当您需要 sAMAccountName 时,您必须执行以下操作:

foreach($User in $UserInBothOU)
{
    Write-host $User.sAMAccountName
}

因为 sAMAccountName 只是一个属性。

【讨论】:

  • 我已经测试了您的解决方案。但是我无法在我的 $UserInBothGroups 中获得任何用户即使我用这个更改我的 PS 代码,它也没有包含任何内容: Foreach($User in $UserGroup1) { [Array]$UserInBothGroups += $User }
  • 请试用我的更新。如果这甚至不起作用,你必须等到明天,当我在工作时:)
  • 谢谢!我明天也会在工作中测试,我会与您保持联系! ;)
【解决方案2】:
$OLDGroup = Get-ADUser -filter * -SearchBase "OU=InactiveObjects,DC=gov,DC=au" -server "gov.au" | select sAMAccountName

$NEWGroup = Get-ADUser -filter * -SearchBase "OU=StandardUsers,OU=Users,DC=nsw,DC=gov,DC=au" -server "nsw.gov.au" | Select sAMAccountName

compare-object $OLDGroup $NEWGroup -Property 'SamAccountName' -IncludeEqual

【讨论】:

    猜你喜欢
    • 2021-05-13
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-29
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    • 1970-01-01
    相关资源
    最近更新 更多