Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 获取多个子用户的用户信息_Powershell_Scripting_Active Directory_Powershell 4.0 - Fatal编程技术网

Powershell 获取多个子用户的用户信息

Powershell 获取多个子用户的用户信息,powershell,scripting,active-directory,powershell-4.0,Powershell,Scripting,Active Directory,Powershell 4.0,我有一个可能是也可能不是唯一的问题(但可能不是),我确信这是一个(相对)简单的解决方案。我的组织管理着3个不同地区的几所学校。我正在编写一个PS脚本,通过AD中的所有用户和计算机查找禁用的人和机器并移动它们。问题在于,当我们使用Exchange for Rooms&Technology时,并非所有禁用的帐户都应该被移动,这些帐户都保持禁用状态。我需要做的是使用Get ADUser,只查看每个站点“用户”OU中的帐户。如果我只访问一个站点,我知道如何执行此操作: Get-ADUser -Searc

我有一个可能是也可能不是唯一的问题(但可能不是),我确信这是一个(相对)简单的解决方案。我的组织管理着3个不同地区的几所学校。我正在编写一个PS脚本,通过AD中的所有用户和计算机查找禁用的人和机器并移动它们。问题在于,当我们使用Exchange for Rooms&Technology时,并非所有禁用的帐户都应该被移动,这些帐户都保持禁用状态。我需要做的是使用Get ADUser,只查看每个站点“用户”OU中的帐户。如果我只访问一个站点,我知道如何执行此操作:

Get-ADUser -SearchBase “OU=Users, OU=SiteName, OU=Region, OU=Company,dc=Company,dc=org” | Select Name,SamAccountName
但由于我们有3个以上的多个站点,每个站点都有自己的“用户”OU,我不确定攻击这一点的最佳方式。也许我不应该使用SearchBase


我希望有一种方法可以在Get ADUser语句中使用通配符或其他东西来实现这一点,但我的直觉是使用一个for循环来完成它,该循环以某种方式拉动区域,然后拉动站点,并使其通过,但我不确定这是否正确,或者如何将数据正确地拉入数组。

我有时不得不解决这个问题,并发现对我来说最好的方法是对DN进行过滤

我怀疑您的共享邮箱/资源邮箱和服务帐户也位于其自己的OU中

他们可能有其他的方式,但如果你试图遵循和修改,以符合你的要求

Get-ADUser -Filter 'enabled -eq $false' -Searchbase "OU..." | where {$_.distinguishedname -match "Users"}
您还可以在where
-和$|differentizedName-notmatch“Shared | mailbox | Resource | SVC
中包含这一切都取决于您试图从搜索中过滤出的内容

如果发现,请首先使用上述方法生成用户列表,然后检查此列表,然后将其过滤掉

完成后,您应该将其分配给一个变量,然后对每个用户执行foreach循环