Windows 7 Resource Kit PowerShell Pack

James Brundage, один из разработчиков PowerShell, выложил коллекцию модулей PowerShell написанных для Windows 7 Resource Kit. Один из них, IsePack, я уже давно активно использовал, и ждал когда же он наконец появится в публичном доступе 🙂 Этот модуль расширяет возможности PowerShell ISE, добавляя своё меню с различными интересными плюшками 🙂
isepack
Большая часть кода с подсветкой в моих последних постах вставлена именно с его помощью 🙂
Впрочем это только один модуль из тех что выложил Джеймс. Весь PowerPack можно скачать здесь. Ниже полный список модулей:

WPK — Легко и быстро создаёт пользовательские интерфейсы из PowerShell. Типа HTA, но просто 🙂 Более 600 скриптов для быстрого создания интерфейсов. Для начала рекомендуется прочитать Writing User Interfaces with WPK

IsePack — Расширяет ISE, добавляя более 35 действий.

TaskScheduler — Выводит назначенные задания, создаёт и удаляет их.

FileSystem — Отслеживание файлов и папок, проверка на дубликаты и свободного места на диске.

DotNet — Explore loaded types, find commands that can work with a type, and explore how you can use PowerShell, DotNet and COM together Исследуйте загруженные типы, находите команды для работы с ними, и изучайте как вы можете использовать PowerShell, DotNet и COM вместе.

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

PSRSS — Работа с FeedStore из PowerShell .

PSSystemTools — Получение информации об операционной системе и оборудовании.

PSUserTools — Получение списка пользователей, проверка привилегий и т.п.

PSCodeGen — Генерирует PowerShell скрипты, код C# и P/Invoke.

Я пока еще не пробовал все эти модули, так что неточности в переводе обязательны 🙂 Качаем и смотрим 🙂

Реклама
Опубликовано в 2.0, PowerShell, Scripting, Utility, Windows 7. Метки: , , , , , , . Комментарии к записи Windows 7 Resource Kit PowerShell Pack отключены

Включаем PowerShell Remoting через групповые политики.

Windows 7 и Windows Server 2008 R2 уже в состоянии RTM, а в них уже встроен PowerShell v2.0. Соответственно, самые прогрессивные администраторы уже смогут использовать PowerShell Remoting в реальном, не тестовом окружении.

Так как в целях безопасности Remoting разумеется отключён в конфигурации по умолчанию, то надо будет его включить. Сделать это можно с помощью командлета Enable-PSRemoting (причем надо выполнить его и на управляющем и управляемом компьютерах). Чтобы командлет не задавал лишних вопросов, достаточно добавить к нему ключ –Force.

Но как я уже сказал выше, время тестирования заканчивается, и скоро нам понадобится включать Remoting на множестве наших компьютеров. Enable-PSRemoting для этого уже мало подходит. Можно конечно включить его в сценарий загрузки компьютера, но это мягко говоря не эффективно.

И тут нам на помощь, приходят старые добрые групповые политики 🙂 К сожалению (или к счастью?) галочка “сделать чтоб ремотинг заработал” отсутствует 🙂 Так что с помощью групповой политики придётся произвести несколько отдельных настроек.

Во-первых надо создать “Listener”, так называемый “слушатель”, который будет принимать входящие подключения WinRM на определённый порт, с определёнными настройками. Listener’ов можно создать несколько, назначить различные разрешения на подключения к ним, порты, параметры безопасности, и ограничения. Но мы сейчас ограничимся созданием простого “слушателя” с настройками по умолчанию. Он будет принимать подключения от пользователей с административными полномочиями, на порт 5985. Создать его легко с помощью административных шаблонов групповой политики: Computer Configuration / Policies / Administrative Templates / Windows Components / Windows Remote Management (WinRM) / WinRM Service. Тут, в элементе Allow automatic configuration of listeners можно разрешить автоматическое создание “слушателя” по умолчанию, и указать для него диапазоны адресов с которых он будет принимать подключения (ipv4 и ipv6). Впрочем можно разрешить подключения отовсюду, поставив звёздочку (*). Рядом можно изменить некоторые другие настройки WinRM, или включить Listener’ы слушающие на портах 80 и 443 (Turn On Compatibility HTTP(S) Listener), стандартных для HTTP и HTTPS.

psr_listener

Ну и последняя настройка – разрешить подключения на соответствующий порт, в Windows Firewall. Делается это тоже с помощью групповых политик, в узле Computer Configuration / Policies / Windows Settings / Security Settings / Windows Firewall with Advanced Security / Inbound Rules.

Здесь просто нужно с помощью мастера, создать правило разрешающее подключение на соответствующие порты. Для этого можно использовать предустановленное правило Windows Remote Management.

psr_fw

Всё, теперь останется лишь подождать применения этой политики на компьютеры.

Ну и напоследок, файлы встроенной справки по Remoting’у:

PS C:\> get-help about_remote* | Format-Table Name, Synopsis -AutoSize

Name                         Synopsis
----                         --------
about_remote                 Describes how to run remote commands in Windows PowerShell.
about_remote_FAQ             Contains questions and answers about running remote commands
about_remote_jobs            Describes how to run background jobs on remote computers.
about_remote_output          Describes how to interpret and format the output of remote commands.
about_remote_requirements    Describes the system requirements and configuration requirements for
about_remote_troubleshooting Describes how to troubleshoot remote operations in Windows PowerShell.

Очень рекомендую с ними ознакомится.

