2017-04-06 42 views
0

我试图找到一种方法来动态地查找OU的名称。获取一个OU的名称,但PowerShell中没有太多的信息

问题是,公司名称OU始终存在,但内容可能会更改。

例如:

enter image description here

在这种情况下,公司的名字我已经找回(我的剧本)是 '微软'。

但是,我还没有找到一种方法,可以动态地做到这一点。

由于子库可能会有所不同(每个客户端,并非所有客户端都具有相同的OU),因此很难找到检索公司名称的好方法。

我曾经想过retrieve the OU that is made by an Admin and has more than 10 objectsGet-ADOrganizationalUnit cmdlet不具有这听起来像created by:

enter image description here

参数我需要放弃还是有某种方式?

编辑

我已经尝试了一种变通方法“algorithmicish”之类的话:

由于OU将最有可能包含用户,我检查所有用户的专有名称,这将回复

Get-ADUser -Filter {Description -like "Member"} | Select DistinguishedName 

CN=User1,OU=User,OU=Microsoft,DC=domain,DC=local 

我怎么能开始做每个OU的计算(计数)?

+1

我不能完全肯定我理解的问题,但我可以告诉你,你可以找到谁通过选择“所有者”像这样创建的OU的人:获取ADOrganizationalUnit -Properties * |选择@ {N =“Owner”; E = {$ _。nTSecurityDescriptor.owner}}您可以在之后添加您的“where”语句以过滤掉您特别需要的管理员。注意:对于大多数AD对象(如果不是全部的话)都是如此。 – Joseph

+1

此外,您可以在Get-ADOrganizationalUnit cmdlet上使用“SearchBase”参数以及“SearchScope”参数。 – Joseph

+0

嘿,感谢您的评论,但这是行不通的:'Get-ADOrganizationalUnit -Filter * |选择@ {N =“所有者”; E = {$ _。nTSecurityDescriptor.owner}}'返回'所有者' –

回答

1

如果您创建了所有的OU,那么您将获得域管理员。当我运行

Get-ADOrganizationalUnit -Filter * -Properties * | Select @{N="Owner";E={$_.nTSecurityDescriptor}} 

我得到附加的图片(截)enter image description here

如果你能确定OU中所有默认的OU后创建的,你可以在WhenCreated过滤与Where语句,像这样:

$DefaultOUCreationDate = Get-ADOrganizationUnit CN=Users,DC=domain,DC=local -Properties * | Select -ExpandProperty WhenCreated 
Get-ADOrganizationalUnit -Filter * -Properties * | Where { $_.WhenCreated -ge $DefaultOUCreationDate } 
+0

这并不能解决我的问题,因为我没有创建所有的OU(大部分都是默认生成的)。微软OU只是由我在上面的图片 –

+0

的图片中创建的,我仍然不知道你的问题是什么。 – Joseph

+0

您是否在问题图片中看到了Microsoft名称?这是我需要了解变量的名称。但是,因为每个公司的名称都可以改变(1DC上的微软,其他DC上的苹果......),我需要适应一种动态的方式。 –