【问题标题】:How to write exception details to csv如何将异常详细信息写入 csv
【发布时间】:2017-03-03 16:39:48
【问题描述】:
Import-Module ActiveDirectory
$computers = Get-ADComputer -Filter * -SearchBase "OU=workstations,DC=company,DC=org" |
             Select-Object -Expand Name 
$wmiObjs = Get-WmiObject -Class Win32_ComputerSystem -Property Name, Model -ComputerName $computers |
           select Name, Model |
           Export-Csv c:\temp\workstations-models.csv

我收到类似下面的错误,我也希望将其放入 CSV 文件中,而 txt 则显示为 PC 名称:

Get-WmiObject : RPC 服务器不可用。 (来自 HRESULT 的异常:0x800706BA)
在行:3 字符:12
+ $wmiObjs = Get-WmiObject -Class Win32_ComputerSystem -属性名称,...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~
    + CategoryInfo : InvalidOperation: (:) [Get-WmiObject], COMException
    + FullyQualifiedErrorId : GetWMICOMException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

【问题讨论】:

    标签: powershell wmi export-to-csv


    【解决方案1】:

    听起来您需要在ForEach 循环中使用Try/Catch。我认为这样的事情应该为你做:

    Import-Module ActiveDirectory
    $computers = Get-ADComputer -Filter * -SearchBase "OU=workstations,DC=company,DC=org" |
                 Select-Object -Expand Name 
    $wmiobjects = ForEach($Computer in $Computers){
        Try{
            Get-WmiObject -Class Win32_ComputerSystem -Property Name, Model -ErrorAction Stop -ComputerName $Computer |
                select Name, Model
        }Catch{
            [PSCustomObject]@{'Name'=$Computer;'Model'='Offline'}
        }
    }
    
    $wmiobjects | Export-Csv c:\temp\workstations-models.csv -NoTypeInformation
    

    【讨论】:

    • 即使 PoSh 有多种代码样式,我还是建议在花括号前放置空格。
    猜你喜欢
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多