我宁愿不运行检查每台机器,是否有一些服务器端软件,我可以使用? 这是一个混合的Linux / Windowsnetworking(客户端和服务器),但我只对Windows客户端感兴趣。
对于Windows客户端,您可以使用WMI脚本来获取此信息。 这里的信息应该帮助你开始。
感谢@mh链接到WMI。 这是我结束的脚本。
On Error resume next strDomain = "domain.local" Set objFSO = CreateObject("Scripting.FileSystemObject") if err.number <> 0 then Wscript.quit set domObj = GetObject("WinNT://" & strDomain) domObj.Filter = Array("computer") For Each objComputer In domObj err.clear strComputer = objComputer.Name computerName = "UNKNOWN" loggedOnUser ="" sp = "" ram = "" cpu = "" cpuMhz = "" xres = "" yres = "" Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") if err.number=0 then ' Query "BIOS" properties ' computer name Set colItems = objWMIService.ExecQuery("Select * From Win32_BIOS") For Each objItem in colItems computerName = objItem.Path_.Server Next ' Query Processor properties ' Family ' ... Set colItems = objWMIService.ExecQuery("Select * From Win32_Processor") For Each objItem in colItems cpu = objItem.Manufacturer & " " & objItem.Name cpuMhz = objItem.MaxClockSpeed Next ' Query Operating System properties ' SP Level ' RAM Set colItems = objWMIService.ExecQuery("Select * From Win32_OperatingSystem") For Each objItem in colItems sp = objItem.ServicePackMajorVersion ram = objItem.TotalVisibleMemorySize Next ' Query Computer System properties ' User Set colItems = objWMIService.ExecQuery("Select * From Win32_ComputerSystem") For Each objItem in colItems loggedOnUser = objItem.UserName Next ' Query Display properties ' Screen resolution Set colItems = objWMIService.ExecQuery("Select * From Win32_DisplayConfiguration") For Each objItem in colItems xres = objItem.PelsWidth yres = objItem.PelsHeight Next strFile = "\\server\data\inventory\" & computerName & ".txt" Set objTextFile = objFSO.OpenTextFile(strFile, 2, True) if err.number <> 0 then Wscript.quit objTextFile.WriteLine("Computer Name: " & strComputer) if err.number <> 0 then Wscript.quit if loggedOnUser <> "" then objTextFile.WriteLine("User: " & loggedOnUser) if cpu <> "" then objTextFile.writeLine("CPU: " & cpu) if cpuMhz <> "" then objTextFile.writeLine("CPU MHZ: " & cpuMhz) if ram <> "" then objTextFile.WriteLine("RAM: " & ram) if sp <> "" then objTextFile.WriteLine("Service Pack: " & sp) if xres <> "" then objTextFile.WriteLine("Horizontal resolution: " & xres) if yres <> "" then objTextFile.WriteLine("Vertical resolution: " & yres) objTextFile.Close end if next
你可以通过SCOM来做到这一点,但要诚实地破解一个小坚果是一个很大的锤子。