簡體   English   中英

Powershell 錯誤:來自 HRESULT 的異常:0x800A03EC

[英]Powershell Error: Exception from HRESULT: 0x800A03EC

對此的任何幫助都會很棒。 遇到這個錯誤,我無法弄清楚為什么它無法寫入第 4 行。我嘗試了不同的格式,但仍然繼續拋出錯誤。 我已經在 xls 和 csv 中嘗試過這個。 沒有運氣,再次任何幫助都會非常感謝您!

$path = ".\results.csv"

$objExcel = new-object -comobject excel.application 

if (Test-Path $path) { 
    $objWorkbook = $objExcel.WorkBooks.Open($path) 
    $objWorksheet = $objWorkbook.Worksheets.Item(1) 
} else { 
    $objWorkbook = $objExcel.Workbooks.Add() 
    $objWorksheet = $objWorkbook.Worksheets.Item(1)
}

$objExcel.Visible = $True

#########Add Header#########

$objWorksheet.Cells.Item(1, 1) = "MachineIP"
$objWorksheet.Cells.Item(1, 2) = "Result"
$objWorksheet.Cells.Item(1, 3) = "HostName"
$objWorksheet.Cells.Item(1, 4) = "ServiceTag"

$ipadd = Read-Host "Please enter the IP address ex. 10.0.0. "
75..190 | ForEach-Object {$ipadd + "$_"} | Out-File -FilePath .\machinelist.txt
Start-Sleep -s 3

$machines = gc .\machinelist.txt
$count = $machines.count

$row=2

$machines | foreach-object{
$ping=$null
$hname =$null
$machine = $_
$ping = Test-Connection $machine -Quiet -Count 1 -ea silentlycontinue
if($ping){
    try{
    $hname = [System.Net.Dns]::GetHostByAddress($machine).HostName
    }catch{}
    try{
    $stag = Get-WmiObject -ComputerName $machine Win32_BIOS | Select-Object SerialNumber
    }catch{}
    $objWorksheet.Cells.Item($row,1) = $machine
    $objWorksheet.Cells.Item($row,2) = "UP"
    $objWorksheet.Cells.Item($row,3) = $hname  
    $objWorksheet.Cells.Item($row,4) = $stag              
    $row++

} else {

}
}

Remove-Item -Path .\machinelist.txt -Force

當我運行您的代碼時,我看到兩個問題不斷出現。

  1. RPC 服務器不可用(對於未解析的 IP 地址)
  2. 無法為單元格賦值。

對於 1,我只是添加了-ErrorAction SilentlyContinue ,對於 2,我在 $stag 的值周圍添加了引號。 查看腳本

if($ping){
    try{
    $hname = [System.Net.Dns]::GetHostByAddress($machine).HostName
    }catch{}
    try{
        $stag = Get-WmiObject -ComputerName $machine Win32_BIOS -ErrorAction SilentlyContinue | Select-Object SerialNumber
        $objWorksheet.Cells.Item($row,1) = "$machine"
        $objWorksheet.Cells.Item($row,2) = "UP"
        $objWorksheet.Cells.Item($row,3) = "$hname"
        $objWorksheet.Cells.Item($row,4) = "$stag"
    }
    catch{
        $objWorksheet.Cells.Item($row,1) = "$machine"
        $objWorksheet.Cells.Item($row,2) = "DOWN"
        $objWorksheet.Cells.Item($row,3) = "$hname"  
        $objWorksheet.Cells.Item($row,4) = "$stag"
    }
    $row++
}

如果帖子幫助您找到解決方案,請標記帖子已回答。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM