命令
Write-Host "`r`nSource Hosts" -BackgroundColor Green
$myEvents | Group-Object Host -NoElement | Sort-Object Count -Descending
Write-Host "`r`n`r`nAccounts" -BackgroundColor Green
$myEvents | Group-Object User -NoElement | sort-object Count -Descending
在传递漂亮的PSObject数组时创建漂亮的列表输出
整个脚本很短:
(Get-Date)
$Events= Get-WinEvent -ComputerName MYDC -FilterHashtable @{Logname='Security';id=4740;StartTime=(Get-Date).AddMinutes(-30)}
$TargetEvents=@()
function OutputEvents($myEvents) {
Write-Host "`r`nSource Hosts" -BackgroundColor Green
$myEvents | Group-Object Host -NoElement | Sort-Object Count -Descending
Write-Host "`r`n`r`nAccounts" -BackgroundColor Green
$myEvents | Group-Object User -NoElement | sort-object Count -Descending
}
foreach ($Event in $Events)
{
$obj=[PSCustomObject]@{
Host=$Event.Properties[1].value.ToString()
User=$Event.Properties[0].value.ToString()
}
$TargetEvents+=$obj
}
(Get-Date)
OutputEvents $TargetEvents
问题在于,当它在这种情况下运行时,我最终会得到
Source Hosts
Values : {HOSTNAME}
Count : 5
Group : {}
Name : HOSTNAME
...etc
Accounts
Values : {Username}
Count : 5
Group : {}
Name : Username
...etc
但是在代码运行之后,我可以复制并粘贴输出行并获取:
Source Hosts
Count Name
----- ----
5 APSPRW7082
...etc
Accounts
5 SVOL.EM
...etc
两种完全不同的格式
我不明白为什么,坦率地说,我希望它停止。
答案 0 :(得分:1)
该脚本隐式地通过格式表运行。通过get-date输出另一组属性,powershell尝试以不同的方式处理输出。
答案 1 :(得分:0)
事实证明,确保格式正确运行的方法是采用输出行:
const decodedToken = jwt.decode(token, {complete: true}) as { [key: string]: any };
并将其转换为:
$myEvents | Group-Object Host -NoElement | Sort-Object Count -Descending
因此,请确保输出采用表格格式,并且不要让PS对我做出某些特别的“有用”决定。