Архив за месяц: Июль 2007

Решение проблем с локальными учетными записями без пароля

По умолчанию в Windows XP и Server 2003 групповая политика настроена таким образом, что локальные учетные записи без пароля имеют лишь право локального входа, поэтому не выполняются задания планировщика, отсутствует доступ по сети к компьютерам рабочей группы и т.п.

Для решения проблемы нужно установить пароль учетной записи (пусть даже простой) или отключить параметр групповой политики: запустить gpedit.msc, перейти по пути Computer configuration — Windows settings — Security settings — Local policies — Security options (Конфигурация компьютера — Конфигурация Windows — Параметры безопасности — Локальные политики — Параметры безопасности) и переключить параметр политики «Accounts: Limit local account use of blank passwords to console logon only» (Учетные записи: ограничить использование пустых паролей только для консольного входа) в состояние Disabled (Отключить).

Установка параметров безопасности по умолчанию для объектов Active Directory

Setting default security permissions for Active Directory objects. Setting inheritance of security permissions for Active Directory objects.

Следующий скрипт назначает параметры безопасности по умолчанию согласно текущей схемы домена и включает наследование для объектов типа Computer, Contact, Group, User и всех их дочерних объектов, находящихся в указанном Organizational Unit.

@echo off
set query="OU=SameOrgUnit,DC=somedomain,DC=local"

dsquery.exe computer %query% > computers.txt
for /f "tokens=1 delims=" %%x IN (computers.txt) do dsacls.exe %%x /P:N /I:T /S
del /q computers.txt

dsquery.exe contact %query% > contacts.txt
for /f "tokens=1 delims=" %%x IN (contacts.txt) do dsacls.exe %%x /P:N /I:T /S
del /q contacts.txt

dsquery.exe group %query% > groups.txt
for /f "tokens=1 delims=" %%x IN (groups.txt) do dsacls.exe %%x /P:N /I:T /S
del /q groups.txt

dsquery.exe user %query% > users.txt
for /f "tokens=1 delims=" %%x IN (users.txt) do dsacls.exe %%x /P:N /I:T /S
del /q users.txt

Пересылка сообщений как вложений с помощью Microsoft Office Outlook

Если сообщений несколько, выбирать в списке сообщений и нажать кнопку «Переслать» (или Ctrl-F).
Если сообщение одно (способы работают и для нескольких):
1. Выбрать в списке сообщений, перетащить мышью в окно создания сообщения.
2. Выбрать в списке сообщений, Правка -> Копировать (или Ctrl-C), в окне создания сообщения установить курсор в тело письма, Правка — Вставить (или Ctrl-V).

Используем Remote Assistance и Remote Desktop для доступа к рабочим столам пользователей

Многие администраторы используют для доступа к рабочим столам пользователей Remote Administrator, он же Radmin. Это не совсем правильный подход — ведь программа стоит денег, да и метод передачи изображения является не самым оптимальным.

Я предлагаю воспользоваться встроенными в систему возможностями по управлению: Remote Assistance (Удаленный помощник) и Remote Desktop (Удаленный рабочий стол) которые основаны на MS Terminal Services (Службы терминалов Майкрософт). Преимущества данного подхода заключаются, как минимум, в низких нагрузках на процессор удаленной станции и канал связи. Основным отличием Remote Assistance от Remote Desktop является возможность работать с консолью пользователя без отключения последнего. Ведь для того, чтобы подключиться с помощью Remote Desktop к машине под управлением Windows XP с выполненным локальным входом, вам нужно знать пароль активного пользователя (при подключении консоль будет заблокирована, а при разблокировке будет отключена терминальная сессия), в противном случае его сессия будет закрыта и вы войдете в систему под тем пользователем, которого вы указали при подключении. Т.е. терминальные службы Windows XP всегда работают только с одной консольной сессией, к которой нельзя иметь больше одного подключения, поэтому для данного случая следует использовать Remote Assistance. С другой стороны, с помощью Remote Assistance нельзя подключиться к машине под управлением Windows XP, на которой не выполнен локальный вход — в данном случае следует использовать Remote Desktop.

Я расскажу, как использовать Remote Assistance и Remote Desktop, для включения и настройки будем использовать групповую политику домена.

Включаем и настраиваем Remote Desktop.

Computer configuration — Administrative templates — Windows components — Terminal services (Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Службы терминалов).
Включаем доступ: Allow users to connect remotely using Terminal services (Разрешать удаленное подключение с использованием служб терминалов) — Enabled (Включено).
Настраиваем на случай, если потребуется подключиться к активной сессии: Set rules for remote control of Terminal services user sessions (Устанавливает правила удаленного управления для сеансов пользователей служб терминалов) — Enabled (Включено).
Предоставлять права на доступ к Remote Desktop обычно не требуется, т.к. по умолчанию в политике Computer configuration — Windows settings — Security settings — Local policies — User rights assignment — Allow logon through Terminal services (Конфигурация компьютера — конфигурация Windows — Параметры безопасности — Назначение прав пользователя — Разрешать вход в систему через службу терминалов) указаны локальные группы Administrators (Администраторы) и Remote Desktop users (Пользователи удаленного рабочего стола), что является достаточным.

