PDA

Показать полную графическую версию : Маленькие хитрости автоустановки


Страниц : 1 2 3 4 5 6 [7] 8 9 10 11

YuriPet
16-05-2007, 23:32
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"

Anton04
17-05-2007, 13:00
YuriPet

Я бы, свё же, воспользовался переменной %SYSTEMROOT% в данном примере. ;)

YuriPet
17-05-2007, 13:50
Anton04
Если вы о примере с использованием CMD-файла, то согласен :), а вот из REG-файла - сильно сомневаюсь... :unsure:
Как предлагаете "выдирать" букву системного диска, например, "D" (без двоеточия) ;)

Anton04
17-05-2007, 14:22
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"

vek
17-05-2007, 14:46
Где-то тут (http://forum.oszone.net/thread-84065.html) уже обсуждалось, что переменная из REG-файла отрабатывает некорректно. Решилось по-моему переходом на INF.
P.S. Я себе уже давно сконвертировал все твики в INF. Как-то удобней читается и обрабатывается.

Anton04
17-05-2007, 14:59
vek

Незнаю как там, а данном контексте всё работает на ура, я вообще всегда стараюсь отвязаться от конкретной буквы диска (и другим советую), т.к. никогда заранее не знаешь какая буква диска является системным разделом... ;)

YuriPet
17-05-2007, 15:03
Anton04[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\C] Выделено и подчеркнуто мной... :laugh:

Как предлагаете "выдирать" букву системного диска, например, "D" (без двоеточия)

Anton04
17-05-2007, 16:10
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", или что вы там напишете, по своему усмотрению.

amel27
20-05-2007, 12:10
Следующая утилитка поможет сэкономить место на жестком или 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

Anton04
29-06-2007, 16:17
EgOrus
amel27

Большое спасибо за скрипт "Переназначение букв приводов", но вот маленький нюанс, почему то не работает в WinXP SP1 (rus), в WinXP SP2 (rus) всё нормуль. В чём может быть заковырка?

Ещё бы хотельсь что-то подобное и для Windows 2000 SP4 заиметь... :blush2: реально!?

amel27
02-07-2007, 10:50
Anton04
в Win2K нет штатного DiskPart.exe, попробуте скопировать из XP

Anton04
02-07-2007, 11:17
amel27

Да пробовал я, не пашет она под Win2k :cry:

А, что можешь сказать по поводу Windows XP Pro SP1!? :swoon:

Дело в том, что именно из этой же копии делался Windows XP Pro SP2 и на нём всё работает... вооще непонятка какая-то... :wacko:

amel27
02-07-2007, 12:11
Anton04не пашет она под Win2k вроде пашет, только не видит всех приводов... отрабатываться будут только диски, отображаемые в режиме "управление дисками" диспетчера устройств... или проверь из командной строки:@echo list volume|diskpart

Anton04
03-07-2007, 14:02
amel27

Вот именно, что утилита то сама работает, а вот скрипт нет... похоже ведёт себя точно так же как в Windows XP Pro SP1 (rus)... :cry:

Я в скриптах так свинья в апельсинах... :blush2:

:help: :help: :help:

amel27
04-07-2007, 13:19
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

Anton04
04-07-2007, 16:11
amel27

Вауууу... :yahoo: работает! И подходит даже к WinXP SP1. Спасибо дружище! :hi: :UP:

P.S. А не мог бы ты прокомментировать изменения скрипта по сравнению со скриптом для winXP SP2. :blush2: Ну так, для будущих поколений. :biggrin:

amel27
05-07-2007, 02:59
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