2013-04-03 31 views
10

Voglio scrivere uno script PS, che passerebbe attraverso tutte le macchine che può trovare su una rete locale, dare un'occhiata a "SomeDirectory" e se esiste un file, sovrascriverlo con un nuova versione per un percorso UNC ..PowerShell ottiene un elenco di macchine di rete

il primo problema è sempre un elenco di PC che si possono trovare in Windows -> rete enter image description here

risposta

23

soemtimes la strada vecchia scuola è il più facile.

net view 
+0

: D: D: D vero ... vero - buono! :) – Marty

+1

E per analizzare controllare questo one-liner da http://poshcode.org/882 'switch -regex (NET.EXE VIEW) {"^\\\\ (? \ S +) \ s + "{ $ matches.Name}} ' –

6

Ecco un'altra cosa che puoi fare (dipende dal nome del tuo worgroup).

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

Piggy-backing sulla risposta di Shay:

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

Questo sarà afferrare il vostro nome di dominio o gruppo di lavoro e l'uso che per voi.

1

E per piggy-back ancora più avanti la risposta di FoxDeploy:

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

Questo catturerà solo i computer del dominio, non tutti gli oggetti AD (quali utenti, gruppi organizzativi, etc.).

Problemi correlati