Включаем и настраиваем Remote Assistance.

Computer configuration — Administrative templates — System — Remote Assistance (Конфигурация компьютера — Административные шаблоны — Система — Удаленный помощник).
Включаем доступ: Offer Remote Assistance (Разрешить предложение удаленной помощи) — Enabled (Включено) — Allow helpers to remotely control the computer (Помощники могут управлять компьютером), Show (Показать) — добавляем пользователей или группы домена, которым будет разрешено подключаться без приглашения. При этом на машинах будет автоматически создана локальная группа Offer Remote Assistance Helpers (Группа удаленных помощников), членами которой будут являться указанные в групповой политике пользователи.
Если требуется включить возможность отправки приглашений пользователями, то: Solicited Remote Assistance (Запрошенная удаленная помощь) — Enabled (Включено) — Allow helpers to remotely control the computer (Помощники могут управлять компьютером), Maximum ticket time (value) (Максимальное время билета (значение)) — 30, Maximum ticket time (units) (Максимальное время билета (единиц)) — Days (дн.).

На этом основные этапы настройки закончены. Следует отметить, что для работы Remote Assistance требуется, чтобы служба Help & Support (Справка и поддержка) была запущена, а службы Terminal services (Служба терминалов) и Remote Desktop Help Session Manager (Диспетчер сеанса справки для удаленного рабочего стола) имели возможность запуска (не отключены).

Для подключения к пользовательской машине с помощью Remote Desktop необходимо использовать приложение Remote Desktop Connection (Подключение к удаленному рабочему столу).

Для подключения к пользовательской машине с помощью Remote Assistance необходимо использовать Help and Support Center (Центр справки и поддержки), страница подключения спрятана в разделе Tools (Служебные программы). Для прямого перехода можно использовать ярлык: hcp://CN=Microsoft%20Corporation,L=Redmond,S=Washington,C=US/Remote%20Assistance/Escalation/unsolicited/unsolicitedrcui.htm

Теперь стоит упомянуть об одном не очень приятном моменте. Remote Assistance всегда запрашивает у пользователя разрешение на подключение и переход в режим управления. Microsoft однозначно утверждает, что путей для отключения запроса не существует. Это очень неудобно, ведь иногда пользователя нет на рбочем месте и некому разрешить подключение. Но на самом деле лазейка есть. Суть заключается в следующем: в файл C:\WINDOWS\PCHealth\HelpCtr\System\Remote Assistance\helpeeaccept.htm в конец функции LoadVariables (после btnDecline.focus()) необходимо добавить строку «DoAccept();» (без кавычек), а в файл C:\WINDOWS\PCHealth\HelpCtr\System\Remote Assistance\Interaction\Server\TakeControlMsgs.htm в конец функции InitiateMsg (перед последним return, если он есть) — «onClickHandler(0);» (так же без кавычек). Теперь подключение и переход в режим управления будут осуществляться без запросов. Для того, чтобы завершить подключение не оставляя на рабочем столе пользователя окна Remote Assistance, просто закройте его в режиме управления 🙂

О правильной настройке брандмауэра Windows для приема удаленной помощи можно почитать в статье KB301527.

Вот, пожалуй, и все, что я хотел рассказать. Комментарии и вопросы приветствуются.

Update: Настоятельно рекомендую прочитать все комментарии к этой статье.

Update2: Я обнаружил, что в переводе статьи KB301527 отсутствуют два раздела, приведенные в англоязычном варианте. Ключевой момент: т.к. для предложения удаленной помощи используется RPC, то помимо портов TCP/135 и TCP/3389, необходимо открыть все порты TCP выше 1024. Можно, конечно, воспользоваться KB300083 и ограничить диапазон портов DCOM.

Расширение возможностей Microsoft Indexing Service с помощью IFilter

По умолчанию MS Indexing Service обладает достаточно скромным функционалом — умеет работать с малым числом форматов и не производит поиск документов в архивах. Расширение возможностей производится с помощью подключаемых модулей — IFilter.

Для поиска по всем документам MS Office, придется его установить (если требуется поиск по документам Visio — установить дополнительно).

Для поиска по документам в формате PDF нужно установить Acrobat Reader.

Конечно, при наличии желания, можно изготовить набор из библиотек и командных файлов, дабы не заморачиваться каждый раз с установкой таких достаточно больших программ. Лично мне в данный момент такой вариант не требуется 😉

