![]() |
PowerShell. Советы, методы, итд.
В этом разделе будем обсуждать, делиться накопленным опытом по работе с PowerShell.
Кто не знаком, PowerShell - это оболочка, которая очень похожа на (cmd.exe). PS позволяет автоматизировать задачи, которые на первый взгляд имеют очень сложное решение. На мой взгляд, самое долгожданное удобство - alias'ы. Привыкли сидеть в *NIX'ах? - пожалуйста, переход будет не очень болезненный, т.к. большинство алиасов поддерживается. Например: Код:
PS U:\> ps e*Очень порадовала поддержка .NET платформы. Правильно, можете писать всё что угодно "на" PowerShell. P.S.: немного позже будет написана статья (вместо ---^), в которой я ознакомлю Вас с основными методами работы. А так же свои наработки и примеры решений повседневных задач администрирования. В статье будут выработаны пути решения рутинных задач. |
Теперь PoSH можно использовать в ASP.
Цитата:
|
Windows Monad Shell (Windows PowerShell):
#Обзор Windows Monad Shell (часть 1) # Обзор Windows Monad Shell (часть 2) # Настройка Windows Monad Shell # Создание сценариев Windows Monad Shell # Управление контекстом, работа со специальными символами, регулярными выражениями и обработка ошибок в Windows Monad Shell # Работа с содержимым файлов, классами .NET и COM-объектами в Windows Monad Shell # Работа с журналом событий, управление системными службами, использование WMI и управление разрешениями файловой системы в Windows Monad Shell # Некоторые рецепты практической работы в Windows Monad Shell и не только http://www.script-coding.info/ и http://www.oszone.net/4781/PowerShell |
Помню, видел много видеороликов на данную тему, наверное на techdays.ru сейчас поищу.
p.s. Нашел, вот тут.Видео, на данную тему. А тут прямая ссылка http://www.oszone.net/4781/PowerShell - а тут еще дополнительно |
Большой список полезной информации от русского MVP по Powershell Василия Гусева ,собственно его вебтрансляции и на techdays.ru
http://xaegr.wordpress.com/poshlinks/ |
|
PowerGUI - IDE-шка для PowerShell с возможностями отладки
|
Потребовалось сделать простенький скрип на powershell =)
Есть 2 файла в одном: Цитата:
Цитата:
192.168.1.10 pc1 ivanov 00:11:22:33:44:55 Цитата:
|
Может кому потребуется.Вопрос был задан в Irc и был решен с помощью Total Commander.Но без стороних средств решается довольно просто.
powershell Цитата:
Цитата:
|
Простая функция получения Rss c antichat.
Цитата:
Title Link Date Creator ----- ---- ---- ------- нужно восстановить почту н... http://forum.antichat.ru/s... 22.02.2010 11:38:45 IgAlex Так же без обезания. Get-AntichatRss | fl * И допустим получить последние 3 сообщения: Get-AntichatRss | select -first 3 | fl * Или получить приятный интерактивный вывод: Get-AntichatRss | Out-GridView -Title "Antichat Rss" http://img163.imageshack.us/img163/7720/posh.jpg |
Продолжая вчерашний пост про RSS.Благодаря MVP Василию Гусеву по PowerShell ,я немного подрихтовал его скрипт и адаптировал для получения RSS с античат.Его скрипт http://xaegr.wordpress.com/2009/01/19/pstwitps1/ .
http://img684.imageshack.us/img684/7618/40553903.png http://img691.imageshack.us/img691/2166/15168072.png Цитата:
|
Для создания базовых элементов Windows Form на Powershell,есть замечательная программа от Sapien под названием PrimalForms( http://www.primaltools.com/downloads/communitytools/download.asp?file=pforms ) . С помощью нее можно быстро создать базовые элементы,так же можно использовать Visual Studio( здесь будет сложнее,код создается на C# ,в программе выше сразу имеем код на PowerShell).Так же другие полезные программы от Sapien для PowerShell на сайте http://www.primaltools.com/downloads/communitytools/index.asp
Цитата:
Наша форма: http://img23.imageshack.us/img23/6851/uniq.png Ничего сверхестественного скрипт не делает,а лишь выполняет команду: Цитата:
Цитата:
|
Еще один небольшой пример работы с PrimalForms, а именно получение IP по имени и на оборот имени по IP(так сказать минимальная возможность nslookup). Проверку на валидность IP ,здесь я взял regex с сайта http://www.regular-expressions.info/examples.html .
http://img408.imageshack.us/img408/6422/hosttoip.png Цитата:
|
Написал для себя скрипт ,который мониторит папку на события Changed, Created, Deleted и Renamed . Для этого воспользовался классом FileSystemWatcher - класс . Есть одна неприятность если явно не указано свойство SynchronizingObject ,то Powershell завершает свою работу.Поэтому в скрипт пришлось добавить объект Form(спасибо /\/\o\/\/ ).Для остановки скрипта добавим в область уведомления ярлык с единственным возможным действием Exit.
Цитата:
Цитата:
2:36 : F:\1\3.txt Deleted 2:36 : F:\1\New Text Document.txt Deleted 2:36 : F:\1\2.txt Deleted 2:36 : F:\1\2 (2).txt Deleted |
Известно,что PowerShell позволяет использовать WinApi функции в своих скриптах.Один из MVP Shay Levi продемонстировал ,как скрыть ярлыки рабочего стола с помощью функции ShowWindow ( http://blogs.microsoft.co.il/blogs/scriptfanatic/archive/2009/05/11/show-or-hide-your-desktop-icons-with-powershell.aspx).
Немного добавив в его скрипт ,мы можем скрывать и другие окна.Я думаю это полезный пример и просто совет на будущее. #requires -Version 2.0 - указывает ,что требуется версия PowerShell 2.0. Цитата:
|
Была затронута тема отправка файла на FTP.Существует большое колличество способов и пару простых способов продемонстрирую.
1)Использование стандартного клиента ftp.exe. 2)Использование класса FtpWebRequest Class Цитата:
Цитата:
Загрузить библиотеку можно по адресу - http://coad.net/blog/resources/BytesRoad.NetSuit_2_0.zip Цитата:
|
Написал для себя простую функцию для получения всех локальных профилей на машине.
Цитата:
Вывод: http://img704.imageshack.us/img704/7561/profiles.png Или используя: Get-AllProfiles | Out-GridView http://img440.imageshack.us/img440/2098/prof2.png |
На одном из форумов был задан вопрос - "Нужно распечатать 1000 *.pdf файлов. Но только первую страницу каждого из файлов. "
Решение конечно не красивое,но рабочее.Что требуется: 1)Качаем http://sourceforge.net/projects/pdfsharp/files/pdfsharp/PDFsharp%201.31/PDFsharp-MigraDocFoundation-Assemblies-1_31.zip/download 2)Распаковываем. 3)Наличие Adobe Reader. 4)Свободное место. Суть скрипта создаем новый файл только с первой страницей (в данном случаем в F:\print\ - заменить на свое ) и распечатываем ее.Т.е у нас будет создано 1000 файлов и в каждом только 1 страница. Цитата:
Get-ChildItem F:\ -Filter *.pdf - для примера искать pdf в корне диска Пример работы взят с сайта http://www.pdfsharp.net/wiki/PDFsharpSamples.ashx |
Есть файл с логами формат:
xxxxx yyyyy zzzzzzz xxxxx yyyyy zzzzzzz Требуется вывод: xxxxx yyyyy zzzzzzz За одно используем особенность ,которую описал в своем блоге MVP PowerShell Marc van Orsouw (http://thepowershellguy.com/blogs/posh/archive/2007/10/23/how-to-go-to-the-next-item-in-a-for-loop-in-powershell.aspx) Цитата:
|
На форуме был задан вопрос:
Цитата:
Код:
$ou = New-Object -com outlook.application |
Как удалить с помощью скрипта файлы в корзине:
Цитата:
В данном случае: ssfBITBUCKET = 0x0a |
В ирк Slip задал вопрос: - Как будет выглядеть преобразование символов в противоположный регистр? Его реализация этой задачи оказалась короче на Perl.Perl выиграл :)
Perl: Цитата:
Цитата:
Цитата:
пРИвЕТ dEeRRq Цитата:
; FOR 16-BIT APP SUPPORT [FONTS] [EXTENSIONS] [MCI EXTENSIONS] [FILES] [mAIL] mapi=1 cmcdllname32=MAPI32.DLL cmc=1 mapix=1 mapixver=1.0.0.1 olemESSAGING=1 [mci eXTENSIONS.bak] M2V=mpegvIDEO MOD=mpegvIDEO А вот ,что удобнее использовать решать уже вам =) |
Кстати на Перле вышло в итоге ещё короче:
Код:
perl -e "$_ = shift, tr/A-Za-z/a-zA-Z/, print;" QwErTy |
2Slip
powershell отлично работает с .NET. Портировав перловый регэксп - выйдет короче) |
Цитата:
|
Небольшая заметка,по поводу как получить свой внешний IP,в данном случае воспользуемся сервисом http://www.myip.ru.Регексп,который используется не совсем корректен если парсить ip,но так как ресурс проверяет валидность сам,то этого достаточно.
PHP код:
Маленькое дополнение с GUI.Для этого мы воспользуемся PowershellPack,который содержит свыше 1000 всевозможно полезных функций и скриптов.Скачать PowerShellPack и более подробно ознакомиться с его функционалом можно http://code.msdn.microsoft.com/PowerShellPack Цитата:
Uploaded with ImageShack.us |
| Время: 00:42 |