Powershell从CSV文件更新多个用户属性

时间:2017-05-18 14:22:46

标签: powershell

尝试使用带有以下脚本的CSV文件为用户加载属性[Pager],但实际上并没有处理它,不确定可能是什么原因。在我的实验室作为域管理员运行。

Function Update-ADUsers { 
$csvfile = "C:\Powershell\pager\users.csv"
Import-Csv -path $csvfile

ForEach-Object {  
  $sam = $_.'Logon Name' 
{{ Set-ADUser -Identity $sam -Replace @{pager="http://server/users/"+ $sam +".jpg"} }} 
$pager="http://server/users/"+ $sam +".jpg"
Write-Host "$pager"
Write-Host "$sam"
}}

Update-ADUsers

它的简单CSV文件作为以下内容:

Logon Name
mahmoud
ahmed
hussien
ayman
  

最新工作正常

Function Update-ADUsers {
    $csvfile = "C:\Powershell\pager\users.csv" 
    Import-Csv -path $csvfile |
    ForEach-Object {
        $sam = $_.'Name' 
        $pager = "http://server/users/" + $sam + ".jpg"
        Get-ADUser -Filter "sAMAccountName -eq '$sam'" | Set-ADUser -Replace @{pager=$pager}
        Write-Host "$pager"
        Write-Host "$sam" 
    }
}
Update-ADUsers

1 个答案:

答案 0 :(得分:0)

除了不在代码块中发布问题以使其混淆任何其他格式错误之外,您的Set-ADUser调用不必要地用双花括号包裹,并且在奇数位置设置变量。以下是我调整后的内容:

Function Update-ADUsers {
    $csvfile = "C:\Powershell\pager\users.csv" 
    Import-Csv -path $csvfile | ForEach-Object {
        $sam = $_.'Logon Name' 
        $pager = "http://server/users/" + $sam + ".jpg"
        Set-ADUser -Identity $sam -Replace @{pager=$pager}
        Write-Host "$pager"
        Write-Host "$sam" 
    }
}
Update-ADUsers

**顺便说一下,您正在尝试使用-Identity" mahmoud ahmed hussien ayman"?如果是这样,您需要使用SamAccountName,distinguishedName或传入AD User对象。如果这是用户对象的名称,您可以像这样找到它,然后将其输入Set-ADUser来电:

Get-ADUser -Filter "name -eq '$sam'" | Set-ADUser -Replace @{pager=$pager}