我正在编写一个小型 powershell 脚本来生成一些必须生成的基本日志。目前,我被困在记录映射的网络驱动器上:
$colDrives = Get-WmiObject Win32_MappedLogicalDisk -ComputerName localhost
foreach ($objDrive in $colDrives) {
$array += $objDrive.DeviceID + $objDrive.ProviderName
}
此代码适用于已连接的已安装网络驱动器。但我对无法正常工作的映射驱动器更感兴趣。cmd 提示符上的 net use 会显示一个状态列,我也希望以类似的方式实现这一点
Z:\server\path 应为 Z:\server\path (ok|dead)
问候,亚历山德罗
答案1
尝试Test-Path -LiteralPath $objDrive.DeviceID
或Test-Path -LiteralPath $objDrive.ProviderName
。
具有计算属性的示例Select-Object
:
$colDrives = Get-WmiObject Win32_MappedLogicalDisk -ComputerName localhost
foreach ($objDrive in $colDrives) {
$array += $objDrive |
Select-Object DeviceID, ProviderName, @{
Name = 'Online'
Expression = {[bool](Test-Path -LiteralPath $objDrive.DeviceID)}
}
}