针对变量内容的 Powershell 测试路径
Powershell test-path against variable contents
我已将计算机名称列表从 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 列
"Host Name " "Logged User" 主机名下的计算机名称和登录用户下的广告名称
计算机1双卡
计算机2双卡
computer3 维达
理想情况下我想显示哪台电脑在线我的想法在下面
$usersComputer | ForEach-Object {
$cn = $_."Host Name"
$path = "\$cn\c$\users$name"
$state = Test-Path $path
write-host $cn, $state
}
它输出如下,但是计算机 3 应该报告为 true ans $cn 变量未显示。
失败
失败的
失败
我已经重新调整了您的解决方案,现在效果很好。 CSV 文件的导入已经完成,因此变量具有计算机名称。在下面工作之后。
$usersComputer | ForEach-Object {
$cn = $_
$comp = Test-Path \$cn\c$\users$username
[PSCustomObject]@{
Computer = $cn
Status = if ($componline) { 'Online' } else { 'Offline' }
}
}
$usersComputer
将包含一个对象集合,每个对象都将具有名称与 CSV 中的列相匹配的属性。您还没有提供 CSV 的样例。因此,如果它只有一个名为 ComputerName
的列,您可以这样做:
$usersComputer | ForEach-Object {
$cn = $_.ComputerName
$path = "\$cn\c$\users$name"
$componline = Test-Path $path
[PSCustomObject]@{
Computer = $cn
Status = if ($componline) { 'Online' } else { 'Offline' }
}
}
我已将计算机名称列表从 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 列 "Host Name " "Logged User" 主机名下的计算机名称和登录用户下的广告名称 计算机1双卡 计算机2双卡 computer3 维达
理想情况下我想显示哪台电脑在线我的想法在下面
$usersComputer | ForEach-Object {
$cn = $_."Host Name"
$path = "\$cn\c$\users$name"
$state = Test-Path $path
write-host $cn, $state
}
它输出如下,但是计算机 3 应该报告为 true ans $cn 变量未显示。
失败 失败的 失败
我已经重新调整了您的解决方案,现在效果很好。 CSV 文件的导入已经完成,因此变量具有计算机名称。在下面工作之后。
$usersComputer | ForEach-Object {
$cn = $_
$comp = Test-Path \$cn\c$\users$username
[PSCustomObject]@{
Computer = $cn
Status = if ($componline) { 'Online' } else { 'Offline' }
}
}
$usersComputer
将包含一个对象集合,每个对象都将具有名称与 CSV 中的列相匹配的属性。您还没有提供 CSV 的样例。因此,如果它只有一个名为 ComputerName
的列,您可以这样做:
$usersComputer | ForEach-Object {
$cn = $_.ComputerName
$path = "\$cn\c$\users$name"
$componline = Test-Path $path
[PSCustomObject]@{
Computer = $cn
Status = if ($componline) { 'Online' } else { 'Offline' }
}
}