Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 使用Get ADUser和Import Csv进行未来扩展,以使用Set ADUser更新用户_Windows_Powershell_Csv - Fatal编程技术网

Windows 使用Get ADUser和Import Csv进行未来扩展,以使用Set ADUser更新用户

Windows 使用Get ADUser和Import Csv进行未来扩展,以使用Set ADUser更新用户,windows,powershell,csv,Windows,Powershell,Csv,在这个项目的最后,我试图使用一个CSV文件来更新广告中的用户个人信息。我计划使用GetAduser管道将ADUser传输到SetAduser 我当前的问题是使用Get ADUser从广告中返回用户记录 我的CSV文件如下 FirstName,LastName,DisplayName,CompanyName,EmailAddress John,Doe,John Doe,Test Company,john.doe@company.com Jane,Doe,Jane Doe,Test Company,

在这个项目的最后,我试图使用一个CSV文件来更新广告中的用户个人信息。我计划使用GetAduser管道将ADUser传输到SetAduser

我当前的问题是使用Get ADUser从广告中返回用户记录

我的CSV文件如下

FirstName,LastName,DisplayName,CompanyName,EmailAddress
John,Doe,John Doe,Test Company,john.doe@company.com
Jane,Doe,Jane Doe,Test Company,jane.doe@company.com
我的PowerShell脚本如下所示

Import-Csv .\Users.csv | ForEach {

Write-Host $_.EmailAddress
Write-Host $_.DisplayName

"`"$($_.EmailAddress)`""

Get-ADUser -Filter { userPrincipalName -eq "`"$($_.EmailAddress)`""}
}
返回的是

john.doe@company.com
John Doe
"john.doe@company.com"
jane.doe@company.com
Jane Doe
"jane.doe@company.com"
在不使用如下变量的情况下运行Get ADUser,会返回用户帐户,而上面的代码不会

Get-ADUser -Filter { userPrincipalName -eq "john.doe@company.com"}

哪里出错了?

美元是cmd let返回的管线或当前对象中当前值的变量。在Get ADUser中使用$时,它将是Get ADUser cmd let返回的对象。只需创建一个变量并在foreach循环中分配$\ EmailAddress,然后将此变量传递给筛选器

Import-Csv .\Users.csv | ForEach {
    $emailAddress = $_.EmailAddress
    Write-Host $_.EmailAddress
    Write-Host $_.DisplayName
    Get-ADUser -Filter { userPrincipalName -eq $emailAddress }
}

我确实在某个阶段尝试过。我再试了一次,但Get ADUser仍然没有返回任何结果。如果执行此操作,会发生什么情况:导入Csv。\Users.Csv | ForEach{$emailAddress=$\ emailAddress Write Host$\ emailAddress Write Host$\显示名称Get ADUser | where对象{$\ userPrincipalName-eq$emailAddress}