簡體   English   中英

使用PowerShell如何像使用Get-ADUser一樣搜索和篩選一系列導出的Active Directory用戶?

[英]Using PowerShell how can I search and filter an array of exported Active Directory users like I can with Get-ADUser?

我有一個PowerShell腳本,用於將CSV文件的內容與Active Directory進行比較。 CSV文件包含AD中已有人員的人口統計信息列表。 列之一是“ emplid”。 此字段中的值對應於AD中用戶對象的“ employeeID”屬性的值。 因此,我目前使用此“ emplid”屬性來交叉引用AD並找到相應的用戶帳戶。 為此,我使用類似於以下內容的行:

$UserAccounts = $ListOfEmloyeeIDs | ForEach-Object {Get-ADUser -Properties * -Filter {employeeID -Eq $_}}

然后,我將其用於將這些用戶帳戶添加到安全組中:

$UserAccounts.SamAccountName | ForEach-Object {Add-ADGroupMember -Identity SpecialSecurityGroup -Members $_}

問題出在第一行。 有數千個用戶帳戶,腳本可能需要幾個小時才能運行。 這也導致了廣告管理員的投訴。 我要執行的操作是使用以下命令將所有活動AD用戶加載到變量中(運行時間不到2分鍾):

$ADPeopleActive = Get-ADUser -SearchBase "OU=People,DC=MyAD,DC=com" -Properties EmployeeID -Filter {Enabled -Eq $True}

然后,我想對此數組進行交叉引用,並構建一個SamAccountNames列表,以饋入類似於第二行的內容,以填充我的安全組。

我的問題是我想不出一種方法,可以對使用我使用Get-ADuser與AD進行交叉引用的方式構建的數組進行交叉引用。 有人可以幫忙嗎?

就像是

$UserAccounts = $ADPeopleActive| Where-Object { $ListOfEmloyeeIDs -contains $_.EmployeeID }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM