powershell更改AD用户属性

powershell更改AD用户属性,powershell,Powershell,我需要搜索广告中的所有用户,找到他们的属性邮件,并在该属性中将@hell.com替换为@government.com 我被困在导出和导入到csv Import-Module ActiveDirectory get-aduser -Filter {samaccountname -like "gmaleev"} -properties * | Select-Object SamAccountName,mail | export-csv -NoTypeInformation d:\1.csv $imp

我需要搜索广告中的所有用户,找到他们的属性邮件,并在该属性中将@hell.com替换为@government.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"
}

它不起作用,为什么?

当前的问题是,您正在运行cmdlet来导入数据,但没有保存数据。您的ForEach cmdlet未处理任何数据,因此除了应输出到控制台的导入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。根据您的环境,这可能不是处理电子邮件属性的最佳方式

导入和ForEach未连接您应该在$users中导入CSV$impFile | ForEach$user当前您将数据导入到输出,而ForEach未对其进行处理