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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как определить количество установленной памяти в ХР с помошью .cmd .bat?

Ответить
Настройки темы
CMD/BAT - [решено] Как определить количество установленной памяти в ХР с помошью .cmd .bat?

Пользователь


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

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


Как определить количество установленной памяти в ХР с помошью .cmd .bat? Или подскажите программу, которая это делает, и по весу минимальна. Благодарю.

Отправлено: 18:33, 08-10-2009

 

Ветеран


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

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


Iska

Здравствуйте.

Мне хочется понять, почему при выполнении этого мне программа PsInfo выдает неправильное значение 4050 вместо 8000 или другое значение ( у меня установлено 8 Гигабайт оперативной памяти )

Спасибо.

Отправлено: 08:29, 27-03-2017 | #11



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

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


Ветеран


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

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


Цитата SharkyEXE:
Мне хочется понять, почему при выполнении этого мне программа PsInfo выдает неправильное значение 4050 вместо 8000 или другое значение ( у меня установлено 8 Гигабайт оперативной памяти ) »
Если б только это… Старая и известная проблема.

Я Вам задавал вопрос:
Цитата Iska:
Начать с описания того, что Вам нужно. »
на который Вы дали совсем не тот ответ. Повторяю: зачем Вам нужно знать количество физической оперативной памяти? Для каких целей?
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:15, 27-03-2017 | #12


Ветеран


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

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


Iska

Здравствуйте.

Извините меня, пожалуйста, что я не правильно Вам написал.

Вот, смотрите.

У меня на стационарном компьютере установлено 8 Гигабайт оперативной памяти, то надо делать отключение файла подкачки по этому 100% рабочему методу

У меня на ноутбуке установлено 6 Гигабайт оперативной памяти, то не надо делать отключение файла подкачки по этому 100% рабочему методу

Вот и ищется способ/алгоритм/блок-схема проверки на количество оперативной памяти, мол:
Код: Выделить весь код
если ОЗУ менее 8 Гигабайт, то не надо делать отключение файла подкачки по этому 100% рабочему методу
если ОЗУ более или равно 8 Гигабайт, то надо делать отключение файла подкачки по этому 100% рабочему методу
Спасибо.

Последний раз редактировалось SharkyEXE, 27-03-2017 в 11:59.


Отправлено: 11:53, 27-03-2017 | #13


Ветеран


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

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


SharkyEXE, начну с того, что я категорически не советую отключать файл подкачки и вообще как-то трогать его настройки по сравнению с умолчальными («отдать всё на откуп системе»).

Ну, а так можно попробовать такое:
Скрытый текст
Код: Выделить весь код
Option Explicit

Const HKEY_LOCAL_MACHINE = &H80000002


Dim objSWbemLocator
Dim objSWbemObjectEx

Dim lngTotalVisibleMemorySize
Dim lngRetValue

Dim arrCurrPFRO


Set objSWbemLocator = WScript.CreateObject("WbemScripting.SWbemLocator")

For Each objSWbemObjectEx In objSWbemLocator.ConnectServer(".", "root\cimv2").ExecQuery("SELECT TotalVisibleMemorySize FROM Win32_OperatingSystem")
	lngTotalVisibleMemorySize = CLng(objSWbemObjectEx.TotalVisibleMemorySize)
	
	Exit For
Next

If lngTotalVisibleMemorySize >= 8 * 2^20 Then
	With objSWbemLocator.ConnectServer(".", "root\default").Get("StdRegProv")
		If .SetMultiStringValue(HKEY_LOCAL_MACHINE, "system\currentcontrolset\control\session manager\memory management", "PagingFiles", Array()) = 0 Then
			lngRetValue = .GetMultiStringValue(HKEY_LOCAL_MACHINE, "system\currentcontrolset\control\session manager", "PendingFileRenameOperations", arrCurrPFRO)
			
			Select Case lngRetValue
				Case 0, 2
					If IsArray(arrCurrPFRO) Then
						ReDim Preserve arrCurrPFRO(UBound(arrCurrPFRO) + 2)
						
						arrCurrPFRO(UBound(arrCurrPFRO) - 1) = "\??\C:\pagefile.sys"
						arrCurrPFRO(UBound(arrCurrPFRO))     = ""
					Else
						arrCurrPFRO = Array("\??\C:\pagefile.sys", "")
					End If
					
					If .SetMultiStringValue(HKEY_LOCAL_MACHINE, "system\currentcontrolset\control\session manager", "PendingFileRenameOperations", arrCurrPFRO) = 0 Then
						' Nothing to do
					Else
						WScript.Echo "Can't set removing file [C:\pagefile.sys] after restart operating system."
						WScript.Quit 3
					End If
				Case Else
					WScript.Echo "Can't read current pending file rename operations."
					WScript.Quit 2
			End Select
		Else
			WScript.Echo "Can't disable usage of paging file."
			WScript.Echo 1
		End If
	End With
