Тест-путь по списку компьютеров - PullRequest
2 голосов
/ 06 декабря 2011

Мне нужно проверить, существует ли папка на нескольких компьютерах с помощью powershell.

Я начал свой сценарий, но запутался. Как получить имя компьютера из моего serverlist.txt в командлет тестового пути?

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

Ответы [ 2 ]

8 голосов
/ 06 декабря 2011

Вот как бы я это сделал.Передайте содержимое файла в 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 голос
/ 06 декабря 2011
$a = Get-Content 'c:\Users\jason\Documents\Scripts\Serverlist.txt' 

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

$ b теперь содержит список серверов и true или false, основанные на значении пути теста

, если вам нужно все в переменной $ $:

$a = Get-Content 'c:\Users\jason\Documents\Scripts\Serverlist.txt' |  %  { $_ + " - " + @(Test-Path $_)}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...