【发布时间】:2021-01-14 13:21:42
【问题描述】:
我想使用下面的脚本对 500 个 VDI 执行磁盘清理,并使用下面的脚本创建一个包含 VDI 状态(在线或离线)和磁盘空间详细信息的正确报告。但是这里我不使用每个循环,因为我想运行清理在 VDI 上并行。如果任何 VDI 处于脱机状态或未启用 winRM,脚本将为该 VDI 抛出错误,我想捕获这些 VDI 并报告它们是否处于脱机状态或任何其他 winrm 错误。我可以获得在线磁盘空间详细信息VDI 但如何在报告中获取脱机或错误 VDI 状态???????
$AllVDI = get-content "list for500 vDI "
$Space= Invoke-Command -ComputerName $AllVDI -ScriptBlock {
Remove-Item -Path "C:\Windows\Temp\*" -Recurse -Force
Get-WmiObject Win32_LogicalDisk -Filter "DeviceID='C:'"
}
$Space|select systemname,drive,freespace|export.csv "C:\report"
【问题讨论】:
-
我认为您正在寻找的是将 powershell 的元素作为作业运行 - ss64.com/ps/start-job.html ,您将创建作业以在多个服务器上调用命令。有关并行运行作业的更多信息 - adamtheautomator.com/powershell-multithreading/…
-
它已经在多台服务器上创建会话,但是当某些服务器无法访问时,它会失败并在 powershell 控制台中抛出错误。我想捕获这些服务器并将它们的状态作为离线打印到我正在提取的报告或任何其他文本文件中。这里我不使用每个循环,因为它需要很长时间
标签: powershell powershell-remoting