2011-03-24 5 views
6

스크립트에서 Invoke-WmiMethod을 사용하여 문제가 발생하여 일부 컴퓨터에 대해 실행될 때 중단됩니다. 내가하고 싶은 것은 명령을 실행하고 일정한 시간 내에 (예를 들어 60 ~ 120 초) 돌아 오지 않으면 구제 금융을 파일에 기록하는 것입니다. 현재 알고있는 유일한 방법 이렇게하려고하면 -AsJob 매개 변수를 사용하고 있습니다. 그러나 시도 할 때 Invoke-WmiMethod 문이 추가 된 컴퓨터의 경우에도 -AsJob 매개 변수를 추가하지 않은 경우에도 생성 된 작업이 즉시 실패합니다. 다른 WMI 관련 cmdlet은 이러한 문제의 컴퓨터에 대해 작동하므로 승인이 아닌 것 같습니다. 또는 DCOM 문제.시간 초과가있는 명령문을 실행 하시겠습니까?

어쨌든 시도 할 수있는 스크립트의 명령문에 다른 시간 초과를 설정하는 방법이 있습니까?

답변

3

흠이되지 Invoke-WmiMethod 확실히 실패하는 이유 그러나 아마 Invoke-Command는 (I 추측 빠른 해볼만 한 가치) 작동 예 :

$job = Invoke-Command -cn $computers { Invoke-WmiMethod ... } -AsJob 
Wait-Job $job -Timeout 60 

이렇게하면 모든 원격 컴퓨터에서 원격을 사용하도록 설정 한 가정 않으며 그들은 실행되고 있는지 PowerShell 2.0. Vista/Windows 7에서는 관리자 권한 상승 프롬프트에서, XP에서는 관리자 권한으로 실행하십시오.

+0

마침내 'Invoke-WmiMethod' 명령문에 오류가 발생했습니다. - Invoke-WmiMethod : 원격 프로 시저 호출에 실패했습니다. (HRESULT의 예외 : 0x800706BE)'- 그래서 조사해야합니다. 필자는 모든 대상 PC에 PS/WinRM 2.0이 없으므로 필자에게 옵션이 아닙니다 ... –