powershell更改AD用户属性

时间:2014-12-03 10:57:44

标签: powershell

我需要搜索AD中的所有用户,找到他们的属性“mail”,并在此属性中将@ hell.com替换为@ heaven.com

我坚持导出并导入到csv ...

Import-Module ActiveDirectory
get-aduser -Filter {samaccountname -like "gmaleev"} -properties * | Select-Object SamAccountName,mail | export-csv -NoTypeInformation d:\1.csv
$impfile = "d:\1.csv"
Import-CSV $impFile
foreach ($user in $users)
{
$sam = $user.samaccountname
$email = $user.mail
write-host "User $sam has mail $mail"
}

它不起作用,为什么?

1 个答案:

答案 0 :(得分:0)

当前问题是您正在运行cmdlet以导入数据但不保存数据。您的ForEach cmdlet没有处理任何数据,因此您应该有空白输出,但Import-CSV除了应该输出到控制台的输出。

导出数据以再次导入数据似乎也是多余的。我会假设您有出口的原因。

Import-Module ActiveDirectory
$impfile = "d:\1.csv"
$results = Get-AdUser -Filter {samaccountname -like "gmaleev"} -properties * | Select-Object SamAccountName,mail 
$results | export-csv -NoTypeInformation d:\1.csv
$results | foreach ($user in $users){
    $sam = $user.samaccountname
    $email = $user.mail
    write-host "User $sam has mail $mail"
}

这应该解决你所展示的内容。它将获得相同的数据并将其保存到变量$results。导出该数据,然后将其传送到ForEach进行处理

您的标题表明您想要更改用户属性。为此,您需要使用Set-Aduser。根据您的环境,这可能不是操纵电子邮件属性的最佳方式。

相关问题