PowerTab для PowerShell v2 CTP3, Windows 7 и Windows Server 2008 R2

Стараниями /\/\o\/\/ и Oisin Grehan обновился скрипт для расширения возможностей автозавершения в PowerShell (WMI,.NET,графическое автодополнение как в VS и т.д.). Эта версия обновлена для нормальной работы в PowerShell v2 CTP3 и Windows 7.

pt1

pt2 

Качать тут. Скринкаст о том что это, зачем, и как поставить, смотреть тут (14 MB, Wmv).

Опубликовано в News, PowerShell, PowerTab, Scripting, Utility, Windows 2008 R2, Windows 7. Метки: , , . Комментарии к записи PowerTab для PowerShell v2 CTP3, Windows 7 и Windows Server 2008 R2 отключены

PowerShell ISE

Наверняка вы уже наслышаны о том что в следующей версии PowerShell будет доступна графическая консоль/редактор, который называется PowerShell ISE (Integrated Scripting Environment). В этом посте я постараюсь рассказать о том что это такое, и зачем оно нужно 🙂

ise_01

Как видно из этого скриншота, ISE является полноценным редактором с подсветкой кода, закладками (табами), и возможностью выполнения интерактивных команд. Это крайне удобно при написании сценариев: можно легко протестировать команду, и затем добавить её в основной код. Или наоборот выполнить несколько строк выделенных в открытом файле.

Кроме этого ISE автодополняет набираемый код по нажатию Tab как в командной строке, так и в файлах скрипта. Естественно автодополняются не только названия команд, но и параметры, имена переменных, и т.д., так же как и в привычной консоли.

Еще в ISE встроен отличный отладчик. Ввы можете расставлять брейкпойнты (F9), запускать пошаговое выполнение, просматривать содержимое переменных наводя на них курсор, и т.д,:

image

Когда я первый раз увидел ранние версии этой утилиты, я сразу захотел иметь возможность открыть несколько закладок, с интерактивными сессиями PowerShell на других компьютерах. К сожалению тогда это было невозможно. Но сейчас, в Windows 7 (или PowerShell CTP3) нет ничего проще! 😉

image

В PowerShell ISE доступен специальный объект, $PsISE, с помощью которого можно управлять интерфейсом утилиты, и даже расширять его, например добавляя свои собственные элементы меню.

Так как ISE создавался с нуля, для PowerShell, он не страдает болезнями доставшимися PowerShell.exe от консольной подсистемы Windows (которая почти не изменилась со времен Windows 2000). Так например он изначально, полностью, стопроцентно поддерживает Unicode, и в нем можно легко менять шрифты, и их размер. Но у всего хорошего есть цена… В PowerShell не получится выполнять команды которые привыкли работать с экраном консоли напрямую. Это относится например к интерактивным режимам cmd.exe, netsh или diskpart. Нет, вы вполне сможете использовать эти утилиты, но вот войти в их интерактивный “subshell” не получится.

image

Еще много всего интересного про PowerShell ISE можно прочитать в блоге разработчиков,

Опубликовано в 2.0, PowerShell, Windows 2008 R2, Windows 7. Метки: , , . 1 Comment »

Windows Troubleshooting Platform

Те кто уже занимается тестированием Windows 7 могли заметить на присутствие нового элемента в панели управления – Troubleshooting (или Find and Fix Problems). А многие ли задумались о том что это такое?

image

Читать далее…

Опубликовано в Windows 2008 R2, Windows 7. Метки: , . Комментарии к записи Windows Troubleshooting Platform отключены

PoshCode.org

PoshCode[1]

Хочу рассказать об одном очень классном сайте, котрый можно сказать является главным репозиторием сценариев PowerShell, этакий аналог CPAN 🙂 Сайт не принадлежит Microsoft, и поддерживается сообществом пользователей PowerShell. Сценарии свободны для изменения, распостранения и т.п., но разумеется следует понимать что и правильной работы этих скриптов никто не гарантирует. Всё на свой страх и риск. Впрочем этим и хороши скрипты – вы можете самостоятельно рассмотреть код, и понять что он делает, и только потом запускать на своём компьютере.

Существует много способов поиска нужных скриптов на этом сайте. Первый – это разумеется зайти на него, и ввести ключевые слова в поле поиска слева 🙂 Или это же можно сделать с сайта powershellcommunity.org

Если вы используете редактор PowerGUI то можете искать скрипты на сайте непосредственно из редактора.

powergui-editor-search-online[1]

Ну а если вы тестируете Windows 7, то можете добавить простое расширение для встроенного поиска. Для этого надо просто сохранить этот файл (правый клик по ссылке, Save Target As…) с расширением .osdx и запустить его. После этого можно искать скрипты прямо из проводника. Надо сказать – работает вполне красиво и шустро.

image

Опубликовано в Learn, PowerShell, Scripting, Tips, Windows 7. Метки: . Комментарии к записи PoshCode.org отключены

Запуск процесса на удалённом компьютере – PowerShell Remoting

WinRM

Одна из главных возможностей PowerShell 2.0 это Remoting, возможности удалённого выполнения команд. Так как PowerShell 2.0 на момент написания этого находится в стадии CTP3 (а еще входит в состав Window7/2008R2 beta1) применять его в реальном окружении пока рановато, но готовиться и изучать надо уже сейчас, потому как таких возможностей как PS Remoting ни одно другое средство не предоставляет. Тем более что PS 2.0 вошел в достаточно стабильную стадию, и больших изменений перед релизом уже не планируется.

Читать далее…