PDA

Показать полную графическую версию : [статья] Применение твиков реестра 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.".

Затем изчезло окно батника, через пару секунд изчезло системное окно и пошла перезагрузка. После перезагрузки выяснилось, что всё отлично сработало. Правильно ли я сделал?

Системное окно имеет симпатичный вид, а вот окно батника страшное. Думаю, его нужно либо скрыть, либо свернуть.
Но возможно существует способ отследить окончание загрузки рабочего стола? Тогда отпадёт необходимость в таймауте, да и перезагрузку можно будет сделать без всяких окон?

Спасибо.

Vadikan
14-08-2011, 23:33
Думаю, его нужно либо скрыть, либо свернуть. »
Скрытие консольных окон (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

Спасибо.

Vadikan
16-08-2011, 15:43
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 - консольная утилита, и результат выводит в консоль. »
Для меня это - тёмный лес...

Спасибо.

noyhay
18-02-2012, 16:27
привет всем! Все бы хорошо я понял что лучше импортировать HKLM с помощью SetupComplete.cmd,
а Импорт HKU и HKCU в профиль Default User
А каким мне способом можно импортировать HKCR?

Vadikan
18-02-2012, 16:52
noyhay, ответ есть в статье по ссылке из шапки (CTRL+F - HKCR)

noyhay
18-02-2012, 17:03
Vadikan, Спасибо большое, читал видать не внимательно)
Если вы хотите, чтобы изменения затронули всех пользователей, то либо импортируйте параметры HKCR вместе с HKCU, либо импортируйте параметры в раздел HKEY_LOCAL_MACHINE\Software\Classes.

timon45
08-03-2012, 15:34
У меня пару вопросов (статью 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 не нужно?

Vadikan
08-03-2012, 15:42
timon45, как я понял, вы вносите все твики в образ. В этом случае я бы импортировал твик HKCR в HKLM\Software\Classes, подключив куст SOFTWARE из system32\config.




© OSzone.net 2001-2012