首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cleanup PowerShell命令

Cleanup PowerShell命令
EN

Stack Overflow用户
提问于 2018-02-28 02:25:56
回答 1查看 119关注 0票数 0

我一直在尝试重新格式化这个命令,使其更简洁,但我似乎就是绕不开写输出。

代码语言:javascript
复制
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时的格式不会将数据放入列中。你有什么建议可以让这个脚本看起来更整洁?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-28 07:28:05

按照注释中的建议,正确的做法是使用Export-Csv生成CSV文件。至于创建您想要导出的对象并使其易于在代码中读取,您可以做一些与您已有的类似的操作,并使用它创建一个自定义对象,然后将该对象通过管道传输到Export-Csv。另外,我认为你的整个.Replace("CN=","").Replace("cn=","").Replace("\","").Replace(",","").Replace("OU","").Split('=')[0]都可以简化为.Split('=,')[1]。字符串的.Split()方法接受多个要拆分的字符,并且它将拆分所提供的任何字符。这是我的建议,你需要在最后更新路径,如果我的路径对你不起作用,你可能不得不恢复到更长的.Replace位。

代码语言:javascript
复制
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语句,但我认为这对您来说更简洁。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49015514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档