ShS's Blog

Just another sysadmin's weblog

Archive for Декабрь 2009

Делимся своими профилями PowerShell

Posted by shs на 2009/12/28

Решил присоединиться к благородному движению по публикации профилей PowerShell. ;)

Собственно, вот он, мой профиль:

# Еще один алиас для get-help (мне так удобнее)
Set-Alias gh get-Help
#from PSCX
$IsElevated=$false
foreach ($sid in [Security.Principal.WindowsIdentity]::GetCurrent().Groups) {
    if ($sid.Translate([Security.Principal.SecurityIdentifier]).IsWellKnown([Security.Principal.WellKnownSidType]::BuiltinAdministratorsSid)) {
        $IsElevated=$true
    }
}
# Формируем приглашение командной строки и заголовок окна PoSh
Function Prompt  {
    #Поменяем заголовок окна
    (Get-Host).UI.RawUI.WindowTitle="PS # $env:computername # $env:userdomain\$env:username  #  $(Get-Location)"
    #Определяем значение переменной $PromptStr, которая будет содержать приглашение командной строки
    $HistoryCount=(Get-History -Count 1).Id+1
    if ($NestedPromptLevel) {$PromtStr="PS($HistoryCount)>nested($NestedPromptLevel)>"} else {$PromtStr="PS($HistoryCount)>"}
    #Если мы работаем с правами лок. админа, то текст приглашения командной строки - красный
    #иначе - зеленый
    if ($isElevated) {$PromptColor = "Red"} else {$PromptColor = "Green"}
    #Выводим на экран приглашение командной строки
    Write-Host $PromtStr -ForegroundColor $PromptColor -NoNewline
    #
    " "
    #
    ##############################################################################################
    #### Синхронизируем текущую папку хостового приложения (PowerShell.exe) и 
    #### текущую папку "внутри" хостового приложения, 
    #### которая может быть установлена при помощи set-location
    #### http://xaegr.wordpress.com/2009/05/14/prompt/ 
    #
    [Environment]::CurrentDirectory=(Get-Location -PSProvider FileSystem).ProviderPath
}
#
#############################################################################################
"Добавление всех зарегистрированных оснасток..."
#
get-pssnapin -registered | add-pssnapin -passthru -ErrorAction SilentlyContinue
"... и модулей...`n"
Get-Module -ListAvailable| Import-Module -PassThru -ErrorAction SilentlyContinue
"...готово`n"
#
#
##############################################################################################
#### Установим кодовую страницу передачи данных по конвейеру
#### для native applicatition (не командлетов, таких как findstr, dsquery, etc.)
#### http://blogs.msdn.com/powershell/archive/2006/12/11/outputencoding-to-the-rescue.aspx ###
#
$OutputEncoding = [Console]::OutputEncoding
#

Ничего оригинального, но мне нравится ;)

Поясню чуть более подробно содержимое некоторых частей моего профиля.  Читать далее…

Posted in PowerShell, Scripts | Отмечено: , , | Leave a Comment »

Административный шаблон для отключения Acrobat JavaScript

Posted by shs на 2009/12/22

Последнее время Adobe Acrobat Reader «радует» нас большим количеством «дыр», которые производитель сего софта не поспевает затыкать. Так, например, одну из известных «дырок» обязуются ликвидировать только  12 января 2010 года. Ну, а пока патчей нет, то все рекомендации сводятся к отключению JavaScript (встроенного в Acrobat Reader):

http://blogs.zdnet.com/security/?p=5152

http://www.pcworld.com/businesscenter/article/184704/adobe_reader_zeroday_exploit_protecting_your_pc.html

http://blog.trendmicro.com/new-adobe-zero-day-exploit/

Для выполнения этих рекомендаций (отключения JavaScript в Adobe Acrobat Reader) я провел при помощи Procmon небольшие изыскательские работы и выяснил, что за включение/отключение JavaScript отвечает параметр bEnableJS (типа REG_DWORD), который может быть расположен  в следующих разделах реестра: Читать далее…

Posted in Adobe Acrobat, Group Policies | Отмечено: , | 12 комментариев »

Скрипт для массового переименования MP3-файлов с использованием информации из mp3 tag’ов.

Posted by shs на 2009/12/20

