我有一个很大的脚本正在执行,它正在做一些事情,包括更新一些UPNs
,连接到MYSQL
,提取数据以及更新活动目录中的一些帐户信息,与mysql
数据不匹配
在测试中,一个用户帐户不断抛出错误,请参见下文(我从下面的错误中删除了用户名,并将其替换为用户ID)
Set-ADUser:在C:\ Untitled1.ps1:93 char:11处替换 + Set-ADUser $ user.sAMAccountName -Replace @ {l =“ $($ sqlquery。” city“)”; pos ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:InvalidOperation:(userid: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")"}
答案 0 :(得分:0)
弄清楚了。在mysql DB中,问题用户帐户的值为空。我们已更正了该脚本,并且可以正常工作。
看起来我将不得不多编辑一些脚本。