得到这个脚本来检查磁盘空间并将其传输到日志中,我想将提示中弹出的错误放入日志中
$equipos = "D:\SCRIPTSM\AAAA\equipos.txt"
$listaEquipos = Get-Content $equipos
$fecha = (Get-Date).ToString('dd.MM.yyyy')
$espaciotxt = foreach ($equipo in $listaEquipos){
Get-WmiObject -Class Win32_LogicalDisk -ComputerName $equipo -Filter "drivetype=3" | Sort-Object -Property DeviceID | Format-Table -Property DeviceID,
@{name='EspacioLIBRE(MB)';expression={$_.Freespace / 1MB -as [int]}},
@{name='TamañoDISCO(GB)';expression={$_.Size / 1GB -as [int]}},
@{name='%Libre';expression={$_.FreeSpace / $_.Size * 100 -as [int]}}
Write-Output "Ip del equipo : $equipo fecha del test: $fecha"
}
$espaciotxt | Out-File C:\Users\AAAAA\Desktop\PRU.txt
这是退出日志,我想在其中放置错误提示。
错误提示:Get-WmiObject : RPC 服务器不可用...
我添加了一个 Try-Catch 循环,并在 Get-WMIObject 命令上将错误首选项设置为“停止”。
不确定您是否想要“错误提示:”或您自己的自定义字符串,因此我将两者都添加到了 catch 语句中。
$Error[0] 是 Powershell 会话中的最后一个错误,它将触发 catch 语句。
$equipos = "D:\SCRIPTSM\AAAA\equipos.txt"
$listaEquipos = Get-Content $equipos
$fecha = (Get-Date).ToString('dd.MM.yyyy')
$espaciotxt = foreach ($equipo in $listaEquipos){
Try{
Get-WmiObject -Class Win32_LogicalDisk -ComputerName $equipo -Filter "drivetype=3" -ErrorAction Stop | Sort-Object -Property DeviceID | Format-Table -Property DeviceID,
@{name='EspacioLIBRE(MB)';expression={$_.Freespace / 1MB -as [int]}},
@{name='TamañoDISCO(GB)';expression={$_.Size / 1GB -as [int]}},
@{name='%Libre';expression={$_.FreeSpace / $_.Size * 100 -as [int]}}
Write-Output "Ip del equipo : $equipo fecha del test: $fecha"
}
catch{
"Error prompt: "+[string]$Error[0].Exception.Message
$Error[0].Exception.Message
Write-Output "Ip del equipo : $equipo fecha del test: $fecha"
}
}
$espaciotxt | Out-File C:\Users\AAAAA\Desktop\PRU.txt