Показать полную графическую версию : Маленькие хитрости автоустановки
Страниц :
1
2
3
4
5
6
[
7]
8
9
10
11
Spirkaa
Если пожертвовать универсальностью (возможностью установки на любой раздел HDD), а ограничится только диском C:, то очень даже просто: Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\C]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\C\DefaultIcon]
@="C:\\WINDOWS\\system32\\sysdisk.ico"
YuriPet
Я бы, свё же, воспользовался переменной %SYSTEMROOT% в данном примере. ;)
Anton04
Если вы о примере с использованием CMD-файла, то согласен :), а вот из REG-файла - сильно сомневаюсь... :unsure:
Как предлагаете "выдирать" букву системного диска, например, "D" (без двоеточия) ;)
YuriPet
Собственно, а ты не сомневайся ;) Чем тебя такой вариант не устроит?:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\C]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\C\DefaultIcon]
@="%SystemRoot%\\ICO\\sysdisk.ico"
Где-то тут (http://forum.oszone.net/thread-84065.html) уже обсуждалось, что переменная из REG-файла отрабатывает некорректно. Решилось по-моему переходом на INF.
P.S. Я себе уже давно сконвертировал все твики в INF. Как-то удобней читается и обрабатывается.
vek
Незнаю как там, а данном контексте всё работает на ура, я вообще всегда стараюсь отвязаться от конкретной буквы диска (и другим советую), т.к. никогда заранее не знаешь какая буква диска является системным разделом... ;)
Anton04[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\C] Выделено и подчеркнуто мной... :laugh:
Как предлагаете "выдирать" букву системного диска, например, "D" (без двоеточия)
YuriPet
Ну извени я не понял о чём ты... и нечего смеятся... как объсняешь такой ответ и колучаешь. :tongue:
Для того она и индивидуальная иконка шоб привязываться к конкретной букве или папке.
jameszero
17-05-2007, 16:24
Могу немного дополнить твик YuriPet следующей строчкой:
Reg Add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\%HOMEDRIVE:~0,-1%\DefaultLabel" /ve /d "Local OS" /fСистемный диск после установки, будет именоваться не "Локальный диск", а "Local OS", или что вы там напишете, по своему усмотрению.
Следующая утилитка поможет сэкономить место на жестком или CD/DVD диске, упаковав файлы из пакета драйверов в CAB-архивы. Полученный пакет (в отличии от обычных 7z или RAR архивов) не теряет своей функциональности, его можно применять при любом типе установки - вручную или автоматически. Кроме того, из пакета будут удалены все лишние файлы (не определенные в INF).
прямой линк на закачку: http://www.msfn.org/board/index.php?act=attach&type=post&id=18747
обсуждение на MSFN: http://www.msfn.org/board/DrvComp_v20070519_t90020.html
EgOrus
amel27
Большое спасибо за скрипт "Переназначение букв приводов", но вот маленький нюанс, почему то не работает в WinXP SP1 (rus), в WinXP SP2 (rus) всё нормуль. В чём может быть заковырка?
Ещё бы хотельсь что-то подобное и для Windows 2000 SP4 заиметь... :blush2: реально!?
Anton04
в Win2K нет штатного DiskPart.exe, попробуте скопировать из XP
amel27
Да пробовал я, не пашет она под Win2k :cry:
А, что можешь сказать по поводу Windows XP Pro SP1!? :swoon:
Дело в том, что именно из этой же копии делался Windows XP Pro SP2 и на нём всё работает... вооще непонятка какая-то... :wacko:
Anton04не пашет она под Win2k вроде пашет, только не видит всех приводов... отрабатываться будут только диски, отображаемые в режиме "управление дисками" диспетчера устройств... или проверь из командной строки:@echo list volume|diskpart
amel27
Вот именно, что утилита то сама работает, а вот скрипт нет... похоже ведёт себя точно так же как в Windows XP Pro SP1 (rus)... :cry:
Я в скриптах так свинья в апельсинах... :blush2:
:help: :help: :help:
Anton04утилита то сама работает, а вот скрипт нетугу, пробуй:@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
Rem Тип обрабатываемых приводов и выделенные для них буквы
SET DRV_TYPE=DVD CD
SET DRV_FREE=N O P
Echo.
Echo.Progress: Проверяем наличие DiskPart...
DiskPart.Exe /? >nul 2>&1
IF %ERRORLEVEL% NEQ 0 (
Echo.
Echo.Progress: Файл DISKPART.EXE не найден, работа скрипта прервана!
PAUSE
EXIT
)
Echo.Progress: Определяем локализацию DiskPart...
DiskPart.Exe /?|Find "On computer:"
IF %ERRORLEVEL%==0 (
SET POS_VOL=7
SET POS_LTR=13
SET POS_TYP=37
) ELSE (
SET POS_VOL=4
SET POS_LTR=10
SET POS_TYP=34
)
echo.Progress: Вычисляем количество пропускаемых строк...
SET SKIP=0
FOR /F "tokens=1 delims=[]" %%A IN ('@echo list volume^|@diskpart^|find /N "DISKPART>"') Do IF !SKIP! EQU 0 SET /A SKIP=%%A+2
Echo.Progress: Формируем список устройств, фильтруем переназначенные ранее...
FOR /F "skip=%SKIP% tokens=*" %%A IN ('@echo list volume^|@diskpart') Do (
SET LINE=%%A
SET DRV_USED=!DRV_USED! !LINE:~%POS_LTR%,1!
CALL :FIND !LINE:~%POS_LTR%,1! "%DRV_FREE%"
IF !ERRORLEVEL!==1 FOR %%B IN (%DRV_TYPE%) DO CALL :TEST_DRIVE %%B
)
IF "%VOL_WORK%"=="" (
echo.
echo.Progress: Список переназначения пуст^^^! Скрипт завершил работу.
EXIT
)
Echo.Progress: Выполняем переназначение по сформированному списку...
Echo.
FOR %%A IN (%VOL_WORK%) DO (
CALL :FindNext
CALL :ASSIGN %%A !LTR!
SET DRV_USED=!DRV_USED! !LTR!
)
EXIT
Rem Обработка очередной строки команды DiskPart "list volume"
:TEST_DRIVE
CALL :LENGTH %~1
IF "%~1"=="!LINE:~%POS_TYP%,%LENGTH%!" SET VOL_WORK=!VOL_WORK! !LINE:~%POS_VOL%,1!
GOTO :EOF
Rem Вычисление длины параметра
:LENGTH
SET LENBUF=%~1
SET LENGTH=0
IF "%~1"=="" GOTO :EOF
:LENGTH_START
SET /A LENGTH+=1
IF ""=="!LENBUF:~%LENGTH%,1!" GOTO :EOF
GOTO :LENGTH_START
Rem Вызов команды назначения
:ASSIGN
(@echo select volume %~1&@echo assign letter=%~2)|diskpart|find /I "DiskPart:"
GOTO :EOF
Rem Вызов команды FIND
:FIND
@echo %~2|@find "%~1">nul
GOTO :EOF
Rem Поиск свободной буквы из заданного множества
:FindNext
For %%i in (%DRV_FREE%) Do (
@echo.%DRV_USED%|Find "%%i">nul
IF !ERRORLEVEL!==1 (
SET LTR=%%i
GOTO :EOF
)
)
Echo.
Echo.Скрипт прерван^! Список свободных букв исчерпан.
EXIT
amel27
Вауууу... :yahoo: работает! И подходит даже к WinXP SP1. Спасибо дружище! :hi: :UP:
P.S. А не мог бы ты прокомментировать изменения скрипта по сравнению со скриптом для winXP SP2. :blush2: Ну так, для будущих поколений. :biggrin:
Anton04не мог бы ты прокомментировать изменения скрипта почему-то DiskPart по разному выдает инфу о версии, соответственно смещение от начала файла до данных будет разным... вместо фиксированного смещения поставил автоопределение.
Sanja Alone
15-07-2007, 14:37
Дополнил статью Пауза в пакетном файле (http://wiki.oszone.net/index.php/Пауза_в_пакетном_файле). Таким образом можно организовать паузу в пакетном файле без использования внешних утилит. Ограничение данной версии: длительность паузы может составлять 1-60 секунд.
QUADamage
17-07-2007, 00:50
Небольшая хитрость, может кому-нить пригодится.
Создает скрытого пользователя TsInternetUser с правами администратора.
Пользователь не виден ни в окне приветствия, ни в панель управления - учетные записи пользователей, только в оснастке управления пользователями.
Я использую при установке на работе, очень помогает со всякими нерадивыми пользователями, либо когда надо что-то срочно сделать :)
Не забудте сменить пароль на свой ;)
net user TsInternetUser ВАШ_ПАРОЛЬ /add
net localgroup Администраторы TsInternetUser /add
net localgroup Administrators TsInternetUser /add
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC