Powershell 在AD中更新具有不同描述的用户

Powershell 在AD中更新具有不同描述的用户,powershell,Powershell,我有一个带有几个用户的.csv文件,每个用户都有不同的描述。我正在尝试创建一个脚本,用.csv文件中的内容更新用户描述。我已经搜索过了,但找不到一个脚本,它可以完成我需要它做的事情。有人能看一下我的剧本吗?我错在: 表达式或语句中出现意外标记“in”。第6行字符:35 表达式或语句中出现意外标记“in”。第6行字符:38 ipmo ac* $file = c:\user_file.csv $user = $_.samaccountname $desc = $_.description Impo

我有一个带有几个用户的.csv文件,每个用户都有不同的描述。我正在尝试创建一个脚本,用.csv文件中的内容更新用户描述。我已经搜索过了,但找不到一个脚本,它可以完成我需要它做的事情。有人能看一下我的剧本吗?我错在: 表达式或语句中出现意外标记“in”。第6行字符:35 表达式或语句中出现意外标记“in”。第6行字符:38

ipmo ac*
$file = c:\user_file.csv
$user = $_.samaccountname
$desc = $_.description

Import-csv $file | Foreach ($user in $file) {
@(Set-aduser -identity $($file.user) -description $($file.desc))
}

如果有任何帮助,我将不胜感激,因为我已经试着做了一周了,而且我确信这很简单。

我会做类似的事情

ipmo ac*
$file = "c:\user_file.csv"
Import-csv $file | ForEach-Object{
    Set-aduser -identity $_.samaccountname -description $_.description
}
这是假设您的CSV包含名为
samaccountname
description
的列

不确定您试图对
$user
$desc
执行什么操作,因此这些都被省略了。猜测它们实际上是空的,因为
$\ucode>要在管道中使用


您使用的
ForEach
并不意味着具有管道输入。你拥有它的方式通常是独立的。因此,我们将其切换到允许管道输入的
ForEach对象
版本

它应该是
Set aduser-identity$user.samaccountname-description$user.description
假设samaccountname和description是该文件中的列名。不确定您试图对
$user
$desc
执行什么操作。它们本来是空的。此外,您正在错误地使用foreach
。收到错误:Set-ADUser:在“DC=test,DC=net”下找不到标识为“”的对象。在第4行,char:15+Set aduser@priara,我想知道你们CSV的前3行现在是什么样子。。。哦,你有。你能把它添加到你的问题中吗?它看起来是这样的:SamAccountName,Description user1,“alumbers,1234567”user2,“alumbers,2345678”user3,“alumbers,3456789”我在你的CSV中的第一个猜测有一个错误。看起来像是
$\SamAccountName
为空。不知道列标题或数据是否有空格或其他您看不到的内容。代码应该按原样工作。尝试创建另一个CSV示例。或者只需检查
导入csv$文件
是否正常工作。非常感谢!标题中“Description”一词后有空格。我刚刚对5个测试用户运行了这个脚本,它成功了。啊。。。我花了一个多星期的时间研究和重写剧本,但都没有用。再次感谢大家!!!