我正在使用Powershell显示所有组策略及其链接的内容。这需要GroupPolicy模块(Import-Module GroupPolicy)和以下脚本(信用到Mike Frobbins)完全满足我的需要,但输出显示如下:
“GPOName”, “LinksTo”, “启用”
“默认组策略”,“服务器,计算机,德克萨斯”,“真实,真实,真实”
我需要它看起来像这样:
“GPOName”, “LinksTo”, “启用”
“默认组策略”,“服务器”,“真实”
“默认组策略”,“计算机”,“真实”
“默认组策略”,“德克萨斯”,“真实”
任何帮助将不胜感激。我一直试图让它工作2天,我无法理解。我发现其他文章已经涵盖了这个主题,但解决方案似乎并不适用于这种方法。
function Get-GPOLink {
[CmdletBinding()]
param (
[Parameter(Mandatory,
ValueFromPipeline,
ValueFromPipelineByPropertyName)]
[Alias('DisplayName')]
[string[]]$Name
)
PROCESS {
foreach ($n in $Name) {
$problem = $false
try {
Write-Verbose -Message "Attempting to produce XML report for GPO: $n"
[xml]$report = Get-GPOReport -Name $n -ReportType Xml -ErrorAction Stop
}
catch {
$problem = $true
Write-Warning -Message "An error occured while attempting to query GPO: $n"
}
if (-not($problem)) {
Write-Verbose -Message "Returning results for GPO: $n"
[PSCustomObject]@{
'GPOName' = $report.GPO.Name
'LinksTo' = $report.GPO.LinksTo.SOMPath
'Enabled' = $report.GPO.LinksTo.Enabled
}
}
}
}
}
答案 0 :(得分:0)
您可以将qty
包装在一个循环中,以迭代[PSCustomObject]
的所有实例。
SOMPath
修改:已更新以迭代LinksTo记录,以避免多次启用回复。