Назад | Перейти на главную страницу

Самый простой способ узнать разрешение экрана всех компьютеров в сети Windows?

Я бы предпочел не бегать, проверяя каждую машину индивидуально, есть ли какое-нибудь серверное программное обеспечение, которое я могу использовать? Это смешанная сеть Linux / Windows (клиенты и серверы), но меня интересуют только клиенты Windows.

Спасибо @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

Для клиентов Windows вы можете использовать сценарий WMI, чтобы получить это. Информация Вот должно помочь вам начать работу.

Вы можете сделать это через SCOM, но, если честно, расколоть маленький орешек - сложная задача.