我正在为我的雇主编写一个脚本,该脚本会将我们在Active Directory中的内容与我们使用的其他软件的CSV文件进行比较。 活动目录应与 CSV 文件匹配。 我遇到的问题是$emplyee变量总是为空(null(:
$employee= 获取ADuser -过滤器 {雇员ID -类似"$ID"} -属性 *
$employee变量是 Active Directory 帐户,应将其与 foreach 循环中的当前$user进行比较。使用 VS Code 中的调试器进行故障排除时,我发现 $employee 变量为空,因此脚本无法比较这两个对象。以下是我正在使用的代码:
$users = Import-Csv C:UsersAdministratorDesktopJune18Report_2.csv
foreach ($user in $users) {
$ID = $user.'Employee ID'
$employee = Get-ADUser -Filter {EmployeeID -eq $ID} -Properties *
$lastname = $user.'Last Name'
$samaccountname = $employee.SamAccountName
if ($lastname -ne $employee.surname) {
Write-Host "The last name was changed for $samaccountname" -ForegroundColor Red
get-aduser -Identity $employee.SamAccountName | Set-ADUser -Surname $lastname
} Else {
Write-Host "The last name is correct for $samaccountname" -ForegroundColor Green
}
此问题的任何帮助或提示将不胜感激!
谢谢! - leah_cyberpadawan
看起来问题可能是$employee变量末尾的通配符。
$employee = Get-ADUser -Filter {EmployeeID -eq $ID} -Properties(*(
我有一种感觉,这就是为什么你的变量出现空值。(即,您可能必须定义要查找的属性,因为通配符可能会尝试提取所有属性。
**编辑:或者,您可以尝试在EmployeeID数据搜索周围放置("(,从
$employee = Get-ADUser -filter {EmployeeID -eq $ID} -Properties *
自
$employee = Get-ADUser -filter {'EmployeeID' -eq $ID} -Properties *
希望这有助于引导您朝着正确的方向前进!