2011-11-10 8 views
2

powershell에서 catch [System.UnauthorizedAccessException]을 사용하여 Access is Denied 오류가 발생합니다. 마찬가지로 RPC Server Unavailable 오류를 어떻게 catch합니까?RPC 서버를 사용할 수 없음 오류 HRESULT : 0x800706BA

+0

나는이 자세한 내용과 오류라고 생각 : '은 Get-WmiObject를을 : RPC 서버를 사용할 수 없습니다. (HRESULT 예외 : 0x800706BA) C : \ Users \ flickerfly \ Documents \ scripts \ Set-LocalServerAdmin.ps1 : 22 char : 33 + $ oldexists = Get-WmiObject <<<< Win32_UserAccount -Filter "Name = '$ olduser ' "-ComputerName $ computerName + CategoryInfo : InvalidOperation :(:) [Get-WmiObject], COMException + FullyQualifiedErrorId : GetWMICOMException, Microsoft.PowerShell.Commands.GetWmiObjectCommand' – flickerfly

답변

2

원하는 예외를 모두 잡을 수 있습니다. 거기에 어떤 예외를 볼 수있는 당신의 캐치 내부

$_.Exception.GetType() 

을하고 그것을 잡을 : 그냥 쓰기.

+0

이것은 종단되지 않는 오류입니다. – flickerfly

4

일반적인 매개 변수 인 -ErrorAction Stop을 내 경우 get-wmiobject 명령에 추가하면이 비 종료 오류에 종료 오류로 응답하고 작업을 잡으려고 명령이 중단됩니다.

다음은이 용도로 사용하는 코드입니다. 나는 아마 잡기에서 더 구체적이어야하지만 지금은 효과가있다.

# Is this machine on network?, if not, move to next machine 
If (!(Test-Connection -ComputerName $computerName -Count 1 -Quiet)) { 
    Write-Host "$computerName not on network." 
    Continue # Move to next computer 
} 

# Does the local Administrator account exist? Returns a string if it exists, which is true-ish. 
try { 

    $filter = "Name='$olduser' AND Domain='$computerName'" 
    $account = Get-WmiObject Win32_UserAccount -Filter $filter -ComputerName $computerName -ErrorAction Stop 

} catch { 

    Write-Warning "$computerName Can't check for accounts, likely RPC server unavailable" 
    Continue # Move to next computer 

} #end try 
+0

$ olduser 변수에 무엇을 기록합니까? Loacl 관리자 사용자 이름? – Bomberlt

+0

이 스크립트는 내가 믿는 관리자 계정의 사용자 이름을 변경하는 것이 었습니다. $ olduser는 다른 사용자 이름으로 변경하려는 사용자 계정의 이름입니다. 따라서 $ olduser는 아마 "Administrator"였을 것입니다. $ account는 "Administrator"계정 개체가있는 경우 해당 계정 개체입니다. 그렇지 않다면, 그것은 사용자 객체를 포함하지 않을 것이고주의를 필요로하지 않을 것입니다. (잠시 있었지만, 그것이 작동하는 방법입니다.) – flickerfly

+1

RPC 서버를 사용할 수 없음 오류가 기본적으로 잡히지 않는 것 같습니다. 따라서 OP의 질문 일 가능성이 있습니다. (또는 * my * issue :) 아마도 -ErrorAction Stop을 내 GWMI가 트릭을 수행합니다. 감사합니다. – Shoeless

관련 문제