0

このコマンドをよりクリーンにすることで再フォーマットしようとしていますが、書き込み出力を回避できないようです。

Get-QARSOperation -ParentContainer 'somedomain.com/OU1/OU2' -TargetObjectType 'user' |
  Where-Object {$_.Status -eq 'Completed' -and $_.Controls.ID -eq 'OperationReason'} |
  ForEach-Object {Get-QARSApprovalTask -Operation $_.ID} |
  ForEach-Object {
    Write-OutPut ("Target: " + $_.Operation.TargetObjectInfo.DN.Replace("CN=","").Replace("cn=","").Replace("\","").Replace(",","").Replace("OU","").Split('=')[0]);
    Write-OutPut ("Operation ID: "+ $_.Operation.ID);
    Write-OutPut ("Approver: " + $_.CompletedBy.DN.Replace("CN=","").Replace("\","").Replace(",","").Replace("OU","").Split('=')[0]);
    Write-OutPut ("StartedOn: " + $_.Created);
    Write-OutPut ("Completed: " + $_.Completed);
    Write-OutPut ("Comments: " + $_.CompletionReason);
    Write-OutPut ("Operation Type: " + $_.Operation.Type);
    Write-OutPut "" 
  }

また、csv にエクスポートするときの形式では、データが列に入れられません。このスクリプトの見栄えを良くするために、どのような提案が必要ですか?

ありがとうございました!

4

1 に答える 1

1

コメントで示唆されているように、正しいことはExport-Csv、CSV ファイルの生成に使用することです。エクスポートしたいオブジェクトを作成し、コードを読みやすくすることに関しては、あなたが持っているものと同様のことを行い、それを使用してパイプできるカスタムオブジェクトを作成できますExport-Csv. .Replace("CN=","").Replace("cn=","").Replace("\","").Replace(",","").Replace("OU","").Split('=')[0]また、全体を に簡略化できると思います.Split('=,')[1]。文字列の.Split()メソッドは分割する複数の文字を受け入れ、指定された文字のいずれかで分割されます。これが私が提案するものです。最後にパスを更新する必要があり、私のものが.Replaceうまくいかない場合は、より長いビットに戻す必要があるかもしれません.

Get-QARSOperation -ParentContainer 'somedomain.com/OU1/OU2' -TargetObjectType 'user' |
    Where-Object {$_.Status -eq 'Completed' -and $_.Controls.ID -eq 'OperationReason'} |
    ForEach-Object {Get-QARSApprovalTask -Operation $_.ID} |
    ForEach-Object {
        [PSCustomObject][Ordered]@{
            "Target" = $_.Operation.TargetObjectInfo.DN.Split('=,')[1]
            "Operation ID" = $_.Operation.ID
            "Approver" = $_.CompletedBy.DN.Split('=,')[1]
            "StartedOn" = $_.Created
            "Completed" = $_.Completed
            "Comments" = $_.CompletionReason
            "Operation Type" = $_.Operation.Type
        }
    } |
    Export-Csv C:\Path\To\File.csv -NoTypeInformation

ステートメントを使用することもできますが、Selectこれはあなたにとってよりきれいに見えると思います。

于 2018-02-27T23:28:05.217 に答える