End If

Set objSWbemLocator = Nothing

WScript.Quit 0

Обязательно предварительно сделайте точку восстановления, а лучше — резервную копию реестра. Удаление файла подкачки производится в момент начальной загрузки операционной системы таким вот образом: Ключ реестра PendingFileRenameOperations. Память для сравнения берётся не физически установленная, а доступная для использования (.TotalVisibleMemorySize) — я думаю, так будет правильнее (подсмотрел у коллеги greg zakharov).

Если отработает корректно — я хотел бы потом ещё добавить кое-что, дабы не тупо задавать C:\pagefile.sys, а реальные местоположения используемых файлов подкачки (он ведь может быть не на C:\, и их может быть и несколько).
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:03, 28-03-2017 | #14


Ветеран


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

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


Iska

Здравствуйте.

А как мне проверить Ваш код,е сли у меня файл подкачки уже отключен?

В плане, включить файл подкачки снова, на диске C, размер отдать на выбор системе, праивльно?

Отправлено: 06:25, 28-03-2017 | #15


Ветеран


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

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


Цитата SharkyEXE:
А как мне проверить Ваш код,е сли у меня файл подкачки уже отключен? В плане, включить файл подкачки снова, на диске C, размер отдать на выбор системе, праивльно? »
Да. Включить, согласиться на перезагрузку. Попробовать исполнить скрипт. Снова перезагрузить ОС (уже самостоятельно). Посмотреть настройки файла подкачки и наличие файла подкачки.

Мне, кстати, помнится, несколько лет назад уже мы что-то вроде как то ли делали, то ли пробовали делать наподобие этого.

Update: воистину — «старею, дурею…» :
CMD/BAT - [решено] отключение файла подкачки
CMD/BAT - [решено] Отключение файла подкачки XP из BAT-ника
VBS/WSH/JS - [решено] Изменение размера файла подкачки
— и не надо никаких лишних игр с реестром.

Отправлено: 07:30, 28-03-2017 | #16


Ветеран


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

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


Iska

Здравствуйте.

Вопросов нет, как 100%но отключить файл подкачки - этот способ 100%но работает: сюда

Однако вопрос только в том, как сделать проверку:
Код: Выделить весь код
если ОЗУ менее 8 Гигабайт, то не надо делать отключение файла подкачки
если ОЗУ более или равно 8 Гигабайт, то надо делать отключение файла подкачки

Отправлено: 08:24, 28-03-2017 | #17


Ветеран


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

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


SharkyEXE, я привёл Вам код для WSH.

Отправлено: 23:57, 28-03-2017 | #18



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как определить количество установленной памяти в ХР с помошью .cmd .bat?

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Batch файл (.bat, .cmd) - как сгенерировать произвольное число от 1 до 10? ANR Скриптовые языки администрирования Windows 9 26-03-2013 10:02
[решено] Как самостоятельно определить сбойный драйвер с помощью дампа памяти? Alfacentavra Хочу все знать 50 02-02-2012 13:50
CMD/BAT - [решено] как задать в bat'нике чтобы cmd раскрылся на весь экран сам? One THE darK Скриптовые языки администрирования Windows 11 23-03-2010 17:17
[решено] Как с помощью CMD(BAT) запустить запароленный sfx архив! ofcoss Автоматическая установка приложений 7 10-07-2009 00:41
[решено] как определить какой у мя процессор и тип памяти? Triz Хочу все знать 1 07-03-2008 21:55




 
Переход