Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 为什么我的广告更新脚本中出现错误?_Powershell_Active Directory - Fatal编程技术网

Powershell 为什么我的广告更新脚本中出现错误?

Powershell 为什么我的广告更新脚本中出现错误?,powershell,active-directory,Powershell,Active Directory,我有一个脚本,每周从CSV更新各种广告字段(包括扩展属性)。对于许多帐户,它似乎工作正常,但有些帐户会出现以下错误,并且不会更新: Set-ADUser : replace At C:\ADMaint\ADupdate.ps1:45 char:11 + Set-ADUser <<<< -EmployeeNumber $($user."employeeNumber") -Department $($user."department") -Title $($user."ti

我有一个脚本,每周从CSV更新各种广告字段(包括扩展属性)。对于许多帐户,它似乎工作正常,但有些帐户会出现以下错误,并且不会更新:

Set-ADUser : replace At C:\ADMaint\ADupdate.ps1:45 char:11 + Set-ADUser <<<< -EmployeeNumber $($user."employeeNumber") -Department $($user."department") -Title $($user."title") -Office $($user."physicalDeliveryOfficeName") -StreetAddress $($user."streetAddress") -City $($user."l") -State $($user ."st") -PostalCode $($user."postalCode") -Company $($user."Company") -Officephone $($user."telephoneNumber") -Mobile $( $user."mobile") -Fax $($user."facsimileTelephoneNumber") + CategoryInfo : InvalidOperation: (CN=Name\, Name...C=domain,DC=com:ADUser) [Set-ADUser], ADInvalidOperationException + FullyQualifiedErrorId : replace,Microsoft.ActiveDirectory.Management.Commands.SetADUser
这可能是因为您的CSV中有空字段:这会导致尝试为参数提供空值。如果这是原因,那么我认为您可以通过使用双引号包围子表达式来解决它,这样,如果它们变成空字符串而不是$Null,我想这毕竟是问题所在。我应该把双引号放在哪里才能解决这个问题?
$users = Import-Csv -Path C:\ADMaint\ADUpdate.csv
# Loop through CSV and update users if the exist in CVS file

foreach ($user in $users) {
  #Search in specified OU and Update existing attributes
  Get-ADUser -ErrorAction SilentlyContinue -Filter "employeeID -eq '$($user.employeeID)'" -Properties * -SearchBase "ou=Logins,dc=domain,dc=com" |
    Set-ADUser -EmployeeNumber $($user."employeeNumber") -Department $($user."department") -Title $($user."title") -Office $($user."physicalDeliveryOfficeName") -StreetAddress $($user."streetAddress") -City $($user."l") -State $($user."st") -PostalCode $($user."postalCode") -Company $($user."Company") -Officephone $($user."telephoneNumber") -Mobile $($user."mobile") -Fax $($user."facsimileTelephoneNumber")
  Get-ADUser -ErrorAction SilentlyContinue -Filter "employeeID -eq '$($user.employeeID)'" -Properties * -SearchBase "ou=Logins,dc=domain,dc=com" |
    Set-ADUser -Replace @{ExtensionAttribute1=($user.extensionAttribute1); ExtensionAttribute2=($user.extensionAttribute2); ExtensionAttribute3=($user.extensionAttribute3); ExtensionAttribute4=($user.extensionAttribute4)}
}