【发布时间】:2016-02-23 20:21:38
【问题描述】:
我已将计算机名称列表从 csv 导入到变量中。
现在我想测试列表中每个计算机名称上是否存在路径
想要的输出:
Computer Status
-------- ------
computer1 Online
computer2 Offline
下面会将答案注册为假。然而,这是针对 3 台机器的一个答案。当我测试$userscomputer 变量时,它确实包含computernames 的列表,其中一些是在线的。
看起来我需要对变量中的每台机器运行,但到目前为止我还没有成功。感谢阅读。
$name = "vader"
$usersComputer = import-csv .....etc.
$path = "\\$userscomputer\c$\users\$name"
$componline = test-path $path
$componline
csv 文件有 2 列 主机名下的“主机名”“登录用户”计算机名称和登录用户下的广告名称 电脑1双卡 电脑2双卡 电脑3维德
理想情况下,我想显示哪台计算机在线,我的想法如下
$usersComputer | ForEach-Object {
$cn = $_."Host Name"
$path = "\\$cn\c$\users\$name"
$state = Test-Path $path
write-host $cn, $state
}
它在下面输出,但是计算机 3 应该报告为真,因为 $cn 变量没有显示。
失败 失败的 失败
我已经重新调整了您的解决方案,现在效果很好。 CSV 文件的导入已经完成,因此变量具有计算机名称。在下面工作之后。
$usersComputer | ForEach-Object {
$cn = $_
$comp = Test-Path \\$cn\c$\users\$username
[PSCustomObject]@{
Computer = $cn
Status = if ($componline) { 'Online' } else { 'Offline' }
}
}
【问题讨论】: