powershell - 如何以逗号分隔的 csv 文件导出这些结果
问题描述
我正在尝试确定是否有办法切换下面的内容并将其导出为逗号分隔的 csv 文件。
该脚本工作正常并返回我关心的数据,只是不是可用的格式。
该脚本获取特定组中的用户并遍历用户列表,为每个用户提取附加信息。我对 powershell 不熟悉,因此由于缺乏知识,我可能会使这变得比必要的更难。
Import-module activedirectory
Function Process-Members($MemberList)
{
foreach ($member in $MemberList)
{
Get-ADUser -Identity $member.samaccountname -Properties * | select Name, SamAccountName, Enabled, @{Name='LastLogon';Expression={[DateTime]::FromFileTime($_.LastLogon)}}
dsquery user -samid $member.samaccountname | dsget user -memberof | dsget group -samid
}
}
$members = Get-ADGroupMember "MyGroupName" -recursive | Select-Object name, SamAccountName
Process-Members $members
解决方案
我删除了您的功能,因为此过程并非完全必要。您可以轻松修改它以再次使用您的功能。我还删除了 dsquery 和 dsget 命令,因为 ActiveDirectory 模块具有可以获取此信息的命令。
$members = Get-ADGroupMember "MyGroupName" -recursive | Select-Object name, SamAccountName
$Output = foreach ($member in $members) {
Get-ADUser -Identity $member.SamAccountName -Properties * |
select Name, SamAccountName, Enabled,
@{Name='LastLogon';Expression={[DateTime]::FromFileTime($_.LastLogon)}},
@{n='MemberOf';e={($_.MemberOf |% {Get-ADGroup $_}).SamAccountName -join "; "}}
}
$Output | Export-Csv -Path output.csv -NoTypeInformation
选定的MemberOf
属性是通过SamAccountName
从Get-ADGroup
输出中返回属性并将结果与 连接在一起来计算的;
。您可以更改该连接字符。默认情况下,离开连接,将加入带有空格的组,因此如果组包含空格,它可能会变得混乱。%
只是 的别名ForEach-Object
。
Export-Csv
用于创建逗号分隔的 CSV 输出文件 (output.csv)。
对于所有版本的 PowerShell(2.0 及更高版本),您可以使用以下内容:
$members = Get-ADGroupMember "MyGroupName" -recursive | Select-Object name, SamAccountName
$Output = foreach ($member in $members) {
Get-ADUser -Identity $member.SamAccountName -Properties * |
select Name, SamAccountName, Enabled,
@{Name='LastLogon';Expression={[DateTime]::FromFileTime($_.LastLogon)}},
@{n='MemberOf';e={($_.MemberOf |% {Get-ADGroup $_ | Select -Expand SamAccountName}) -join "; "}}
}
$Output | Export-Csv -Path output.csv -NoTypeInformation
推荐阅读
- ssl - CloudFlare 工作人员获取 HTTPS 适用于workers.dev 子域,但不适用于自己的子域,出现 525 错误
- discord.py - Discord.py AttributeError:“命令”对象没有属性“冷却”
- java - 集合可以作为 org.quartz.JobDataMap 内部的参数传递吗?
- html - 文本对齐问题 - H4 内容显示在图像右侧
- amazon-web-services - 找不到数据库驱动程序:用于 RDS postgres 连接-Liquibase 的 org.postgresql.Driver
- c# - 如何使用复选框将 datagridview 导出到 Excel
- python - ISSUE ON NOT NULL 约束失败:accounts_user.course_id
- node.js - Sequelize hasMany 关联不起作用
- wpf - Appium 找不到折叠的元素
- ros - rosbag play(和 rqt_bag)和 rosbag.Bag 的 read_messages() 使用的时间戳不同