У меня есть довольно большой скрипт, над которым я работаю, который выполняет несколько вещей, включая обновление некоторых 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")"}