我正在嘗試將某些用戶的 SamAccountName 和 EmployeeNumber 從 AD 匯出到 csv。我在 csv 檔案中只有來自 HR 的 EmployeeNumbers,并且必須將它與 AD 中的 SamAccountName 匹配。我的代碼在“if”條件下不起作用。當我回顯輸出時,$a 和 $b 的值都相同,均為 String 型別。此檔案 C:\temp\UsersToDisable.csv 包含列名為“EmployeeNumber”的 4 和 3 數字。這就是我想出的:
Import-Module ActiveDirectory
$Nums = Import-Csv "C:\powershell\EmployeeNumbers.csv"
$Users = Get-ADUser -Filter "*" -Property EmployeeNumber -SearchBase
"DC=my,DC=example,DC=com" | Where { $_.EmployeeNumber -ne $null } |
Select SamAccountName,EmployeeNumber
Foreach ($user in $Users)
{
$EmployeeNumber = $user.EmployeeNumber
foreach ($Line in $Nums)
{
$number = $line.EmployeeNumber
$a = $number.toString()
$b = $EmployeeNumber.toString()
echo $a $b
if($a -eq $b)
{
echo $user.SamAccountName
$result = ,(Get-ADUser $user.SamAccountName -Properties * | Select SamAccountName,employeeNumber)
}
}
} $result | Export-CSV "C:\temp\CCI_All_Users.csv" -NoTypeInformation
感謝您的任何建議!
uj5u.com熱心網友回復:
從目錄中加載所有用戶然后再次搜索目錄中的同一用戶并不是出于性能原因的理想解決方案。
試試下面的代碼。對于輸入檔案中的每個數字,在目錄中搜索具有當前 EmployeeNumber 的用戶,請求加載 EmployeeNumber 屬性。然后僅選擇所需的屬性并將它們匯出為 CSV。
Import-Module ActiveDirectory
$Nums = Import-Csv "C:\powershell\EmployeeNumbers.csv"
$Nums | ForEach-Object {
Get-ADUser -LdapFilter "(EmployeeNumber=$_)" -Property EmployeeNumber -SearchBase "DC=my,DC=example,DC=com" |
Select-Object SamAccountName, EmployeeNumber
} | Export-CSV "C:\temp\CCI_All_Users.csv"
uj5u.com熱心網友回復:
Hazrelle有用答案的替代方法,非常相似,但不是回圈遍歷 CSV 的每一行,而是LDAPFilter在一些字串操作的幫助下利用這些功能:
# This assumes there is a column named "EmployeeNumber" in the CSV
$Nums = (Import-Csv "C:\powershell\EmployeeNumbers.csv").EmployeeNumber
# Assuming Nums is an Array with Employee Numbers. i.e.:
# $Nums => A123,A456,A789
# $filter would look like this:
# (|(employeenumber=A123)(employeenumber=A456)(employeenumber=A789))
$filter = [string]::Format(
'(|(employeenumber={0}))',
($Nums -join ')(employeenumber=')
)
$params = @{
Properties = 'EmployeeNumber'
SearchBase = 'DC=my,DC=example,DC=com'
LDAPFilter = $filter
}
Get-ADUser @params | Select-Object samAccountName, EmployeeNumber |
Export-CSV "C:\temp\CCI_All_Users.csv" -NoTypeInformation
提的是,價值$result = ,(Get...是不推薦使用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/389713.html
