如何编写异常细节,以CSV

如何编写异常细节,以CSV

问题描述:

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名称:如何编写异常细节,以CSV

Get-WmiObject : The RPC server is unavailable. (Exception from HRESULT: 0x800706BA) 
At line:3 char:12 
+ $wmiObjs = Get-WmiObject -Class Win32_ComputerSystem -Property Name, ... 
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidOperation: (:) [Get-WmiObject], COMException 
    + FullyQualifiedErrorId : GetWMICOMException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

声音就像你在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 
+0

即使有几种代码样式的PoSh,我会建议在花括号之前放置空格。 – Clijsters