我想编写一个PS脚本,它将遍历本地网络上可以找到的所有计算机,查看“SomeDirectory”,如果存在文件,则使用新版本的UNC路径覆盖它。
第一个问题是获取可在Windows中找到的PC列表 - >网络
答案 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