Modifiqué este script (https://gallery.technet.microsoft.com/scriptcenter/Create-HTML-Uptime-and-68e6acc0) para afectar a varios servidores, pero no genera un informe incluso si solo uno de los sistemas está inactivo. ¿Cómo modifico el script para continuar con los errores y generar el informe al final? El error es:
Get-WmiObject : The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)
At C:\Users\user\Desktop\CheckDiskSpaceDomain\GetDiskDriveSpaceDomain.ps1:19 char:25
+ $os = Get-WmiObject <<<< -class win32_OperatingSystem -cn $s
+ CategoryInfo : InvalidOperation: (:) [Get-WmiObject], COMException
+ FullyQualifiedErrorId : GetWMICOMException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
You cannot call a method on a null-valued expression.
At C:\Users\user\Desktop\CheckDiskSpaceDomain\GetDiskDriveSpaceDomain.ps1:21 char:51
+ uptime = (get-date) - $os.converttodatetime <<<< ($os.lastbootuptime)}
+ CategoryInfo : InvalidOperation: (converttodatetime:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
Respuesta1
Parece que tienes el problema cuando ejecutas get-wmiObject, después de esa llamada simplemente escribe
-ErrorAction "Resume"
Parece que $OS es en realidad el valor nulo, por lo que es posible que desees hacer algo como esto para saber si $s es nulo y tomar una decisión sobre qué hacer:
if ($OS -ne $null){
$uptime = (get-date) - $os.converttodatetime
}
else {
write-host " OS is null"
}
Para obtener más información sobre el manejo de errores:
Respuesta2
Intente usar -erroraction silenciosamentecontinuar