Test-Path, но также указывается, находится ли целевой компьютер в автономном режиме


1

У меня есть скрипт PowerShell, который просматривает список компьютеров и сообщает мне, есть ли папка, которую я запрашиваю, на этом ПК. Проблема заключается в том, что он отображает автономные ПК как ложные.

Я бы хотел, чтобы автономные ПК были перечислены как автономные, или просто добавьте дополнительную информацию, если она есть. Я не против сказать, что это ложно, если я знаю, подключен ли компьютер к сети или нет.

Что у меня так далеко:

Get-Content c:\computers.txt | `
   Select-Object @{Name='ComputerName';Expression={$_}},@{Name='FolderExist';Expression={ Test-Path "\\$_\c$\program files (x86)\thefolder"}}

Добавьте проверку перед этим шагом, чтобы увидеть, включен ли компьютер. Например, проверьте, есть ли на компьютере путь `C:`. Если нет, назовите это «офлайн». В противном случае перейдите к указанному вами коду.
root

Ответы:


1

Это все равно будет иметь значение FolderExist False для автономных компьютеров, но вы увидите, какой из них онлайн.

Get-Content .\computers.txt |
   Select-Object @{Name='ComputerName';Expression={$_}},
     @{Name='Online';Expression={(Test-Connection $_ -count 1 -EA 0).StatusCode -eq 0}},
     @{Name='FolderExist';Expression={ Test-Path "\\$_\c`$\program files (x86)\common files"}}

Пример вывода:

ComputerName Online FolderExist
------------ ------ -----------
Computer01     True        True
Computer02    False       False
Computer03     True       False

0

Как насчет?

    Get-Content .\computers.txt |
       Select-Object @{n='ComputerName';e={$_}},
                     @{n='FolderExist';e={ If(Test-Connection $_ -Quiet -Count1){Test-Path "\\$_\c`$\program files (x86)\common files"}else{"Offline"}}}
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.