首页 > 解决方案 > Powershell - 根据csv用户列表导出用户成员..组

问题描述

尝试导入包含用户列表的 csv 文件并导出包含这些用户 + 他们所属的组的 csv 文件..

我尝试了这个主题的脚本: 导入用户列表 - 导出用户和组列表

但它没有用。

我的用户列表文件(test_alex.csv)示例:

Name                                                                                                                                                                                                 
----                                                                                                                                                                                                 
Alex Alex
Test Test
You Me

这就是我得到的错误:

Get-AdUser : The search filter cannot be recognized At line:2 char:29 + ForEach-Object -pv user { Get-AdUser -filter "displayname -eq '$($_.username)' ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Get-ADUser], ADException + FullyQualifiedErrorId : ActiveDirectoryServer:8254,Microsoft.ActiveDirectory.Management.Commands.GetADUser

标签: windowspowershellcsv

解决方案


也许不是 powershell 专家的最佳解决方案,但它完全符合我的需要。

首先下载此脚本: https ://gallery.technet.microsoft.com/PowerShell-Get-All-Group-167a9ce7#content

然后打开 powershell ISE 并将此脚本与您下载的脚本一起使用。

我的文件名:userlist.csv

$user = "userlist.csv"
$content = Get-Content $user
$content | Foreach {$_.TrimEnd()} | Set-Content $user
C:\temp\TheActualScripts\Multiple_UserGroup_InputFile.ps1 -CSVFile "C:\temp\copy\$user"
Rename-Item -Path "C:\temp\TheActualScripts\ReportFile.txt" -NewName "$user"

然后您将在脚本所在的文件夹中获得名为“ReportFile.txt”的输出文件,对我来说它是:C:\temp\TheActualScripts\ReportFile.txt

脚本的最后一行将文件“ReportFile.txt”的名称更改为“userlist”文件的名称。

重要的

请注意,您正在使用的用户文件中没有空格,因为如果有,脚本将不起作用,它只会给您一个空的“ReportFile.txt”文件。


推荐阅读