Showing posts with label Powershell. Show all posts
Showing posts with label Powershell. Show all posts

2010-10-24

Вам больше не нужен calc.exe

Установленный Powershell очень удобно использовать в качестве калькулятора. Просто пишете математические выражения в командной строке!

Посчитаем сколько оборотов в год, производит шпиндель 3.5'' жесткого диска при непрерывной работе в течении целого года ))

 

powershell_math

А cmd такого не позволяет...

cmd_math

2010-10-09

DNS запросы из Powershell.

Для выполнения DNS запросов из Powershell можно либо вызвать nslookup и пропарсить результат, либо использовать .Net классы.

PS> [System.Net.Dns]::GetHostAddresses("google.com")

Address           : 854097226
AddressFamily     : InterNetwork
ScopeId           :
IsIPv6Multicast   : False
IsIPv6LinkLocal   : False
IsIPv6SiteLocal   : False
IPAddressToString : 74.125.232.50

Address           : 887651658
AddressFamily     : InterNetwork
ScopeId           :
IsIPv6Multicast   : False
IsIPv6LinkLocal   : False
IsIPv6SiteLocal   : False
IPAddressToString : 74.125.232.52

PS> [System.Net.Dns]::GetHostbyAddress("8.8.8.8") | fl


HostName    : google-public-dns-a.google.com
Aliases     : {}
AddressList : {8.8.8.8}

2009-08-27

Используем модули Powershell

В Powershell v.2 появилось понятие module. В Windows 7/R2 как-раз вторая версия Powershell. В ОС есть готовый набор модулей. Посмотреть доступные модули можно так:

image

Использовать модули очень просто. Get-Command –module <modulename> позволит узнать какие командлеты доступны в указанном модуле. Import-Module <modulename> подгружает модуль. Далее можно начать использовать командлеты.

Для установки ролей и фич с командной строки в Windows Server 2008 можно было использовать servermanagercmd или ocsetup. Теперь рекомендуемый способ – использование модуля servermanager. Там всего три командлета.

image

Вот как можно, например, создать объект групповой политики:

blog_01

Куда пропал netdom?

Если в Windows 7 попытаться воспользоваться командой netdom, получите такой результат

00

Нет этой команды в семерке. В  Windows Server 2008 R2 она, кстати, присутствует. Как же теперь из командной строки/скриптов подключать рабочую станцию в домен? Все просто. Запускаем powershell, читем ман по командлетам Add-Computer, Remove-Computer, Rename-Computer, Restart-Computer. В Windows 7/R2 появилось более ста новых командлетов. Add-Computer подключает машину в домен, Remove-Computer выводит из домена.

Не забывайте что, powershell надо запустить с адмнистративными привиллегиями. Иначе Add-Computer не отработает. Ну и помните про DNS, посредством которого ищуться контроллеры вашего домена. Основная проблема --- указание доменной учетки имеющей право подключения компьютера в домен. В командлете можно использовать параметр –credential для указания имени пользователя. Пароль, как в netdom join, указать нельзя.

02

Пароль спросили в отдельном окне. Для скриптов не годится.  Только для интерактивной работы.

03

В остальном все нормально. Напомнили о перезагрузке.

04

Для перезагрузки наряду с shutdown –r можно использовать Restart-Computer.

05

Попробуем разобраться с указанием доменной учетки. То есть с параметром –credential. В этом параметре вместо указания строки с именем пользователя можно использовать объект класса Management.Automation.PSCredential. Вот так вот. Не очень коротко. И как создать этот объект? Можно так:

06

Командлет get-credential возвращает нужный нам объект, спросив интерактивно логин и пароль. Пока не очень хорошо. Скрипт будет висет и ждать кого-то.

07

Смотрим, что в переменной $cred

08

Теперь в параметре –credential передаем не строку, а объект.

09

Можно не использовать Get-Credential,  а создать объект самостоятельно:

10

Скрипт все сделает автоматом. Но пароль у нас открытом текстом.  Как сделать тоже самое, но не держать пароль в скрипте? Можно и это! Но это другая история… Точнее другие истории, есть несколько вариантов…

2009-08-15

Включение Powershell Remoting

Василий Гусев, Powershell MVP, написал отличный пост по включению Powershell Remoting через групповые политики. http://xaegr.wordpress.com/2009/08/14/group_policy_remoting_configuration/