Kravchenko's profileТехноблогPhotosBlogListsMore Tools Help

Blog


    10/11/2008

    Расширенная кнопка завершения работы в меню Пуск Windows XP

    Обычно, завершая работу Windows мы нажимаем соответствующую кнопку в меню Пуск и затем выбираем необходимое действие в открывшемся диалоговом окне. В Windows Vista кнопка завершения работы в меню Пуск позволяет здесь же выбрать действие.
    shutdown1

    Рассмотрим вариант создания похожего меню для Windows XP. Для осуществления задуманного воспользуемся утилитой NirCmd и наработками Herby.

    Для начала пара предостережений: обязательно сделайте резервную копию реестра перед применением reg-файлов! И еще: данный способ не работает в классическом меню Пуск.

    Способ заключается в замене стандартной кнопки завершения работы в меню Пуск на свою - расширенную.

    1. Загрузите архив

      Разархивируйте его в отдельную папку.
    2. Скопируйте файл NirCmd.exe в папку C:\Windows\System32\ (при условии, что ОС установлена на диске С)
    3. Примените файл add_shutdown.reg (при запуске файла от вас потребуется подтверждение внесения изменений в реестр). Применяя этот файл реестра вы добавите в меню Пуск кнопку выключения компьютера с дополнительным меню.
    4. Примените файл remove_default_buttons.reg.
      Внимание! После применения этого файла вы отключите отображение в меню Пуск кнопок "Завершение работы" и "Выход из системы", а так же не будет работать сочетание клавиш Alt+F4
    5. Перезагрузите компьютер

    В результате выполнения этих действий в стандартном меню Пуск Windows XP будет доступна кнопка "Выключение", нажатие на которую инициирует завершение работы компьютера не вызывая диалогое окно с выбором действия. Эта кнопка снабжена контекстным меню, которое вызывается по нажатию на ней правой клавиши мыши и содержит дополнительные пункты, такие как: Выключение (по умолчанию), Ждущий режим, Блокировка, Завершение сеанса и Перезагрузка.
    shutdown2

    Вы можете просто добавить расширенную кнопку завершения работы в качестве дополнительной, при этом оставив стандартные кнопки "Завершение работы" и "Выход из системы". Для этого просто не применяйте файл remove_default_buttons.reg

    Для удаления расширенной кнопки завершения работы из меню Пуск выполните следующие действия.

    1. Примените файл remove_shutdown.reg
    2. Примените файл restore_default_buttons.reg
    3. Удалите файл NirCmd.exe из папки C:\Windows\System32\
    4. Вызовите диспетчер задач (Ctrl+Shift+Esc)
    5. На вкладке Процессы найдите процесс explorer.exe
    6. Нажмите правую клавишу на процессе explorer.exe и выберите в контекстном меню пункт "Завершить процесс"
    7. В меню "Файл" выберите пункт "Новая задача (Выполнить...)"
    8. В поле "Открыть" напишите explorer и нажмите ОК

    После этого в меню Пуск будут восстановлены стандартные кнопки завершения работы, а добавленная нами ранее будет удалена.

    Вы можете, при желании, изменить расположение пунктов меню кнопки, можете добавить свои пункты, благо утилита NirCmd.exe позволяет делать очень многое и богата на функционал. Для этого вам нужно будет редактировать файл add_shutdown.reg, добавляя в него строки по аналогии с существующими.

    Альтернативный UAC от Symantec

    __ Каждый пользователь Windows Vista знает о существовании Контроля Учетных Записей - User Accoun Control (UAC), и большинству он надоедает буквально с первых же минут :) Вместе с тем, функции UAC направлены на благое и позволяют предотвратить несанкционированные изменения в системе. Пользу от UAC вполне можно охарактеризовать цитатой из справки Windows: "UAC обеспечивает защиту, запрашивая разрешение или пароль‌ администратора перед совершением потенциально опасных для компьютера действий или при изменении параметров, которые могут оказать влияние на работу других пользователей. Проверяя эти действия перед запуском, UAC помогает предотвратить установку вредоносного программного обеспечения и шпионских программ, а также попытки этих программ внести несанкционированные изменения в компьютер." И тем не менее, пользователи, которые кроме серфинга по интернету и работы с калькулятором периодически совершают набеги к опциям настройки системы, осмеливаются запускать редактор реестра или редакторы политик или позволяют себе прочие кощунственные действия с точки зрения UAC в конце концов попросту отключают его, невзирая на преимущества и общую пользу UAC.

    Я уже писал о запуске оснасток и приложений, требующих повышения прав, без запроса UAC и в многочисленных обсуждениях UAC не раз сетовал на отсутствие у него одной элементарной (по моему мнению) составляющей - режима обучения, то есть возможности запоминать мой выбор при запросе на повышение прав для каждого приложения или действия, требующего такое повышение. Эта "мелочь", по моему мнению, могла бы сделать работу с UAC существенно удобнее и продлила бы время его "жизни" :) Ходили слухи о том, что режимом обучения UAC обзаведется в Windows 7, но во-первых когда то будет, а во-вторых поживем - увидим.

    Конечно, не я один думал о таком функционале UAC и разработчики не стоят на месте, вот и Symantec, в рамках Norton Labs представила Beta-версию утилиты UAC Tool, которая заменяет стандартные диалоги запроса на повышение прав своими и предоставляет расширенные возможности использования UAC.

    После установки утилиты запрос на повышение прав будет выглядеть уже вот так:
    nuac2

    Как видите, у нас появилась возможность сохранить выбранное действие для приложения или действия, требующего повышения прав, а так же мы можем увидеть информацию о том что именно запрашивает это повышение. Особенно важно, что утилита запоминает выбранное действие для каждого пользователя отдельно и если в одной учетной записи вы сохранили выбранное действие, то в другой получите запрос на такое же. Естественно, при этом UAC должен быть включен. Лично для меня этого почти достаточно, правда есть пара недостатков, о них ниже.

    Мне не удалось обнаружить возможности настройки программы, хоть по большому счету там нечего и настраивать, но мне кажется, что необходима возможность управления сохраненными данными, то есть смены действия для сохраненных запросов или хотя бы их удаления. Ведь если я на запрос повышения прав для запуска того же msconfig отвечу Cancel и сохраню свой выбор, то в следующий раз он просто не запустится и придется отключать UAC или удалять утилиту для его запуска.
    После непродолжительных поисков удалось обнаружить место сохранения запросов, они располагаются в реестре, в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Symantec\SymConsent\Data
    каждый параметр в этом разделе имеет тип DWORD, имя типа 25F48470A72DCCC7F058C03A6CD1C664 и значение 0 для разрешенных запросов. Если значение параметра изменить на 1, то запустить уже не получится, получим либо ошибку либо молчаливый "незапуск". Имена параметрам присваиваются видимо по какому-то хэшу действия, вызвавшего запрос на подтверждение, поэтому идентифицировать какой параметр к какому действию относится тяжеловато. Если параметр удалить, то запрос на подтверждение будет показан при запуске действия, которое ранее было сохранено в этом параметре.

    Возможно утилита обзаведется дополнительными возможностями, не забывайте, что пока это только beta-версия. Возможно она будет бесплатной :) я не знаю, но в целом утилита мне понравилась - просто и удобно.


    10/5/2008

    Управление дисками в Windows Vista

    В Windows Vista программа управления дисками дает гораздо больше возможностей чем аналогичная в Windows XP, начать хотя бы с возможности управления размером раздела. Конечно количество операций с разделами не такое как в специализированных программах (таких как Acronis Disk Director например), да и объединение разделов без потери данных на одном из них пока невозможно, но не нужно забывать, что это не специализированная программа, а встроенный в ОС функционал и, в общем и целом, он достаточно удобен и не требует ни дополнительных программ, ни каких-то особенных знаний или опыта.
    Давайте попробуем провести несложную операцию по созданию нового раздела, выделив для него пространство из существующего. В примере будет использована конфигурация с одним разделом на диске, в таком случае возможность создания второго раздела как нельзя кстати :)

    1. Откройте оснастку Управление дисками
      Нажмите Пуск - В строке поиска напишите diskmgmt.msc - нажмите Enter
      Или на ярлыке Мой компьютер нажмите правую клавишу мыши и выберите пункт Управление, затем в левой части консоли Управление компьютером выберите Управление дисками
      diskmgmt1

      Вы увидите все диски, подключенные в данный момент и все разделы на них. В данном случае нас будет интересовать диск С, за счет свободного пространства на котором мы и будем создавать новый раздел.
      Прежде чем начать я бы хотел подготовить назначение букв дисков по своему усмотрению. Мне, например, удобно когда логические диски обозначены по алфавиту один за другим, а уже за ними CD/DVD-привод, сменные носители и подключенные сетевые диски.
      Поэтому начнем с изменения буквы диска нашего DVD-привода, которому в данном случае назначена буква D.

      1. В Управлении дисками нажмите правую клавишу мыши на диске D и в контекстном меню выберите пункт "Изменить букву диска или путь к диску"
        diskmgmt2
      2. В открывшемся окне нажмите кнопку Изменить
        diskmgmt3
      3. В следующем выберите из списка новую букву, которую мы назначим приводу (в моем случае это буква E)
        diskmgmt4
      4. Нажмите ОК и в этом окне и Да в окне с предупреждением системы.
      Теперь, когда мы создадим новый том, ему будет назначена буква D.

       

    2. На диске С нажмите правую клавишу мыши и выберите пункт "Сжать том"
      diskmgmt5
      После этого вы увидите следующее сообщение
      diskmgmt6

    3. В следующем окне мастера управления разделами вы увидите информацию об общем дисковом пространстве диска C, доступном дисковом пространстве, которое может быть выделено в другой раздел, а также вы сможете указать количество мегабайт, на которые будет сжат текущий раздел.
      diskmgmt7 
      В этом же окне нажмите кнопку Сжать для начала сжатия раздела.

    4. После выполнения процедуры сжатия, которая займет некоторое время, в Управлении дисками вы увидите новый, нераспределенный раздел.
      diskmgmt8

    5. Теперь нам нужно создать новый том, назначить ему букву и отформатировать.
      Нажмите правую клавишу мыши на новом разделе и выберите пункт "Создать простой том..."
      diskmgmt9

    6. В первом окне мастера создания нового тома нажмите Далее. Укажите размер нового тома. По умолчанию предлагается использовать все доступное пространство в нераспределенном разделе. нас это устраивает, поэтому нажимаем Далее.
      diskmgmt10

    7. На следующем шаге вам будет предложено выбрать букву диска для нового тома. В нашем случае мы позаботились об этом еще на шаге 1.1, поэтому нажимаем Далее
      diskmgmt11

    8. В следующем окне мастера нам предложат отформатировать новый раздел, выбрать размер кластера и указать метку. По умолчанию новая метка обозначается как "Новый том", вряд ли вы захотите, чтоб в проводнике у вас это красовалось, поэтому укажите свою метку тома или оставьте это поле пустым. Так как у нас новый раздел, я не вижу смысла делать полное форматирование, сделаем быстрое - это, как минимум, быстрее.
      diskmgmt12

    9. Следующий шаг подытожит все наши установки проделанные ранее с новым разделом и нам остается только нажать кнопку Готово
      diskmgmt13

    10. Теперь вы видите, что у нас вместо одного раздела С есть два - С и D
      diskmgmt14

    Вот и все, мы "откусили" немного места на диске С и получили второй раздел, с чем и поздравляю :)

    Аналогичным образом можно увеличить диск C за счет другого раздела (следующего за С). Обязательным условием для этого является то, что раздел, следующий за первым (С) должен быть основным как и С, он не должен быть дополнительным, либо оба объединяемых тома расположены на одном дополнительном разделе. Естественно такая процедура предусматривает наличие нераспределенного пространства, а значит если мы будем делать "слияние" С и D, то без потери данных на последнем ничего не получится, так как необходимо будет удалить том прежде чем использовать его для расширения.
    В остальном последовательность практически обратная.

    1. Удаляем диск D в Управлении дисками. Для этого на диске D нажмите правую клавишу мыши и выберите пункт Удалить том
      diskmgmt15
      Вам будет показано предупреждение системы о том, что все данные на удаляемом разделе будут потеряны, придется согласиться :)
      diskmgmt16
    2. Теперь мы имеет нераспределенное пространство, которым и воспользуемся для увеличения объема диска С
      diskmgmt17
      Нажмите правую клавишу мыши на диске С и выберите в контекстном меню пункт "Расширить том"
      diskmgmt18
    3. Запустится мастер управления томом, на первом окне мастера нажмите кнопку Далее и откроется следующее окно, в котором вам будет предоставлен выбор разделов, за счет которых будет расширен диск С. В нашем случае такой раздел один и он уже выбран по умолчанию.
      diskmgmt19
    4. Далее будет показана собранная информация и после нажатия кнопки Готово диск С будет увеличен.
      diskmgmt20 

    Вот, собственно, и все - мы получили один большой раздел вместо двух поменьше и при этом на первом разделе все данные остались нетронутыми.
    diskmgmt21

    10/4/2008

    Как получить доступ к файлам, папкам, разделам реестра в Windows Vista

    Казалось бы - избитая тема, но не реже чем раз в неделю на форуме начинаются пространные объяснения как же все-таки получить доступ к какому-либо объекту. Чаще всего это конечно папки или файлы, иногда разделы реестра. Попробую собрать воедино способы получения доступа к локальным объектам.

    При отсутствии доступа к локальному объекту вы не можете управлять его разрешениями, отсутствие такой возможности может быть компенсировано сменой владельца объекта, после чего вы сможете управлять его разрешениями. Сделать это можно несколькими способами, рассмотрим их по порядку.

    Способ 1. Использование графического интерфейса (GUI)

    1. Откройте проводник (редактор реестра) и перейлите к папке/файлу/разделу реестра, к которому необходимо получить доступ.
    2. Для файла или папки.
      1. Нажмите правую клавишу мыши и выберите в конекстном меню Свойства
      2. Перейдите на вкладку Безопасность
      3. Нажмите кнопку Дополнительно
        owner1
      4. Перейдите на вкладку Владелец
      5. Нажмите кнопку Изменить
        owner2
      6. Установите курсор на группу Администраторы или на имя своей учетной записи и нажмите ОК. В случае с папкой также вероятно вам понадобится отметка параметра "Заменить владельца подконтейнеров и объектов".
        owner3
    3. Для раздела реестра.
      1. Нажмите правую клавишу мыши на подразделе реестра (в левой части редактора реестра) и выберите пункт Разрешения
      2. Нажмите кнопку Дополнительно
      3. Остальные шаги идентичны шагам 2.4-2.6
    4. Теперь вы можете выставить разрешения своей учетной записи.
      1. На вкладке Безопасность нажмите кнопку Изменить под списком пользователей и групп
        owner4
      2. Нажмите кнопку Добавить
        owner5
      3. Введите имя своей учетной записи и нажмите ОК
        owner6
      4. Выставьте разрешения на объект добавленной учетной записи
        owner7

     Способ 2. Использование утилит командной строки takeown и icacls (применим только к файлам, папкам и дискам)

    1. Нажмите Пуск VistaStartButton в строке поиска напишите cmd - на найденном файле нажмите правую клавишу мыши и выберите пункт Запуск от имени администратора
      owner8

      Примечание. Запуск от имени администратора в данном случае обязателен независимо от того какаими правами обладает учетная запись в которой вы работаете в данный момент. Исключение может составлять только случай когда вы работаете во встроенной учетной записи Администратор, которая по умолчанию отключена.
    2. В окне cmd написшите следующую команду:
      takeown /f "C:\Program Files\ERUNT\ERUNT.EXE"
      Примечание. Здесь и далее полный путь и файл представлены в качестве примера и вместо "C:\Program Files\ERUNT\ERUNT.EXE" вы должны написать путь к файлу или папке, к которым необходимо получить доступ.
      Обратите внимание на то, что если в пути присутствуют пробелы (как в примере), то путь должен быть заключен в кавычки.
      В команде используется утилита takeown, которая позволяет восстанавливать доступ к объекту путем переназначения его владельца. Полный синтаксис утилиты вы можете получить по команде takeown /?
    3. В командной строке напишите следующую команду
      icacls "C:\Program Files\ERUNT\ERUNT.EXE" /grant Blast:F
      Примечание. В данной команде помимо пути к файлу необходимо указать и имя учетной записи, которой будут переданы разрешения на объект, соответственно вы должны будете написать свое имя пользователя.
      После применения этой команды вам будет показано сообщение об обработке файлов и папок. В случае если таким образом не удастся получить полный доступ к объекту, проделайте процедуру повторно, загрузившись в безопасный режим.
      В этой команде используется утилита icacls, позволяющая управлять списками управления доступом (ACL), а значит и разрешениями для пользователей и процессов использовать  файлы и папки. Синтаксис утилиты вы сможете узнать по команде icacls /?

    Способ 3. Пункт смены владельца объекта в контекстном меню проводника.

    Для упрощения процедуры смены владельца вы можете добавить соответствующий пункт в контекстное меню проводника.
    В предлагаемом варианте также используются утилиты командной строки takeown и icacls с определенными параметрами, а полученная команда установит владельцем объекта, на котором будет применяться пункт меню, группу Администраторы (или Administrators в английской версии ОС).

    Для добавления пункта меню "Смена владельца" в русской версии Windows Vista примените этот твик реестра:
    Примечание: подробнее о применении твиков реестра вы можете прочитать здесь: Применение твиков реестра
    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\*\shell\runas]
    @="Смена владельца"
    "NoWorkingDirectory"=""

    [HKEY_CLASSES_ROOT\*\shell\runas\command]
    @="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant администраторы:F"
    "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant администраторы:F"

    [HKEY_CLASSES_ROOT\Directory\shell\runas]
    @="Смена владельца"
    "NoWorkingDirectory"=""

    [HKEY_CLASSES_ROOT\Directory\shell\runas\command]
    @="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant администраторы:F /t"
    "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant администраторы:F /t"

    Для добавления пункта меню "Take Ownership" в английской версии Windows Vista примените этот твик реестра:

    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\*\shell\runas]
    @="Take Ownership"
    "NoWorkingDirectory"=""

    [HKEY_CLASSES_ROOT\*\shell\runas\command]
    @="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
    "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"

    [HKEY_CLASSES_ROOT\Directory\shell\runas]
    @="Take Ownership"
    "NoWorkingDirectory"=""

    [HKEY_CLASSES_ROOT\Directory\shell\runas\command]
    @="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"
    "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"

    Для удаления этого пункта меню (независимо от языка системы) можете использовать следующий твик реестра:

    Windows Registry Editor Version 5.00

    [-HKEY_CLASSES_ROOT\*\shell\runas]

    [-HKEY_CLASSES_ROOT\Directory\shell\runas]


    Готовые файлы реестра для добавления и удаления этого пункта меню:

    10/1/2008

    Как сохранить рисунок рабочего стола при изменении темы оформления

    visual Когда вы меняете тему оформления Windows Vista или Windows XP, изменяются многие визуальные элементы, в том числе и рисунок рабочего стола. Зачастую же это не нужно и мы хотим видеть прежний фон при смене стиля. Исключить замену фона рабочего стола доаольно просто, для этого нам понадобится изменить значение всего одного параметра реестра.

    Откройте редактор реестра (regedit.exe) и перейдите по следующему пути:

    HKEY_CURRENT_USER\Software\Microsoft\Plus!\Themes\Apply

    Здесь найдите параметр Desktop wallpaper и измените его значение на 0 (ноль).

    Теперь при изменении темы оформления все визуальные элементы будут изменены за исключением фона рабочего стола.