|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » WMI - [решено] Объем ОЗУ у ПК в сети |
|
|
WMI - [решено] Объем ОЗУ у ПК в сети
|
Новый участник Сообщения: 12 |
Добрый день. За ранее прошу прощения за глупый и нубский вопрос.
Есть N ПК в группе в домене (весь домен очень большой, нужны только пк из этой группы). Нужно узнать сколько у каждого из ник ОЗУ. Как я понял это не сложно сделать по WMI Как правильно доработать скрипт (это найболее подходящие под мою задачу что я нашел) ' Memory.vbs ' Sample VBScript to discover how much RAM in computer ' Author Guy Thomas http://computerperformance.co.uk/ ' Version 1.4 - December 2010 ' -------------------------------------------------------' Option Explicit Dim objWMIService, objComputer, colComputer Dim strLogonUser, strComputer, intRamMB strComputer = "." strComputer = InputBox("Enter Computer name", _ "Find Computer Memory", strComputer) Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") Set colComputer = objWMIService.ExecQuery _ ("Select * from Win32_ComputerSystem") For Each objComputer in colComputer intRamMB = int((objComputer.TotalPhysicalMemory) /1048576)+1 Wscript.Echo "System Name: " & objComputer.Name _ & vbCr & "Total RAM: " & intRamMB & " Mb" Next WScript.Quit ' End of free example of Memory WMI / VBScript взят он от сюда http://www.computerperformance.co.uk...puters_Memory_ чтоб я взять список ПК из файла (выгрузка из АД) и записать результаты в файл. Заранее благодарю за помощь. P.S. С скриптовыми языками не знаком (ни с шелом ни с вбс), подойдет помощь на любом из них. |
|
Отправлено: 15:36, 09-02-2015 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата s_Nomad:
|
|
Отправлено: 17:39, 09-02-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 18:37, 09-02-2015 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата s_Nomad:
|
|
Отправлено: 18:59, 09-02-2015 | #4 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Это имеет значение? Ведь можно перегнать в любую кодировку что текстовый файл, что файл с данными разделенный запятыми |
||
Последний раз редактировалось s_Nomad, 09-02-2015 в 20:50. Отправлено: 20:25, 09-02-2015 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать s_Nomad, примерно так:
Скрытый текст
Option Explicit Dim strMachineList Dim strComputer Dim objSWbemLocator Dim objSWbemObjectEx If WScript.Arguments.Count = 1 Then strMachineList = WScript.Arguments.Item(0) With WScript.CreateObject("Scripting.FileSystemObject") If .FileExists(strMachineList) Then Set objSWbemLocator = WScript.CreateObject("WbemScripting.SWbemLocator") With .OpenTextFile(strMachineList) Do Until .AtEndOfStream strComputer = Trim(.ReadLine()) If IsConnected(strComputer) Then For Each objSWbemObjectEx In objSWbemLocator.ConnectServer(strComputer, "root\cimv2").ExecQuery("SELECT * FROM Win32_ComputerSystem") WScript.Echo objSWbemObjectEx.Name, vbTab, objSWbemObjectEx.TotalPhysicalMemory Next Else WScript.Echo strComputer & " not found." End If Loop .Close End With Set objSWbemLocator = Nothing Else WScript.Echo "Machine list file [" & strMachineList & "] not found." WScript.Quit 2 End If End With Else WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ <Machine list file>" WScript.Quit 1 End If WScript.Quit 0 '============================================================================= '============================================================================= Function IsConnected(strAddress) Dim objSWbemObjectEx IsConnected = False For Each objSWbemObjectEx In GetObject( _ "winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2").ExecQuery( _ "SELECT * FROM Win32_PingStatus WHERE Address = '" & strAddress & "'" _ ) With objSWbemObjectEx If Not IsNull(.StatusCode) And .StatusCode = 0 Then IsConnected = True End If End With Exit For Next Set objSWbemObjectEx = Nothing End Function '============================================================================= В именах машин нет кириллицы? |
Отправлено: 02:56, 10-02-2015 | #6 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать |
Отправлено: 13:41, 10-02-2015 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата s_Nomad:
Цитата s_Nomad:
Цитата s_Nomad:
Цитата s_Nomad:
где: «E:\Песочница\0432\My Machine List.txt» — перечень имён/адресов машин, «c:\My Output List.txt» — файл вывода. |
||||
Отправлено: 19:05, 10-02-2015 | #8 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Iska, Спасибо тебе огромное! Все сработало. В строчном порядке начну учить скрипты. Вот колеблюсь только между VBS и Powershell.
Что посоветуешь? Есть ли какой-то кросплатформеный язык? чтоб и под форточки и под линь канал? |
Отправлено: 12:41, 12-02-2015 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата s_Nomad:
Цитата s_Nomad:
|
||
Отправлено: 13:02, 12-02-2015 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Установка - система определяет разный объем ОЗУ | diagnoz_ | Microsoft Windows 2000/XP | 5 | 22-05-2013 00:49 | |
ПК не загружается с 4мя ОЗУ | Imcus | Материнские платы и память | 8 | 20-01-2013 01:03 | |
[решено] Объем ОЗУ | sir_vit | Microsoft Windows NT/2000/2003 | 2 | 07-04-2012 21:21 | |
Разное - [решено] В свойствах компьютера не отображается название процессора и объем озу | cholbic | Microsoft Windows 7 | 4 | 16-01-2012 22:42 | |
Перезагрузки ПК после установки ОЗУ | b_dimonoff | Непонятные проблемы с Железом | 1 | 24-01-2011 18:09 |
|