Для поиска по файлам CHM, HLP, MHTML, а так же внутри архивов CAB, RAR, ZIP (включая самораспаковывающиеся), необходимо скачать соответствующие IFilters с замечательного сайта www.citeknet.com.

Там же есть очень полезная утилита IFilterExplorer, которая покажет все установленные в системе IFIlters и расскажет какой из них какие документы обрабатывает.

Если требуется создать свою собственную страницу поиска, то можно почитать вот эту статью или обратиться к первоисточнику — MSDN (разделы: Creating Query Forms, Highlighting Search Hits).

Русская морфология для Microsoft Indexing Service

MS Indexing Service — встроенная в систему служба полнотекстового поиска по документам. В справке очень подробно расписаны все аспекты работы с данной службой. Как обычно, русская морфология при поиске отсутствует. Чтобы исправить этот досадный факт, необходимо раздобыть файлы noiseRUS.txt, rusdict.lex, ruslr.dll из дистрибутива MS SQL Server (можно даже Express Edition with Advanced Services). Копируем в одну папку вышеуказанные файлы, а так же setup.cmd и setup.reg.

Содержимое setup.cmd:
@echo off
net stop cisvc
copy /y noiseRUS.txt %systemroot%\system32
copy /y rusdict.lex %systemroot%\system32
copy /y ruslr.dll %systemroot%\system32
regsvr32 /s %systemroot%\system32\ruslr.dll
regedit /s setup.reg
net start cisvc

Содержимое setup.reg:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ContentIndex\Language\Russian_Russian]
"ISAPIIDQErrorFile"="/iissamples/issamples/IDQError.htx"
"ISAPIHTXErrorFile"="/iissamples/issamples/HTXError.htx"
"ISAPIRestrictionErrorFile"="/iissamples/issamples/ResError.htx"
"ISAPIDefaultErrorFile"="/iissamples/issamples/DefError.htx"
"Locale"=dword:00000419
"NoiseFile"="noiseRUS.txt"
"StemmerClass"="{20036414-F1AF-11D2-A57F-006052076F32}"
"WBreakerClass"="{20036404-F1AF-11D2-A57F-006052076F32}"

Для установки необходимо запустить командный файл setup.cmd.

Русская морфология при поиске в Windows Sharepoint Services 3.0

По умолчанию поиск в Windows Sharepoint Services (WSS) 3.0 не использует русскую морфологию. Чтобы исправить этот досадный факт, необходимо раздобыть библиотеки naturallanguage6.dll, nlsdata0019.dll, nlslexicons0019.dll. Их можно взять из русского MOSS 2007 или Windows Vista Ultimate/Enterprise (возможно, есть и в других выпусках). Копируем в одну папку библиотеки, файлы setup.cmd и setup.reg.

Содержимое setup.cmd:
@echo off
net stop spsearch
copy /y naturallanguage6.dll "C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN"
copy /y nlsdata0019.dll "C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN"
copy /y nlslexicons0019.dll "C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN"
regedit /s setup.reg
net start spsearch
iisreset /noforce

Содержимое setup.reg:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0\Search\Setup\ContentIndexCommon\LanguageResources\Default\Russian]
"IsInstalled"=dword:00000001
"Locale"=dword:00000419
"StemmerClass"="{E06A0DDD-E81A-4e93-8A8D-F386C3A1B670}"
"StemmerDLLPathOverride"="C:\\Program Files\\Common Files\\Microsoft Shared\\web server extensions\\12\\BIN\\naturallanguage6.dll"
"WBDLLPathOverride"="C:\\Program Files\\Common Files\\Microsoft Shared\\web server extensions\\12\\BIN\\naturallanguage6.dll"
"WBreakerClass"="{2CB6CDA4-1C14-4392-A8EC-81EEF1F2E079}"

Для установки необходимо запустить командный файл setup.cmd.

Взято отсюда.

Резервное копирование метабазы IIS

Internet Information Services (IIS) metabase backup.

Запускаем планировщиком вот такой командный файл с нужной периодичностью (можно несколько раз в день):

@echo off
for /f "delims=. tokens=1,2,3" %%a in ("%date%") do cscript.exe /nologo %systemroot%\system32\iisback.vbs /backup /b %%c_%%b_%%a
forfiles /p %systemroot%\system32\inetsrv\metaback /m *.* /d -14 /c "cmd /c del /q /s @path"
copy /y %systemroot%\system32\inetsrv\metaback\*.* x:\web\iis
forfiles /p x:\web\iis /m *.* /d -14 /c "cmd /c del /q /s @path"

Комментарии:
1. Создается архивная копия метабазы с названием, равным текущей дате и версией NEXT_VERSION.
2. Удаляются архивные копии старше 14 дней в каталоге архивных копий метабазы IIS.
3. Содержимое каталога архивных копий метабазы IIS копируется на сервер резервного копирования.
4. Удаляются архивные копии старше 14 дней на сервере резервного копирования.