Ошибка неверной операции Powershell - PullRequest
0 голосов
/ 24 августа 2018

У меня есть довольно большой скрипт, над которым я работаю, который выполняет несколько вещей, включая обновление некоторых UPNs, подключение к MYSQL, получение данных и затем обновление некоторой информации об учетной записи в активном каталоге, которая не соответствует mysql данные

В моем тестировании одна учетная запись пользователя продолжает выдавать ошибку, см. Ниже (я удалил имя пользователя из ошибки ниже и заменил его на идентификатор пользователя)

Set-ADUser: заменить на C: \ Untitled1.ps1: 93 char: 11 + Set-ADUser $ user.sAMAccountName -Replace @ {l = "$ ($ sqlquery." City ")"; pos ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidOperation: (идентификатор пользователя: ADUser) [Set-ADUser], ADInvalidOperationException + FullyQualifiedErrorId: ActiveDirectoryServer: 0, Microsoft.ActiveDirectory.Management.Commands.SetADUser *

Мой код, где выдается ошибка, приведен ниже. Я предполагаю, что что-то в БД MYSQL вызывает проблему с этой учетной записью, но я хотел знать, был ли это мой код. Опять же, это нижняя половина моего скрипта, верхняя половина устанавливает переменные для подключения mysql, и только одна учетная запись из 10 выдает ошибку.

$sqlquery = Invoke-MySqlQuery -Connection $oConnection  -Query "select * from ActiveDirectoryImport where login='$($USER.SAMACCOUNTNAME)'"

$userproperties = @("City","ST","StreetAddress","postalCode","Company", "Department", "TelephoneNumber", "facsimileTelephoneNumber","Country")

foreach ($property in $userproperties) {
        if ($sqlquery.$userproperties -eq $null -or $user.$userproperties -ne $sqlquery.$userproperties) {
          Set-ADUser $user.sAMAccountName -Replace @{l="$($sqlquery."city")";postalcode="$($sqlquery."zipcode")";St="$($sqlquery."state")";StreetAddress="$($sqlquery."address_1")";Company="$($sqlquery."company_name")";Department="$($sqlquery."department_name")";facsimileTelephoneNumber="$($sqlquery."fax")";telephonenumber="$($sqlquery."phone")"}

1 Ответ

0 голосов
/ 24 августа 2018

понял это. В базе данных mysql для проблемной учетной записи пользователя было нулевое значение. Мы исправили это и скрипт работает.

Похоже, мне придется немного отредактировать свой сценарий.

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