这里的第一次海报。
我创建了一个在AWS中输出组成员资格的小脚本。
我已经得到了脚本,它输出了所需的结果,但我需要帮助将数据以可读格式输入到csv文件中。
$awsgroupnames = Get-IAMGroups
$accountname = Get-IAMAccountAlias
foreach ($awsgroupname in $awsgroupnames) {
$groupuser = Get-IAMGroup -groupname ($awsgroupname.GroupName)
$usernames = $groupuser.users | select UserName
write-host $accountname ($awsgroupname.groupname) ($usernames.username)
}
输出看起来像这样。
Account Alias - Group - User
aws-dxxxd-mxxer axx-admin xxhie sxxwj bhxxwk hxxv rxxerd cxxx axxw-sf-msdsmt
aws-dxxxd-mxxer aws-casesupport
aws-dxxxd-mxxer aws-readonly gixxxi mxxxxilj kxxng bxxnst txxxgd rxm kxxxrs
aws-dxxxd-mxxer billing-admin bsdffdk crcccdi
aws-dxxxd-mxxer Billing_Access
aws-dxxxd-mxxer vdc-axxxs mxxxab rxxxd cxxxmi aws-srxxxc-mxxt
aws-dxxxd-mxxer vpc-axxxn mxxxab mxxxj mxxxnr
如何以下列格式将其导出到csv?
Account Alias - Group1 - User1
Account Alias - Group1 - User2
Account Alias - Group1 - User3
Account Alias - Group2 - User1
Account Alias - Group2 - User2
Account Alias - Group3 - User1
Account Alias - Group4 - Blank for no user
等等。
答案 0 :(得分:0)
这是PowerShell v3.0 +的另一种解决方案,它以一种简化CSV提取的方式对数据进行分组。
代码:
$alias = Get-IAMAccountAlias
Get-IAMGroups | % {
$group = $_;
(Get-IAMGroup -groupname $_.GroupName).Users | % {
[pscustomobject]@{
Alias = $alias;
GroupName = $group.groupname;
UserName = $_.UserName
}
}
} | ConvertTo-Csv -NoTypeInformation > mycsv.csv
示例输出:
"Alias","GroupName","UserName"
"myacct","admins","myuser1"
"myacct","admins","myuser2"
"myacct","users","myuser3"
这个脚本:
ConvertTo-CSV
,并设置-NoTypeInformation
以获取CSV格式的内容。请注意,如果要更改分隔符,可以指定-Delimiter
标记。mycsv.csv
以将文件写入文件系统您尝试的快速说明可能会给您带来麻烦:远离使用Write-Host
输出终端以外的数据; Write-Host
不会写入输出流。这是一个很好的blog post关于这个主题的进一步阅读。