我正在尝试输出Skype响应组队列的不同属性以用于文档目的。
我想将Name
,TimeoutThreshold
,TimeoutAction
,Timeouturi
,OverflowThreshold
,OverflowAction
,OverflowCandidate
作为第1行中的.csv
文件头,然后在第2行的各列中输入输出。
我在下面尝试过,但格式化非常糟糕且标题不断重复。请有人帮忙。
还尝试以HTML格式输出,但没有运气。
$p = Get-CsRgsQueue | Where-Object {$_.Name -like "IPL*"} | Select-Object Name
foreach ($Name in $p)
{
$q = Get-CsRgsQueue -Name "$Name"
$N = $q.Name
$TT = $q.TimeoutThreshold
$TA = $q.TimeoutAction.Action
$TAU = $q.TimeoutAction.uri
$OF = $q.OverflowThreshold
$OFA = $q.OverflowAction
$OFC = $q.OverflowCandidate
$out = New-Object PSObject
$out | Add-Member NoteProperty QueueName $N
$out | Add-Member NoteProperty Timeout $TT
$out | Add-Member NoteProperty TimeoutAction $TA
$out | Add-Member NoteProperty TransferURI $TAU
$out | Add-Member NoteProperty OverflowThreshhold $OF
$out | Add-Member NoteProperty OverflowAction $OFA
$out | Add-Member NoteProperty OverflowCandidate $OFC
$out | FT -AutoSize | Export-Csv C:\abc.csv -Append
}
答案 0 :(得分:1)
我在下面尝试过,但格式化真的很糟糕和标题 不断重复。请有人帮忙。
这是因为您通过FT -AutoSize
(Format-Table -AutoSize
)管道对象 - 只有在您要显示/显示数据时才使用Format-*
cmdlet。
您还可以通过仅调用Get-CsRgsQueue
一次,将其传递给ForEach-Object
并最终构建对象属性的哈希表来节省一些时间:
Get-CsRgsQueue | Where-Object {$_.Name -like "IPL*"} | ForEach-Object {
New-object psobject -Property @{
QueueName = $_.Name
Timeout = $_.TimoutThreshold
TimeoutAction = $_.TimeoutAction.Action
TransferURI = $_.TimeoutAction.Uri
OverflowThreshhold = $_.OverflowThreshold
OverflowAction = $_.OverflowAction
OverflowCandidate = $_.OverflowCandicate
}
} |Export-Csv c:\abc.csv -NoTypeInformation
答案 1 :(得分:-2)
Mathias Jessen的简短解决方案
Get-CsRgsQueue | where Name -like "IPL*" | %{
[pscustomobject] @{
QueueName = $_.Name
Timeout = $_.TimoutThreshold
TimeoutAction = $_.TimeoutAction.Action
TransferURI = $_.TimeoutAction.Uri
OverflowThreshhold = $_.OverflowThreshold
OverflowAction = $_.OverflowAction
OverflowCandidate = $_.OverflowCandicate
}
} | Export-Csv C:\result.csv -NoType