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

Powershell从CSV文件更新多用户属性,powershell,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 @

正在尝试为使用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
最近一次工作罚款


除了不在代码块中发布问题以混淆任何其他格式错误之外,您的
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、DifferentizedName或传入AD用户对象。如果这是用户对象的名称,您可以像这样找到它,然后将其导入
Set ADUser
调用:

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

行的末尾缺少一个竖条/管道符号
|
导入Csv-路径$csvfile
ForEach需要迭代。是的,尝试使用sAMAccountName,但我猜从Csv文件读取时出现问题,显示以下错误。[获取ADUser:无法在第7行识别搜索筛选器char:9+获取ADUser-筛选器“sAMAccountName-eq'$sam'”|设置ADUser-Replace@{p…]@LotPings是的,它解决了我的问题,thnx alot:)很抱歉给我带来的不便。thnx伙计们需要帮助。ahhh@LotPings--看到了这一点,完全专注于格式,然后错过了更新…干杯!@mostafa--如果可能的话,请在发布问题时将代码格式化为代码块,这样更容易理解d;-)…更新了我的答案,以包括
Import Csv
ForEach对象之间的管道
Get-ADUser -Filter "name -eq '$sam'" | Set-ADUser -Replace @{pager=$pager}