【发布时间】:2018-06-27 22:49:51
【问题描述】:
我正在为我的雇主编写一个脚本,它将我们在 Active Directory 中拥有的内容与我们使用的另一个软件中的 CSV 文件进行比较。 Active Directory 应与 CSV 文件匹配。我遇到的问题是 $emplyee 变量总是空的(null):
$employee = Get-ADuser -Filter {EmployeeID -like "$ID"} -properties *
$employee 变量是应该与 foreach 循环中的当前 $user 进行比较的 Active Directory 帐户。在使用 VS Code 中的调试器进行故障排除时,我发现 $employee 变量为空,因此脚本无法比较这两个对象。以下是我正在使用的代码:
$users = Import-Csv C:\Users\Administrator\Desktop\June18Report_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
【问题讨论】:
-
试试
{EmployeeID -like $ID}(无引号)(编辑:刚刚注意到你在脚本块中有它,但在第一行代码中你有引号)
标签: powershell variables null active-directory