Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » WMI - [решено] Объем ОЗУ у ПК в сети

Ответить
Настройки темы
WMI - [решено] Объем ОЗУ у ПК в сети

Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день. За ранее прошу прощения за глупый и нубский вопрос.

Есть 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
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата s_Nomad:
Есть N ПК в группе в домене (весь домен очень большой, нужны только пк из этой группы). »
Давайте сразу уточним: в «группе» или же таки в организационном подразделении (OU)?

Отправлено: 17:39, 09-02-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
организационном подразделении (OU) »
м... щас уже нет возможности посмотреть, но в любом случае, у меня есть файл-список NetBIOS имен ПК которые нужно опросить и в .txt и в .csv формате

Отправлено: 18:37, 09-02-2015 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата s_Nomad:
у меня есть файл-список NetBIOS имен ПК которые нужно опросить и в .txt и в .csv формате »
Кодировка этого файла какова?

Отправлено: 18:59, 09-02-2015 | #4


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
Кодировка этого файла какова? »
ANSI
Это имеет значение? Ведь можно перегнать в любую кодировку что текстовый файл, что файл с данными разделенный запятыми

Последний раз редактировалось s_Nomad, 09-02-2015 в 20:50.


Отправлено: 20:25, 09-02-2015 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить 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
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
В именах машин нет кириллицы? »
Нет, только латиница и каждое имя с новой строки.

Цитата Iska:
Machine list file »
я так понимаю в место этого я вписываю полный путь к .txt файлу, а куда он выводит?

Отправлено: 13:41, 10-02-2015 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата s_Nomad:
Нет, только латиница »
Это хорошо, ибо я сталкивался с некорректной работой Win32_PingStatus на кириллических именах.

Цитата s_Nomad:
и каждое имя с новой строки. »
Хорошо, так и ожидается.

Цитата s_Nomad:
я так понимаю в место этого я вписываю полный путь к .txt файлу, »
Нет, имя файла ожидается увидеть аргументом скрипта.

Цитата s_Nomad:
а куда он выводит? »
При запуске по умолчанию, посредством «wscript.exe» — сообщениями на экран, при запуске посредством «cscript.exe» — на консоль. В последнем случае этот вывод можно перенаправить в файл. Т.е., например:
Код: Выделить весь код
cscript.exe //nologo "E:\Песочница\0432\My Machine List.txt" >"c:\My Output List.txt"
где: «E:\Песочница\0432\My Machine List.txt» — перечень имён/адресов машин, «c:\My Output List.txt» — файл вывода.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:05, 10-02-2015 | #8


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, Спасибо тебе огромное! Все сработало. В строчном порядке начну учить скрипты. Вот колеблюсь только между VBS и Powershell.
Что посоветуешь? Есть ли какой-то кросплатформеный язык? чтоб и под форточки и под линь канал?

Отправлено: 12:41, 12-02-2015 | #9


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата s_Nomad:
Вот колеблюсь только между VBS и Powershell. »
Если ещё не знакомы ни с тем, ни с другим, и эксплуатируемые ОС не ниже XP — начинайте сразу с PowerShell.

Цитата s_Nomad:
Есть ли какой-то кросплатформеный язык? чтоб и под форточки и под линь канал? »
Угу. Python. Но советовать не буду.

Отправлено: 13:02, 12-02-2015 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » WMI - [решено] Объем ОЗУ у ПК в сети

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Установка - система определяет разный объем ОЗУ 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




 
Переход