2013-04-03 9 views
10

Chcę napisać skrypt PS, który przejdzie przez wszystkie maszyny, które może znaleźć w sieci lokalnej, spójrz na "SomeDirectory" i jeśli plik istnieje, zastąp go nowa wersja dla ścieżki UNC ..PowerShell uzyska listę maszyn sieciowych

Pierwszy problem jest coraz listę komputerów, które można znaleźć w systemie Windows -> Sieć enter image description here

Odpowiedz

23

Soemtimes stary sposób szkoła jest najłatwiejszy.

+0

: D: D: D prawda ... prawda - dobra! :) – Marty

+1

I parsować sprawdzić ten jedno-liner z http://poshcode.org/882 'switch -regex (NET.EXE VIEW) {"^\\\\ (? \ S +) \ s + "{ $ matches.Name}} ' –

6

Oto kolejna rzecz, którą możesz zrobić (w zależności od nazwy grupy roboczej).

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

Piggy-podkład na odpowiedź Shay za:

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

To będzie chwycić swoją nazwę domeny lub grupy roboczej i użyć jej dla Ciebie.

1

I piggy-back nawet dalej na odpowiedź FoxDeploy za:

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

To chwycić tylko z komputerów w domenie, nie wszystkie obiekty AD (takich jak użytkownicy, grupy organizacyjnych itp).

Powiązane problemy