我有一个大约需要 15 分钟才能运行的脚本,它检查了大约 700 个虚拟机的各个方面。这不是问题,但我现在想找到连接了串行端口的设备。这是我添加的一个功能来检查这个:
Function UsbSerialCheck ($vm)
{
$ProbDevices = @()
$devices = $vm.ExtensionData.Config.Hardware.Device
foreach($device in $devices)
{
$devType = $device.GetType().Name
if($devType -eq "VirtualSerialPort")
{
$ProbDevices += $device.DeviceInfo.Label
}
}
$global:USBSerialLookup = [string]::join("/",$ProbDevices)
}
添加此函数会使脚本运行的时间长度增加一个小时,这是不可接受的。是否有可能以更有效的方式做到这一点?我发现的所有方法都是这个的变种。
另外,我知道以上面显示的方式使用全局变量并不理想。我宁愿不这样做;但是,我正在添加到现有脚本中,并使用它们的样式/格式。