powershell - Powershell脚本拉AD用户组成员资格,但CSV格式一团糟
问题描述
我正在尝试创建一个 csv 文件,其中包含从用户名列表到 CSV 文件的用户名和组成员身份。
但是 CSV 文件的格式如下
******;"CN=Cal_ACABLHolidayCalendar_Editor
1 个单元格中的用户名和组
$list = Get-Content c:\Tools\Powershell\ACA\userlist.txt
$list | `
%{
$user = $_;
get-aduser $user -Properties memberof | `
select -expand memberof | `
%{new-object PSObject -property @{User=$user;Group=$_;}} `
} |
export-csv –Path "C:\Tools\Powershell\ADUsers.csv" -Delimiter ‘;’ –NoTypeInformation -Encoding UTF8
如何将格式设置为带有用户名的第一个单元格和带有组的以下单元格
解决方案
Export-CSV
是实现所需解决方案的错误方法。
你应该更好地使用这样的东西:
$excelfile = "C:\Daten\test.xlsx"
###Excel Parameter###
$excel = New-Object -COM "Excel.Application"
$excel.displayalerts = $false
$excel.visible = $false
$excel.usercontrol = $false
$Workbook=$excel.Workbooks.open($excelfile)
$Worksheet=$Workbook.Worksheets.Item(1)
$Worksheet.Activate() | Out-null
$x = 1
$y = 1
$list = get-content c:\daten\list.txt
foreach ($user in $list){
$groups = (get-aduser $user -Properties memberof | select -expand memberof | %{new-object PSObject -property @{User=$user;Group=$_;}} | select -ExpandProperty Group)
$z = $groups.count
$excel.cells.item($y,$x) = $user
for ($i = 2; $i -le $groups.count+1; $i++)
{
$excel.cells.item($i,$x) = $groups[$i]
}
$x=$x+1
}
$Workbook.Save()
$Workbook.Close()
get-process *excel* | kill -Force
它不是 100% 正确的。用户名的计数器有问题。第一个用户工作得很好。
推荐阅读
- javascript - 如何解决在节点应用程序中禁用的 body-parser 模块?
- python - 我如何使用 python 3.8 下载 tensorflow
- python - 谁能帮我理解,下面的代码是如何工作的?
- python - 通过 Python 拆分命令行输出
- reactjs - React 和 .Net Core Web API:Axios API 显示状态“待定”。无法获得想要的数据
- powershell - 保存 Office 365 邮箱中的电子邮件附件
- php - :SQLSTATE [HY000]:一般错误:1364 字段
- flutter - 如何在颤振中使用 googleapis 包将视频上传到 YouTube?
- bash - 使用 crontab 备份 Git Repo 的 Shell 脚本
- reactjs - 如何在 react-firestore 中使用 LIKE?