2

我需要编写一个程序,在网络上用 C# 自动检测 windows 和 unix 机器,然后将一个文件夹从 windows 共享目录复制到远程机器,并收集机器上有多少个处理器。我不知道任何有助于检测机器及其 ips 的 C# 函数。我无权访问活动目录,也没有所有机器的中央服务器。我可以创建一个在客户端机器上运行的 perl 程序。(我也不确定如何在 unix 机器上访问 Windows 共享)一般指导和代码示例将不胜感激谢谢

4

2 回答 2

1

你有两个非常不同的问题。


1. 检测机器是 Windows 还是 unix 机器。

$^O将在 Perl 中为您提供。

$ perl -E'say $^O'
linux

>perl -E"say $^O"
MSWin32

2. 从 Unix 机器访问远程 Windows 文件共享。

好吧,对于初学者来说,这是一个SMB文件共享。

因此,您真正需要的只是一个 SMB 客户端。我很快找到了 Filesys::SmbClient,一个似乎符合要求的 Perl 模块。

于 2012-04-10T22:08:09.130 回答
0

您可以使用Nmap来发现网络机器,它是无客户端的,并且使用 -O 参数它会告诉您机器运行的是 Windows 操作系统还是 Linux 操作系统。然后,您可以使用 SNMP 或 WMI 检索 CPU 数量,即使这需要计算机安装 SNMP 或 WMI。但是,如果客户端在远程机器上运行,一切都会容易得多,特别是如果您必须复制文件。

于 2012-04-11T09:59:10.180 回答