用于自动检测机器的代码

时间:2012-04-10 21:04:52

标签: c# windows perl unix remote-management

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

2 个答案:

答案 0 :(得分:1)

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


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

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

$ perl -E'say $^O'
linux

>perl -E"say $^O"
MSWin32

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

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

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

答案 1 :(得分:0)

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