PowerShell获取网络计算机列表

时间:2013-04-03 20:15:38

标签: powershell

我想编写一个PS脚本,它将遍历本地网络上可以找到的所有计算机,查看“SomeDirectory”,如果存在文件,则使用新版本的UNC路径覆盖它。

第一个问题是获取可在Windows中找到的PC列表 - >网络 enter image description here

5 个答案:

答案 0 :(得分:26)

有时旧学校的方式最简单。

net view

答案 1 :(得分:6)

这是你可以做的另一件事(取决于你的worgroup名称)。

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

答案 2 :(得分:6)

Shay回答的小猪支持:

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

这将获取您的域名或工作组名称,并将其用于您。

答案 3 :(得分:4)

在FoxDeploy的回答中进一步捎带:

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

这将只抓取域中的计算机,而不是所有AD对象(例如用户,组织组等)。

答案 4 :(得分:0)

ADSI 在域外不起作用。如果您只有工作组,则需要使用 NETBIOS 来获取已注册机器的列表。 “nbtstat”的输出只是字符串,而不是对象。操作不是那么容易,但您会收到注册机器和网络名称的数量。

nbtstat -r