Powershell InvalidOperation错误

时间:2018-08-24 12:44:03

标签: mysql powershell scripting active-directory

我有一个很大的脚本正在执行,它正在做一些事情,包括更新一些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")"}

1 个答案:

答案 0 :(得分:0)

弄清楚了。在mysql DB中,问题用户帐户的值为空。我们已更正了该脚本,并且可以正常工作。

看起来我将不得不多编辑一些脚本。