Показать полную графическую версию : [статья] Применение твиков реестра Windows
Страниц :
1
2
3
4
[
5]
6
7
8
9
10
11
Mishechka
13-08-2011, 23:29
Ребята, я сделал так:
В файл AutoUnattend.xml в FirstLogonCommands добавил команду:
<SynchronousCommand wcm:action="add">
<Order>25</Order>
<CommandLine>cmd /c shutdown.exe /r /t 30 /c "Компьютер перезагрузится для успешного завершения настройки Windows."</CommandLine>
</SynchronousCommand>
Батник переделал так:
@echo off
timeout 25
:: Импорт твиков реестра
start /wait regedit /s %DiskRoot%\Win7ProSP1\Install\hkcu.reg
exit
Переустановил систему и вот, что выяснилось:
Загрузка рабочего стола началась и шла в обычном порядке, и ничего ей не мешало, и никаких окон не появлялось.
И только после того как загрузка рабочего стола закончилась появились окна:
1. Консольное батника с обратным отсчётом "осталось 7 секунд".
2. Системное "Компьютер перезагрузится для успешного завершения настройки Windows.".
Затем изчезло окно батника, через пару секунд изчезло системное окно и пошла перезагрузка. После перезагрузки выяснилось, что всё отлично сработало. Правильно ли я сделал?
Системное окно имеет симпатичный вид, а вот окно батника страшное. Думаю, его нужно либо скрыть, либо свернуть.
Но возможно существует способ отследить окончание загрузки рабочего стола? Тогда отпадёт необходимость в таймауте, да и перезагрузку можно будет сделать без всяких окон?
Спасибо.
Думаю, его нужно либо скрыть, либо свернуть. »
Скрытие консольных окон (http://www.oszone.net/6156/)
start /min
Mishechka
15-08-2011, 15:47
Vadikan, большое спасибо, но я знаю эти способы.
Если бы Вы помогли решить этот:
Но возможно существует способ отследить окончание загрузки рабочего стола? »
Спасибо.
Lennyvets
15-08-2011, 22:09
Mishechka, почему не хотите добавить вызов shutdown в батник:
@echo off
shutdown /r /t 30 /c "Компьютер перезагрузится для успешного завершения настройки Windows менее чем через 1 минуту"
timeout 25
:: Импорт твиков реестра
start /wait regedit /s %DiskRoot%\Win7ProSP1\Install\hkcu.reg
exit
или тогда уж совсем от батника отказаться:
<SynchronousCommand wcm:action="add">
<Order>25</Order>
<CommandLine>cmd /c start /min cmd /c "shutdown /r /t 30 /c "Компьютер перезагрузится для успешного завершения настройки Windows менее чем через 1 минуту" & timeout 25 & reg import %DiskRoot%\Win7ProSP1\Install\hkcu.reg & timeout 5"</CommandLine>
</SynchronousCommand>
- cmd запускает в свернутом виде новое окно cmd и завершает работу; второй cmd последовательно выполняет shutdown, timeout и reg import; для контроля в конец добавлен еще timeout.
Но возможно существует способ отследить окончание загрузки рабочего стола? »
командой в FirstLogonCommands скопировать батник в папку "Автозагрузка" и добавить ему в конец перезагрузку через 1-2 секунды и команду удаления самого себя.
Mishechka
16-08-2011, 13:57
Я вот о чём, чтобы не гадать с секундами, можно ли отследить окончание загрузки рабочего стола, а потом импортировать твики и сделать перезагрузку? Я в этом не разбираюсь но что-то такое я на форуме нашёл:
tasklist | find "explorer.exe"
или:
@Echo Off
SetLocal EnableExtensions
Set ProcessName=explorer.exe
TaskList /FI "ImageName EQ %ProcessName%" | Find /I "%ProcessName%"
If %ErrorLevel% NEQ 1 start /wait regedit /s %DiskRoot%\Win7ProSP1\Install\hkcu.reg
Спасибо.
Mishechka, я вообще не понимаю, какое отношение ваш вопрос про импорт твиков имеет к данной теме... Равно как и не понимаю, зачем вообще ждать. Импортировали из FirstLogonCommands и перезагрузились. Вам это уже посоветовали.
Mishechka
16-08-2011, 16:03
я вообще не понимаю, какое отношение ваш вопрос про импорт твиков имеет к данной теме... »
Я задавал вопрос о коде подтверждения, но потом слово за слово и получилось так, что ушли от темы. Извините, и если считаете нужным, то перенесите куда следует. Спасибо.
зачем вообще ждать. »
Выше я описал проблему. Все твики срабатывают только после загрузки рабочего стола, а если так:
Импортировали из FirstLogonCommands и перезагрузились. »
то срабатывают не все.
Спасибо.
Lennyvets
16-08-2011, 19:31
Я в этом не разбираюсь но что-то такое я на форуме нашёл »
не надо усложнять без необходимости. Попробую разжевать свое последнее предложение:
после загрузки рабочего стола запускаются файлы (ярлыки, батники, приложения и пр.) из меню Пуск - Все программы -Автозагрузка;
чтобы батник запустился после загрузки рабочего стола, необходимо этот батник поместить в папку Автозагрузка;
<SynchronousCommand wcm:action="add">
<Order>25</Order>
<CommandLine>xcopy %DiskRoot%\Win7ProSP1\Install\Имя_батника %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\</CommandLine>
</SynchronousCommand>
чтобы удалить батник (а его надо запустить только раз), достаточно в конец этого батника добавитьdel %0
если нужна перезагрузка после отработки батника, то добавить в конец батника нужно следующее:
shutdown /r /t 1
del %0
Mishechka
18-08-2011, 20:16
Lennyvets, не работает.
Батник не копируется в папку автозагрузки. Сначала я проверил с Вашим кодом:
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\
потом посмотрел где находится папка автозагрузки и попробовал изменить на:
%APPDATA%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\
Опять в папке автозагрузки пусто...
Что-то тут не то...
Спасибо.
Lennyvets
18-08-2011, 21:25
попробовал изменить на »
тут вы неправы, можете сами проверить в командной строке:
Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.
C:\>set appdata
APPDATA=C:\Users\USERNAME\AppData\Roaming
C:\>
Что-то тут не то... »
есть косяк - пути с пробелами надо брать в кавычки:
xcopy %DiskRoot%\Win7ProSP1\Install\Имя_батника "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\"
Советую консольные команды пробовать выполнять в командной строке, тогда видно результат выполнения (или невыполнения)
Mishechka
19-08-2011, 13:46
Lennyvets,
Спасибо! Теперь всё сработало.
Вот мой файл Tweaks.cmd:
@echo off
:: Импорт твиков реестра
start /wait regedit /s %DiskRoot%\Win7ProSP1\Install\hkcu.reg
:: Перезагрузка компьютера
shutdown /r /t 1
:: Самоудаление данного пакетного файла
Del %0
exit
Скажите, нужно использовать Del %0 или Del /Q %0? Или в данном случае вопрос на подтверждение не выводится?
И ещё, из всех твиков, находящихся в файле hkcu.reg, не срабатывали только твики "Настройка визуальных эффектов", теперь и они срабатывают.
Но вот фрагмент моего файла ответов:
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<Order>15</Order>
<CommandLine>cmd /c start %DiskRoot%\Win7ProSP1\Install\install.cmd</CommandLine>
</SynchronousCommand>
<SynchronousCommand wcm:action="add">
<Order>25</Order>
<CommandLine>xcopy %DiskRoot%\Win7ProSP1\Install\Tweaks.cmd "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\"</CommandLine>
</SynchronousCommand>
</FirstLogonCommands>
У меня теперь получилось два файла: install.cmd и Tweaks.cmd, которые запускают один и тот же файл hkcu.reg.
Может мне убрать первую команду из файла ответов и все твики запускать из папки автозагрузки? Имеет это какое-либо значение или нет?
Спасибо.
Lennyvets
19-08-2011, 17:41
.Вот мой файл Tweaks.cmd »
ну.. вместо start /wait regedit /s для пакетных файлов есть консольная команда reg import, начиная с winxp, а после del %0 команды ненужны :) - файла-то уже не будет и ничего не выполнится, - это уже придирки, можете не обращать внимания.
Скажите, нужно использовать Del %0 или Del /Q %0? Или в данном случае вопрос на подтверждение не выводится? »
Подтверждение выводится, если использовать маску "все файлы":
del *.*
del Путь\*.*
так что один файл (или по маске, кроме *.*) можно удалять без этого ключа.
Может мне убрать первую команду из файла ответов и все твики запускать из папки автозагрузки? Имеет это какое-либо значение или нет? »
оставьте ту которая запускается последней. Если оставите обе команды - ничего страшного не случится, значения просто повторно перезапишутся.
Mishechka
22-08-2011, 14:21
вместо start /wait regedit /s для пакетных файлов есть консольная команда reg import »
В чём их отличие? Я думал, что start /wait regedit /s нужна для того, чтобы следующая команда не начала выполняться до завершения предыдущей...
Спасибо.
Lennyvets
22-08-2011, 19:05
В чём их отличие? »
reg - консольная утилита, и результат выводит в консоль.
Я думал, что start /wait regedit /s нужна для того, чтобы следующая команда не начала выполняться до завершения предыдущей... »
правильно думали :), но в пакетных файлах командный процессор будет ждать завершения и без start /w.
Вот что говорит start /? :
При запуске 32-разрядного приложения с графическим интерфейсом пользователя
обработчик команд CMD.EXE не ожидает завершения работы приложения перед
возвратом к приглашению командной строки. Подобное новое поведение НЕ
относится к запуску приложений из пакетных файлов.
Спасибо. »Пожалуйста.
Mishechka
23-08-2011, 10:34
reg - консольная утилита, и результат выводит в консоль. »
Для меня это - тёмный лес...
Спасибо.
привет всем! Все бы хорошо я понял что лучше импортировать HKLM с помощью SetupComplete.cmd,
а Импорт HKU и HKCU в профиль Default User
А каким мне способом можно импортировать HKCR?
noyhay, ответ есть в статье по ссылке из шапки (CTRL+F - HKCR)
Vadikan, Спасибо большое, читал видать не внимательно)
Если вы хотите, чтобы изменения затронули всех пользователей, то либо импортируйте параметры HKCR вместе с HKCU, либо импортируйте параметры в раздел HKEY_LOCAL_MACHINE\Software\Classes.
У меня пару вопросов (статью http://www.oszone.net/8597/Importing_7_Vista_Tweaks прочел внимательно)
У меня имеются твики вида (файл HKCR.reg):
Windows Registry Editor Version 5.00
;Добавление в меню Мой Компьютер - Диспетчер устройств;
[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\4]
@="Диспетчер устройств"
"Icon"="devmgr.dll,4"
[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\4\command]
@="mmc devmgmt.msc"
я его должен интегрировать вместе с твиками для HKCU.reg (только твики HKCU предварительно переименовав HKEY_CURRENT_USER и/или HKCU на HKEY_USERS\Custom)
reg load HKEY_USERS\Custom "%~dp0Mount\Users\Default\NTUSER.DAT"
reg import "%~dp0Tweaks\HKCU.reg"
reg import "%~dp0Tweaks\HKCU_IE9.reg"
reg import "%~dp0Tweaks\HKCR.reg"
т.е. в моем случае HKEY_CLASSES_ROOT не нужно изменять (править) и импорт можно производить командой которую я привел выше?
А можно ли интегрировать твики таким же способом для HKEY_LOCAL_MACHINE (файл HKLM.reg)?
пример:
Windows Registry Editor Version 5.00
;отключить автоматическое обновление
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update]
"AUOptions"=dword:00000001
командой
reg import "%~dp0Tweaks\HKLM.reg"
вместе с остальными, и я так понимаю править разделы для HKEY_LOCAL_MACHINE не нужно?
timon45, как я понял, вы вносите все твики в образ. В этом случае я бы импортировал твик HKCR в HKLM\Software\Classes, подключив куст SOFTWARE из system32\config.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.