我正在尝试使用 write-output 命令的输出并使用 Set-ADUser 更改特定 OU 上所有用户的 Descripton 字段。
首先我做的是:
Import-Module ActiveDirectory
$Users = Get-ADUser -SearchBase 'OU="Users",ou="Customer10",OU="Customers",OU="Company",DC=domain,DC=net' -Filter * | Select SamAccountName
Write-Output $users
我可以用哪种方式处理下一个命令来添加描述?
foreach ($usuarios in $users)
在下面的命令之间尝试了 foreach: - 但没有成功。
设置-ADuser-Identity $users-Description“客户 10 - 客户”
似乎无法通过 Identity 来识别 SamAccountName。
答案1
您的Set-ADUsers
命令无法工作,因为它试图使用包含您要搜索的所有用户的 $Users 对象。ForEach 需要一次处理一个用户。我也会删除| Select-Object SamAccountName
,这样您就可以在以后的脚本中使用完整的对象和属性(如果需要)。我会这样做:
Import-Module ActiveDirectory
$Users = Get-ADUser -SearchBase 'OU="Users",ou="Customer10",OU="Customers",OU="Company",DC=domain,DC=net' -Filter *
Write-Output $users
ForEach ($usuarios in $users) {
Set-ADUser -Identity $usuarios.SamAccountName -Description "Customer 10 - Customer"
}