我有远程计算机的IP地址和服务器名称。如果计算机运行Windows,我可以查询WMI
以获取OS version
,但是如果计算机没有运行Windows,我可以查询远程计算机并获取OS version
(Linux
,Solaris
)?
答案 0 :(得分:2)
我想Active Directory
会给我我需要的东西。这就是我到目前为止所拥有的。看起来很有希望。
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain))
{
ComputerPrincipal computer = ComputerPrincipal.FindByIdentity(ctx, "mylinuxservername");
if (computer != null)
{
var unObject = computer.GetUnderlyingObject() as System.DirectoryServices.DirectoryEntry;
if(null != unObject)
{
var osProperty = unObject.Properties.Cast<System.DirectoryServices.PropertyValueCollection>().Where(p => p.PropertyName == "operatingSystem");
if(null != osProperty.FirstOrDefault())
{
Console.WriteLine(osProperty.FirstOrDefault().Value);
}
}
}
}
答案 1 :(得分:0)
有很多方法可以检测远程计算机是使用Windows操作系统还是Linux。信息收集包括渗透测试中的那部分。 基本上,在扫描远程计算机上的端口数量和这些端口上运行的服务之后,我们可以确定远程计算机上安装了哪些操作系统。 还有一种方法可以检查它,您可以使用 SNMP协议来实现此目的。
user@host $ snmpget -v2c -c <community string> <computer> <mib / oid >
当量
user@host $ snmpget -v2c -c public x.x.x.x sysDescr.0
将为您提供与远程计算机相关的信息。 默认情况下,&lt;社区字符串&gt; 公开。
答案 2 :(得分:-1)
知道什么是远程PC的Windows版本,你可以运行windows命令&#34; systeminfo / s [PCname]&#34;或者你可以使用