2013-04-03 7 views
10

Я хочу написать сценарий PS, который будет проходить через все машины, которые он может найти в локальной сети, взгляните на «SomeDirectory», и если файл существует, перезапишите его новая версия для пути UNC ..PowerShell получить список сетевых машин

Первая проблема получает список компьютеров, которые можно найти в Windows -> Network enter image description here

ответ

23

Soemtimes старой школы способ является самым простым.

net view 
+0

: D: D: D true ... true - good one! :) – Marty

+1

И проанализировать этот однострочный шрифт с http://poshcode.org/882 'switch -regex (NET.EXE VIEW) {"^\\\\ (? \ S +) \ s + "{ $ matches.Name}} ' –

6

Это еще одна вещь, которую вы можете сделать (в зависимости от вашего названия ворггруппы).

([adsi]"WinNT://WORKGROUP").Children 
4

Piggy-поддержка на ответ Шея:

([adsi]"WinNT://$((Get-WMIObject Win32_ComputerSystem).Domain)").Children 

Это будет захватить ваш домен или имени рабочей группы и использовать это для вас.

1

И контрейлерных еще дальше на ответ FoxDeploy в:

(([adsi]"WinNT://$((Get-WMIObject Win32_ComputerSystem).Domain)").Children).Where({$_.schemaclassname -eq 'computer'}) 

Это будет захватывать только компьютеры в домене, а не все объекты AD (например, пользователей, организационных групп и т.д.).

Смежные вопросы