2013-04-03 45 views
10

Tôi muốn viết một tập lệnh PS, nó sẽ đi qua tất cả các máy có thể tìm thấy trên mạng cục bộ, hãy xem "SomeDirectory" và nếu có tệp, ghi đè lên bằng một phiên bản mới cho một con đường UNC ..PowerShell lấy danh sách các máy mạng

vấn đề đầu tiên là nhận được một danh sách các máy tính mà bạn có thể tìm thấy trong Windows -> Network enter image description here

Trả lời

23

Soemtimes cách trường học cũ là dễ nhất.

net view 
+0

: D: D: D đúng ... đúng - tốt nhất! :) – Marty

+1

Và để phân tích cú pháp hãy kiểm tra một lớp lót này từ http://poshcode.org/882 'switch -regex (NET.EXE VIEW) {"^\\\\\\\\ (? \ S +) \ s + "{ $ matches.Name}} ' –

6

Đây là một việc khác bạn có thể làm (tùy thuộc vào tên nhóm của bạn).

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

Piggy-sự ủng hộ về câu trả lời của Shay:

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

này sẽ lấy tên miền hoặc nhóm làm việc của bạn và sử dụng điều đó cho bạn.

1

Và để piggy-back hơn nữa về câu trả lời của FoxDeploy:

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

này sẽ lấy chỉ các máy tính trên tên miền, không phải tất cả đối tượng AD (chẳng hạn như người dùng, nhóm tổ chức, vv).

Các vấn đề liên quan