从特定OU导出用户
我正在编写一个PowerShell脚本,以列出我们的活动目录中的所有用户。在我们的主要OU中,我们拥有子OU,有两件事情我正在努力。从特定OU导出用户
首先我需要从这个报告中排除特定的子OU我不知道如何做到这一点。我遇到的第二个问题是,我想有OU他们中包括在报告中,此刻我得到这样的输出:
DisplayName CanonicalName
Kanye West ad.test/All Users/People that have left/Kanye West
我倒是排除“ad.test /所有用户“和”/ Kanye west“。所以我想输出的是SUB OU名称。
这是我到目前为止写:
Get-ADUser -Filter * -SearchBase "OU=All Users, DC=ad,DC=test" -Properties DisplayName, CanonicalName | select DisplayName, CanonicalName | Export-CSV c:\experiment.csv
如果您只需要从一个OU输出,我建议去该位置第一。
Import-Module activedirectory
Set-Location 'AD:\OU=People that have left,OU=All Users,DC=ad,DC=test'
Get-ADUser -Filter * -Properties DisplayName,CanonicalName | Select-Object DisplayName,CanonicalName | Where-Object CanonicalName -ne 'Kanye West' | Export-CSV C:\Experiment.csv
地址:
Import-Module activedirectory
Get-ADUser -Filter 'CanonicalName -ne "Kanye West"' -SearchBase 'OU=People that have left,OU=All Users,DC=ad,DC=test' -Properties DisplayName,CanonicalName |
Select-Object DisplayName,CanonicalName |
Export-CSV C:\Experiment.csv
不知道这是你正在寻找,但正是我会得到你想要的数组中的第一搜索所有OU的/ Container的列表和然后搜索所有这些对象。
# The OU you want to start searching from
$baseOU = "OU=All Users, DC=ad,DC=test"
# Any OUs that you do not want to be searched
$ouOmits = "All users","Kanye West"
# Get all sub OUs and OU of $baseOU minus any OU that is in the omission list
$ousToSearch = Get-ADOrganizationalUnit -SearchBase $baseOU -Filter * |
Where-Object{$_.name -notin $ouOmits} |
Select -Expand DistinguishedName
如果你只有PowerShell的2.0
$ousToSearch = Get-ADOrganizationalUnit -SearchBase $baseOU -Filter * |
Where-Object{$ouOmits -notcontains $_.name} |
Select -Expand DistinguishedName
这样会得到你想要搜索所有OU的。所以现在让我们循环遍历它们并获得我们实际需要的所有对象。
$ousToSearch | ForEach-Object{
Get-ADUser -Filter * -SearchBase $_ -SearchScope OneLevel -Properties DisplayName,CanonicalName
}
通常搜索是递归的。为了确保我们省略了预期的工作,我们将搜索范围限制在我们要求的OU。
这是一种遗憾'-SearchBase'不接受'String []'类型。只需添加,过滤左侧,格式右侧。 OP希望排除某些OU和用户。 '-Filter'DistinguishedName -notmatch“^ CN =。+,。*,OU = All \ sUsers” - 和CanonicalName -ne“Kanye West”'' – TheIncorrigible1
真的很遗憾。我发现自己的方式更加清洁,如果他的实际用例有更多的OU,那么这样做可能会更简单。当有对象具有此信息时,我讨厌使用正则表达式来处理DN。 – Matt
我只是基于我自己的环境的Get-ADUser给我的过滤器示例。我不常与超级广告合作。 – TheIncorrigible1
感谢编辑@Matt – Navee
没问题。如果你坚持看看我做了什么来了解你以后可以做些什么。我们都在这里提供帮助。 – Matt
只是看了一下,谢谢这将有助于我的下一篇文章:) – Navee