从 CSV 导入数据到 AD 的问题

问题描述 投票:0回答:1

我在使用 PowerShell 脚本将基于电子邮件地址的 CSV 文件中的电话号码导入到 Active Directory 时遇到问题。 该表包含:

mail;telephoneNumber
[email protected];88888888
[email protected];99999999

这是我正在运行的代码,但它向我显示了一条错误消息,或者我不明白为什么会出现此消息:

Import-module ActiveDirectory 
Import-CSV E: scripts list.csv | 
     ForEach-Object {
         Write-Host "telephoneNumber $($_.telephoneNumber)"
         Get-ADUser -Filter "mail -like '$($_.mail)'" | 
     Set-ADUser -telephoneNumber $_. telephoneNumber}

这是错误消息:

telephoneNumber
Set-ADUser: Unable to find a parameter corresponding to the name «telephoneNumber».
Character E: scripts employeeid.ps1:6: 14
+   Set-ADUser -telephoneNumber $_. telephoneNumber}
+                 ~~~~~~~~~~~~~~~~
    + CategoryInfo   : InvalidArgument: (:) [Set-ADUser], ParameterBindingException
    + FullyQualifiedErrorId: NamedParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.SetADUser

注意:我是该学科的初学者

提前感谢您的帮助


我也尝试了这段代码,但仍然是同样的问题。

Import-module ActiveDirectory 
             
Import-CSV "E:\scripts\liste.csv" | % { 

$telephoneNumber = $_.telephoneNumber 

$mail= $ail_.m
Set-ADUser $telephoneNumber -mail $mail

}
powershell csv active-directory
1个回答
0
投票

LDAP 属性

telephoneNumber
在 PowerShell 中称为
OfficePhone
,LDAP 属性
mail
有一个名为
EmailAddress
的 PowerShell 等效项。
Cmdlet
Set-ADUser
没有名为
telephoneNumber
的参数,但它确实
OfficePhone
,因此重写您的代码将是

Import-Module ActiveDirectory 
Import-Csv -Path 'E:\scripts\list.csv' | ForEach-Object {
    $user = Get-ADUser -Filter "mail -eq '$($_.mail)'" # or use PS equivalent 'EmailAddress'
    if ($user) { 
        Write-Host "Setting telephoneNumber $($_.telephoneNumber) for $($user.Name)"
        $user | Set-ADUser -OfficePhone $_.telephoneNumber

        # if you do want to use LDAP property telephoneNumber, you can use below
        # $user | Set-ADUser -replace @{telephoneNumber = $($_.telephoneNumber)}
    }
    else {
        Write-Warning "Could not find user with EmailAddress $($_.mail)"
    }
}

附注您发帖时犯了一些错别字:

  • E: scripts list.csv
    缺少反斜杠
  • $_. telephoneNumber
    点和属性名称之间有一个空格
© www.soinside.com 2019 - 2024. All rights reserved.