Совсем недавно потребовалось мне скачать с  одного из сайтов большое количество mp3-файлов. При скачивании с сайта файлы почему-то получали странные имена, наподобие следующего: 432568789645876926097137509375.mp3. Сначала, я качал каждый файл вручную: тыркал в ссылку ПКМ -> Сохранить как… -> и, в появившемся окне диалога сохранения файла, менял странное название файла на внятное и узнаваемое, состоящее из какой-либо комбинации названия автора/исполнителя, номера трека, названия альбома, названия композиции. Занятие это довольно утомительное, и на долго меня не хватило (сдался, когда счет скаченных файлов пошел на 2й десяток). Посему, запустил я свой любимый freedownloadmanager, да и скачал  все файлы в два щелчка «мышки». Счастье почти наступило,  теперь требовалось задать закачанным файлам «правильные» имена. «Погуглив», я обнаружил, что переименование mp3-файлов – весьма популярное занятие, для которого написано вагон и маленькая тележка всевозможных программ, программок и программулек. Скрипты так же попадались, но в основном nix’овые. Задачка же по переименованию файлов представлялась мне просто классической задачей скриптования.  И тогда я  решил присоединиться к движению по «изобретению велосипедов» переименованию mp3-файлов, а, заодно, попрактиковаться в PoSh’е (чтобы мозги не ржавели) и написать свой скрипт для этого богоугодного дела. Читать далее…

Posted in PowerShell, Scripts | Отмечено: , , | 2 комментария »

Скрипт для автоматизации отправки файла cons*.* на заданный email-адрес по электронной почте

Posted by shs на 2009/12/16

По просьбе одного своего знакомого написал небольшой скрипт для автоматизации отправки по электронной почте файла cons*.*. (IIUC, этот файл, содержит некую отчетную информацию о работе сотрудников, выполняющих обновление правовой системы «КонсультантПлюс»). Интересующий нас файл создается в папке RECEIVE (которая находится внутри той папки, куда был установлен «КонсультантПлюс») после запуска программы cons.exe с ключами /adm /usr /base*

Вот, что у меня получилось: Читать далее…

Posted in E-Mail, JScript, Scripts | Отмечено: , , , | 8 комментариев »

Скрипт для отправки сообщения по e-mail, с использованием протокола SMTP

Posted by shs на 2009/12/11

В скрипте, опубликованном ранее, имеется функция отправки сообщения по e-mail. В этом посте хочу остановиться на отправке e-mail при помощи скрипта чуть-чуть подробнее. Читать далее…

Posted in E-Mail, JScript, Scripts | Отмечено: , , , | 20 комментариев »

Оптимальная топология сайта AD

Posted by shs на 2009/12/09

Очень хорошая статья из журнала Windows IT Pro/RE, в которой рассмотрены часто возникающие вопросы:

Какой DC будет выбран клиентом, при отказе текущего?
Каков механизм этого выбора?
Как повлиять на процесс выбора?

Must read, однозначно ;)

Оптимальная топология AD-сайта

Posted in Active Directory | Отмечено: | Leave a Comment »

Скрипт для контроля состояния почтового ящика, доступного по POP3-протоколу

Posted by shs на 2009/12/03

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

Не говоря о том, что при данной схеме работы не возможна полноценная борьба со спамом (многие эффективные методы фильтрации спама невозможно применить), письма могут дублироваться и т.д., и т.п., так еще и могут возникнуть проблемы другого рода. Например, если софт, отвечающий за получение почты от хостера, «не страдает» надежностью и локальный почтовый сервер перестает забирать почту, то квота, выделенная хостером для хранения писем вашей организации, может быть исчерпана. Это, в свою очередь, приведет к тому, что хостер перестанет принимать всю входящую почту, адресованную вашей организации. Правильным выходом из этой ситуации является, конечно же, отказ от подобной схемы работы с почтой. Но, если по каким-то причинам сделать это невозможно, то нужно придумать какой-нибудь «workaround», чтобы каким-либо образом контролировать состояние капризного сервиса.

Этот скрипт был написан как раз для таких целей. Он не пытается контролировать непосредственно сам сервис (по разным причинам это может оказаться неудобно и/или невозможно сделать), вместо этого он делает следующее: Читать далее…

Posted in E-Mail, JScript, Scripts | Отмечено: , , , | 1 Comment »

Скрипт, выполняющий подключение сетевого принтера и установку его принтером по умолчанию

Posted by shs на 2009/12/01

Очень простой скрипт, который удобно использовать, как логон-скрипт, в групповых политиках. Он подключает «расшаренный» сетевой принтер и назначает его принтером по умолчанию. Если этот скрипт разместить в папке NETLOGON на DC, то его запуск (при помощи групповых политик) можно производить следующим образом:
%LOGONSERVER%\NETLOGON\addPrn.js \\PrintServerName\SharedPrinterName

И так, сам скрипт:
Читать далее…

Posted in Active Directory, Group Policies, JScript, Scripts | Отмечено: , , | 6 комментариев »