计算机列表上的测试路径

时间:2011-12-06 11:34:58

标签: powershell powershell-v2.0

我需要使用PowerShell检查多台计算机上是否存在文件夹。

我已经开始使用我的剧本,但却让自己陷入困境。如何将serverlist.txt中的计算机名称输入测试路径cmdlet?

$a = Get-Content 'c:\Users\jason\Documents\Scripts\Serverlist.txt' foreach  ($i in $a)  {Test-Path "\\$a\c$\program files\folder"}

2 个答案:

答案 0 :(得分:8)

这是我将如何做到的。将文件内容传递给Select-Object,并为每个名称ComputerName和FileExist创建两个属性,其中后一个值是Test-Path的结果。

Get-Content c:\Users\jason\Documents\Scripts\Serverlist.txt | `
   Select-Object @{Name='ComputerName';Expression={$_}},@{Name='FolderExist';Expression={ Test-Path "\\$_\c$\program files\folder"}}

您应该期望输出类似于:

ComputerName FolderExist
------------ -----------
Computer1    False
Computer2    True

答案 1 :(得分:1)

$a = Get-Content 'c:\Users\jason\Documents\Scripts\Serverlist.txt' 

$b = $a | %  { $_ + " - " + @(Test-Path $_)}

$ b现在包含服务器列表以及基于测试路径值的真或假

如果你需要$ a变量:

$a = Get-Content 'c:\Users\jason\Documents\Scripts\Serverlist.txt' |  %  { $_ + " - " + @(Test-Path $_)}