Пустая (нулевая) переменная PowerShell - PullRequest
0 голосов
/ 27 июня 2018

Я работаю над сценарием для моего работодателя, который будет сравнивать то, что у нас есть в Active Directory, с файлом CSV из другого программного обеспечения, которое мы используем. Active Directory должна соответствовать файлу CSV. Проблема, с которой я сталкиваюсь, заключается в том, что переменная $ emplyee всегда отображается пустой (null):

$ employee = Get-ADuser -Filter {EmployeeID-like "$ ID"} -properties *

Переменная $ employee - это учетная запись Active Directory, которую следует сравнить с текущим $ user в цикле foreach. При устранении неполадок с помощью отладчика из кода VS я обнаружил, что переменная $ 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

1 Ответ

0 голосов
/ 27 июня 2018

Похоже, что проблема может быть подстановочным знаком в конце переменной $ 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 *

Надеюсь, это поможет вам в правильном направлении!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...