我想编写一个 PS 脚本,它将遍历它可以在本地网络上找到的所有机器,查看“SomeDirectory”,如果存在文件,则用新版本的 UNC 路径覆盖它。
第一个问题是获取可以在 Windows -> 网络中找到的 PC 列表
我想编写一个 PS 脚本,它将遍历它可以在本地网络上找到的所有机器,查看“SomeDirectory”,如果存在文件,则用新版本的 UNC 路径覆盖它。
第一个问题是获取可以在 Windows -> 网络中找到的 PC 列表
有时,老派的方式是最简单的。
net view
这是您可以做的另一件事(取决于您的工作组名称)。
([adsi]"WinNT://WORKGROUP").Children
捎带谢伊的回答:
([adsi]"WinNT://$((Get-WMIObject Win32_ComputerSystem).Domain)").Children
这将获取您的域或工作组名称并为您使用。
并进一步搭载 FoxDeploy 的回答:
(([adsi]"WinNT://$((Get-WMIObject Win32_ComputerSystem).Domain)").Children).Where({$_.schemaclassname -eq 'computer'})
这将只抓取域中的计算机,而不是所有 AD 对象(例如用户、组织组等)。
ADSI 不能在域外工作。如果您只有工作组,则需要使用 NETBIOS 获取已注册机器的列表。“nbtstat”的输出只是字符串,而不是对象。操作不是那么容易,但您会收到注册机器的数量和网络名称。
nbtstat -r