![]() |
отключение файла подкачки
Как отключить файл подкачки?
Disablepagingexecutive не работает. После ребута, в GUI так и остаются цифры о размере файла подкачки, pagefile.sys никуда не исчезает. |
vbscript:
А также на XP есть «pagefileconfig.vbs»: Код:
C:\WINDOWS\system32\pagefileconfig.vbs /? |
Работает, и даже файл подкачки стал удалаямым, но вручную.
Bat-вариант бы, с автоматическим удалением pagefile.sys (ведь при ручном отключений через GUI сам файл тоже удаляется) |
super_bitard, этого не было в ТЗ. Ну, так добавьте:
Код:
Option Explicit |
Я опять чего-то непонимаю?
Код:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v PagingFiles /t REG_MULTI_SZ /d "\0" /f |
seriych, если вопрос ко мне — то я банально не в курсе.
Если Вам не сложно — проверьте, пожалуйста — не делает ли скрипт опосредованно той же настройки в реестре (вероятнее всего так оно и есть)? |
Iska,
Реестр правит, на удаление файла ругается. После перезагрузки должна удалить сама винда. Я просто этот ключик реестра применяю уже года полтора. А после перезагрузки выставляю нужный размер. |
Действительно vbsка ругается что не может удалить pagefile.sys
Так pagefile.sys почему-то тоже не удаляется, а должен: reg add "hklm\system\currentcontrolset\control\session manager\memory management" /v "pagingfiles" /t reg_multi_sz /d "\0" /f reg add "hklm\software\microsoft\windows\currentversion\runonce" /V "delete object" /d "cmd /c del /f /q %systemdrive%\pagefile.sys" /f При ручном отключении через GUI, система же как-то этот файл удаляет? |
super_bitard,
Она его тоже только после перезагрузки удаляет вроде. Так что нужен только первый ключ реестра. Кстати, файлик не обязан лежать в %systemdrive%, но в данном случае это не имеет значения, за ненадобностью второго ключа. |
Раз в утверждениях обнаружились расхождения — надо выяснять реальное положение вещей.
super_bitard, коль Вы заказчик — то Вам и пробовать. 1. Задайте «ручками» в GUI настройки виртуальной памяти, задав файл подкачки, например, для диска «C:». Перегрузитесь. 2. Удалите «ручками» в GUI использование виртуальной памяти, удалив все файл подкачки для всех дисков. Перегрузитесь. 3. Проверьте, удалился ли файл подкачки на диске «C:». Отпишитесь по результатам. 4. Задайте «ручками» в GUI настройки виртуальной памяти, задав файл подкачки, например, для диска «C:». Перегрузитесь. 5. Опробуйте скрипт из #2. Перегрузитесь. 6. Проверьте, удалился ли файл подкачки на диске «C:». Отпишитесь по результатам. 7. Задайте «ручками» в GUI настройки виртуальной памяти, задав файл подкачки, например, для диска «C:». Перегрузитесь. 8. Опробуйте команду из #5. Перегрузитесь. 9. Проверьте, удалился ли файл подкачки на диске «C:». Отпишитесь по результатам. Дополнительно укажите Вашу ОС и Service Pack. По отрицательным результатам (по пунктам 6 и 9) можно будет дописать удаление файла подкачки после перезагрузки. |
Вообще-то изначально все так и проверял
проверил еще раз как вы хотели: 3.pagefile.sys автоматически удалился сам (можно было не проверять очевидное) 6.pagefile.sys не удалился 9.pagefile.sys не удалился en_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-73974.iso проверялось на разных компьютерах выше уже выкладывал скрипт удаляющий после перезагрузки - тоже не работает: reg add "hklm\software\microsoft\windows\currentversion\runonce" /V "delete object" /d "cmd /c del /f /q %systemdrive%\pagefile.sys" /f |
super_bitard,
Ага, вот и несоответствие. На семерке работаю в основном, на семерке и проверял. Сейчас на XP проверил - подкачка отключается, а файл остается. |
Итак.
1. При изменении параметров размера файла подкачки для определённого диска до нуля посредством интерфейса операционной системы — он удаляется после перезагрузки операционной системы. 2. При этом используется стандартный механизм операционной системы PendingFileRenameOperations посредством вызова не менее стандартной функции WinAPI MoveFileEx с соответствующим параметром: Цитата:
Код:
Windows Registry Editor Version 5.00 3. Наш случай — удаление файлов «pagefile.sys» программно (после программного отключения виртуальной памяти). а) теоретически, мы, обладая правами администратора (или от имени учётной записи «LocalSystem»), можем записать туда перечень необходимых нам файлов «pagefile.sys» (хотя Microsoft этого делать не рекомендует); б) мы можем воспользоваться для тех же целей внешней утилитой «MoveFile» из комплекта: PendMoves v1.1 and MoveFile v1.0 (которая фактически делает то же самое); в) наконец, нам ничто не мешает банально назначить удаление необходимых файлов «pagefile.sys» вручную при загрузке системы любым способом: * скриптом из #2, соответствующим образом поправив его; * командой из #11, добавив необходимый в этом случае параметр «/a:sh»: Код:
reg.exe add "hklm\software\microsoft\windows\currentversion\runonce" /V "delete object" /d "cmd.exe /c del /f /q /a:sh %systemdrive%\pagefile.sys" /f Ну, и, я ещё не смотрел идущий в комплекте «C:\WINDOWS\system32\pagefileconfig.vbs» — решается ли там данная проблема, и, если решается — то как. |
thank you
Теперь все работает: reg add "hklm\system\currentcontrolset\control\session manager\memory management" /v "pagingfiles" /t reg_multi_sz /d "\0" /f reg.exe add "hklm\software\microsoft\windows\currentversion\runonce" /V "delete object" /d "cmd.exe /c del /f /q /a:sh %systemdrive%\pagefile.sys" /f Подправленный vbs-скрипт тоже не помешал бы на всякий случай. |
А подскажите куда это все положить в дистрибутиве!
|
Цитата:
|
Время: 14:20. |
Время: 14:20.
© OSzone.net 2001-