首页 > 解决方案 > Powershell foreach 输出到表格格式/HTML

问题描述

这个简单的 Powershell 脚本(AWS 模块)将输出每个组的策略列表(每个组 1 个或多个策略)。如您所见,我循环遍历 Groups 并可以获得输出。使用“写输出”我可以得到一个文本“报告”,但我不知道如何将输出发送到某个东西,假设是一个变量/哈希表,以便我可以将它发送到 Convertto-HTML 或 CVS

$Groups=(Get-IAmGroupList).GroupName

ForEach ($item in $Groups) {
 (Get-IAMAttachedGroupPolicies -GroupName $item).PolicyName

 }

有任何想法吗?我看过很多地方,但这一切都让我感到困惑,而且我不是一个 powershell 人(这是我试图为自己做的自动化事情。

标签: amazon-web-servicespowershell

解决方案


所以,我想通了(我们将让其他人以另一种形式向我展示。)您需要创建一个新对象并将元素添加到哈希表中。

在我的示例中,创建了一个新的 PSobject,并使用相关对象(包括来自 2 个不同变量的对象)创建了一个哈希表。这确实为每个策略重复了 GroupName(如果有多个),但这很好并且很容易理解。它全部保存到 $GroupPolicies 变量,然后可以发送到“Convertto-HTML”这个代码(我没有写),使用循环的%别名foreach

$GroupPolicies=Get-IAmGroupList  | % {
    $Groups = $_.GroupName

(Get-IAMAttachedGroupPolicies -GroupName $Groups).PolicyName | % {
        $PolicyName = $_

        #Add a new row to the output
        New-Object PSObject -Property @{
            Group = $Groups
            Policies = $policyName
 }

 } 
 }| Select-Object -Property Group, Policies

推荐阅读