Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» PowerShell

Автор: Uriu
Дата сообщения: 23.03.2006 06:13
PowerShell 1.0 (релиз) (Перед установкой релиза - необходимо удалить предыдущие версии)
Внимание! Для работы требуется Microsoft .NET Framework Version 2.0

Прямые ссылки на русские версии:
* Windows 2003 SP1-2 32bit
* Windows XP SP2 32bit
* Windows Vista 32bit
* Windows Vista x64

Прямые ссылки на английские версии:
* Windows 2003 SP1-2 32bit
* Windows XP SP2 32bit

Резервные ссылки на русские версии:
* http://ifolder.ru/f237442

# PowerShell 2.0 (CTP3)

Прямые ссылки на английские версии:

* Windows * 32bit
* Windows * x64
* Справка

System Requirements (русские версии)
* Windows XP SP2-3 32bit
* Windows 2003 SP2 32bit

(английские)
* Windows XP SP2-3 32bit
* Windows 2003 SP2 32bit


PowerShell 3.0



Что бы ассоциировать скипты с PowerShell, аналогично выполнению .bat/.cmd-файлов
нужно в коммандной строке набрать следующую команду
FType microsoft.powershellscript.1=%windir%\system32\windowspowershell\v1.0\powershell.exe "&'%1' %*"
запуск вместе с параметрами

Что бы PowerShell не задавал вопрос о подписанности скриптов ввести в нем команду
set-executionpolicy unrestricted


Для этих 2-х действий требуются административные права
Оболочки для работы с PowerShell
*PowerShell Analyzer (бесплатный).
*PowerShellIDE для PowerShell (не развивается, бесплатный) Заметка: в их новом продукте планируется поддержка PowerShell.
*PowerGUI (бесплатный).
*PowerShell ASP (бесплатная и платная версии) PowerShell ASP запускается на ASP.NET платформе и позволяет добавлять инлайн PowerShell скрипты в веб страницах построенных с использованием HTML/XML.


Внимание! В отличие от батников кодировка скриптов на PowerShell должна быть 1251 (ANSI)


Расширение возможностей PowerShell
Функции
* Write-Color
* PowerTab --- Расширение функций клавиши Tab
Провайдеры
Готовые скрипты
* Ошибки и предупреждения в журнале событий по электронной почте (в4.0)


[more=Устаревшая информация и не разобранная]




























PowerShell 1.0 (релиз) Ноябрь 2006

Русская документация в формате .CHM RC2

Перед установкой релиза - необходимо удалить предыдущие версии



Что бы ассоциировать скипты с PowerShell, аналогично выполнению .bat/.cmd-файлов
нужно в коммандной строке набрать следующую команду
FType microsoft.powershellscript.1=%windir%\system32\windowspowershell\v1.0\powershell.exe "&'%1' %*"
запуск вместе с параметрами

Что бы PowerShell не задавал вопрос о подписанности скриптов ввести в нем команду
set-executionpolicy unrestricted

Для этих 2-х действий требуются административные права

Ускорение запуска PowerShell



IDE для работы с PowerShell 1.0
PowerShellAnalyzer
PowerShellIDE для PowerShell


Установка русской версии PowerShell RC2 на английскую Windows

Если распаковать дистрибутив в отдельную папочку
То в этой папочке можно увидеть папочку Update
Меняем содержимое папки Update в русском дистрибутиве
На содержимое папки Update из английского дистрибутива
Для установки запускаем файлик ...\Update\Update.exe

Диалог установки при этом будет английский, но нам это пофигу
Главное, что установленно всё будет русское

Функции расширяющие возможности PowerShell
* Write-Color


Уже подготовленный дистрибутив для Windows XP SP2
Дистрибутив для Windows XP с русской справкой



Windows Monad Shell (MSH) - это новый интерактивный командный интерпретатор и скриптовая технология для Windows. Пока вышла v1.0 beta 3. Возможности поражают.
Обещают, что очень скоро выйдет релиз.
Почитайте:
http://thevista.ru/page.php?id=820
http://thevista.ru/page.php?id=865
http://thevista.ru/page.php?id=903&PHPSESSID=1226ba34a5ae01cbcbbe0c04b8349d79

У кого «быстрый» Интернет, как я понял, могут посмотреть в виде фильма:
http://channel9.msdn.com/ShowPost.aspx?PostID=25506
http://channel9.msdn.com/ShowPost.aspx?PostID=25915
http://channel9.msdn.com/ShowPost.aspx?PostID=132977

В этой статье автор утверждает, что Monad заткнет за пояс Unix, хотелось бы услышать мнение специалистов:
http://www.computerra.ru/focus/251784/

Наиболее полная информация на русском языке по командам и возможностям:
http://www.script-coding.info/Monad/Intro.html
http://www.script-coding.info/Monad/Intro2.html
http://www.script-coding.info/Monad/CustomizingMSH.html
http://www.script-coding.info/Monad/ScriptingMSH.html

Для использования Monad нужно скачать и установить NET Framework 2.0:
http://www.microsoft.com/downloads/details.aspx?familyid=0856eacb-4362-4b0d-8edd-aab15c5e04f5&displaylang=en

Языковый пакет NET Framework 2.0 для локализованных версий:
http://www.microsoft.com/downloads/details.aspx?displaylang=ru&FamilyID=39C8B63B-F64B-4B68-A774-B64ED0C32AE7

Monad beta 3:
Требуется регистрация на Майкрософт, возможно, найдете в сети. Файл называется monad_b3_1_50727_x86.zip . Я смог зарегистрироваться:
http://www.microsoft.com/downloads/details.aspx?FamilyID=239a1116-c0f5-4320-84fc-2ad625ebb910&DisplayLang=en

Скачайте документацию к Monad:
http://www.microsoft.com/downloads/details.aspx?familyid=6387C46B-4753-4EAF-8D8B-368074F39CCC&displaylang=en

Документация вполне читаема, даже с плохим английским (как у меня ).

Очень рекомендую любителям CMD.exe, осваивается легко ИМХО. Еще раз повторюсь, что я в восторге от возможностей. Работа происходит с объектами, а не с текстом, в переменную можно записать сразу массив объектов, можно создавать фильтры, функции и т.д. и т.п. Выводить информацию в текстовый файл, это просто сказка. Хотите список – пожалуйста, хотите таблицу – пожалуйста.
Рекомендую попробовать. Интересно Ваше мнение.

По ходу задам вопрос, может кто уже давно пользуется:
Как подключиться к удаленному компьютеру? В документации ничего не нашел. Скрипт центр Майкрософт пака не копал, там кстати уже есть раздел для Monad:
http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx

[/more]



Книги по PowerShell
Windows PowerShell Франк Кох (БЕРН) Разработчик и пропагандист платформы. На русском языке в формате pdf и doc
Автор: niichavo
Дата сообщения: 29.03.2006 08:46
Uriu
Выложи этот файл куда-нить, пожалуйста. Охота скачать, а не откуда. Micro$oft не пущает.
Уже не надо... Если кому ещё надо скачать, то вот ссылка: http://soft.technodrive.ru/down.php?n=monad_b3_1_50727_x86.zip

Ваще это к скриптам относится, посему енту тему можно и в "Помощь системному администратору" отнесть.
Эта штуковина скорее всего появится в Windows Vista вместо или в добавок к WSH.

Вот ещё ссылочка http://www.microsoft.com/technet/scriptcenter/scripts/msh/default.mspx
Автор: karoet
Дата сообщения: 29.03.2006 14:52
Очередная попытка Микрософт догнать *nix по предостовляемым возможностям. То что в никсах уже лет 10-15 нормально работает мелкомягкие тольно пытаются сделать.
Вот интересно использовали ли они свободный код при создании этого очередного чуда ?
Автор: Uriu
Дата сообщения: 30.03.2006 06:36
Вот это посмотрите, "читаемость" кода на высоте ИМХО.

http://www.microsoft.com/technet/scriptcenter/topics/msh/mshandwmi.mspx


Цитата:
Очередная попытка Микрософт догнать *nix по предостовляемым возможностям. То что в никсах уже лет 10-15 нормально работает мелкомягкие тольно пытаются сделать.


Ну а разве это плохо?
Автор: karoet
Дата сообщения: 30.03.2006 07:20
Просто надеюсь что микрософт наконец прекратит эти шатания - с каждой новой операционнкой новые скрипты.
Автор: KapralBel
Дата сообщения: 18.05.2006 15:03
Вышел новая версия RC1, переименована в PowerShell
http://download.microsoft.com/download/5/6/2/56279e8d-5c68-40fb-8937-589b6a6afa1c/PowerShellDocumentationPack.zip
http://download.microsoft.com/download/e/8/c/e8ccf14c-8009-43ad-b953-1b18609cf14c/PowerShell_i386.zip
Автор: NPC
Дата сообщения: 18.05.2006 15:17
научитесь правильно говорить Microsoft, стыдоба
а правильно "Майкрософт"
Автор: Major_Fox
Дата сообщения: 18.05.2006 15:32

Цитата:
о что в никсах уже лет 10-15 нормально работает мелкомягкие тольно пытаются сделать.

все 30 Вернее 36
Автор: Etalon
Дата сообщения: 24.05.2006 15:47
Посидел, поковырялся пару дней пару дней, и написал скрипт кот. подключается к доступным по сети компьютерам и узнаёт какой пользователь на каком компьютере зарегистрирован. А под=том выдаёт результат в виде красивой формы с красивой табличкой.
[more=Исходный текст...]

Код:
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$Form = new-object system.windows.forms.form
$Form.topmost = $true
# $Form.Autosize = "True"

$Size = new-object system.drawing.Size

$ListView = new-object system.windows.forms.ListView
$ListView.Dock = "Fill"
$ListView.View = "Details"
$listView.GridLines = $True.ToString()
$ListView.FullRowSelect = $True.ToString()
$listView.AllowColumnReorder = $True.ToString()

$columnHeader1 = new-object System.Windows.Forms.ColumnHeader
$columnHeader1.Text = " "
$columnHeader2 = new-object System.Windows.Forms.ColumnHeader
$columnHeader2.Text = "Имя пользователя"
$columnHeader3 = new-object System.Windows.Forms.ColumnHeader
$columnHeader3.Text = "Имя компьютера"
$columnHeader4 = new-object System.Windows.Forms.ColumnHeader
$columnHeader4.Text = "IP адрес"
$columnHeader5 = new-object System.Windows.Forms.ColumnHeader
$columnHeader5.Text = "Тип подключения"

$listView.Columns.Add($columnHeader1)
$listView.Columns.Add($columnHeader2)
$listView.Columns.Add($columnHeader3)
$listView.Columns.Add($columnHeader4)
$listView.Columns.Add($columnHeader5)


$txtCode = @'
    imports system
    Class mow
        function main() as System.DirectoryServices.DirectoryEntry
            Dim entryPC As New System.DirectoryServices.DirectoryEntry
            entryPC.Path = "WinNT://."
            return entryPC
        end function
    end class
'@




$Form.Add_Load(
{
    $a = net view | findstr "\\"
    $ping = new-object Net.NetworkInformation.Ping
    for ($i = 0; $i -le $a.Count - 1; $i++)
    {
        $Item = new-object system.windows.forms.ListViewItem($i)
        $b = $a[$i].Remove($a[$i].IndexOf(" "), $a[$i].length - $a[$i].IndexOf(" "))
        $b = $b.Replace("\\", "")
        $Result = $ping.Send($b)
        if($Result.Status -eq "Success")
        {
            $ComputerSystem = Get-WMIobject -class "Win32_ComputerSystem" -namespace "root\CIMV2" -computername $b
            if ($ComputerSystem.UserName -ne $null)
            {
                $Item.SubItems.Add($ComputerSystem.UserName)
            }
            else
            {
                $Item.SubItems.Add("Н/А")
            }
            $Item.SubItems.Add($b)
            $Item.SubItems.Add($Result.Address)
            $Item.SubItems.Add("Тип подключения")

            $Item.Text = $i + 1
            $ListView.Items.Add($Item)
        }
    }
    $listView.AutoResizeColumns("ColumnContent")
    for ($i = 0;$i -le $listView.Columns.Count - 1; $i++)
    {
        $listView.columns[$i].width
        $Size.Width += ($listView.columns[$i].width +20)
    }
    $Size.Height = 700
    $form.Size = $Size
})

$form.Controls.add($ListView)
$Form.showdialog()
Автор: KapralBel
Дата сообщения: 24.05.2006 16:20
Etalon
Что-то у меня не пошло
Сохранил скрипт как p.psc1 - пускаю в ком строке - на долю секунды появляется окошко и пропадает
Пускаю из PSh - аналогично
Пускаю с ключом -NoExit выдает

Цитата:
Failed to load MSH console file "C:\Program Files\DU\q.psc1": Invalid at the top level of the document.
At line:1 char:1


Создаю скрипт с одной строкой
get-childitem
Аналогично

Не могу разобраться как пускаются скрипты
Автор: Etalon
Дата сообщения: 24.05.2006 16:40
По умолчанию можно запускать только подписаные скрипты


Цитата:

Execution Policy
The shell is, by default, a secure environment. If history is any guide, then we know that executing scripts can be dangerous; therefore, by default, scripts are not enabled for execution. Also, there is no extension mapping that will allow you to run a script by double-clicking on it from the Windows Explorer. Before enabling scripts for execution, be sure to consider the risks associated with running scripts.

To enable scripts for execution, enter the following command at the shell prompt:

PS> set-executionpolicy allsigned

This command sets the execution policy to require that all scripts must have a trusted signature to execute. If you would like a less restrictive environment, you can enter the following command:

PS> set-executionpolicy remotesigned

This command indicates that the shell will execute scripts downloaded from the web only if they are signed by a trusted source. The least secure execution policy may be set as follows:

PS> set-executionpolicy unrestricted

This command sets the execution policy to run scripts regardless of whether they have a digital signature.
Also, it is important to note that the current directory may not be part of the path. If you wish to run a script that is not in a directory that is part of the path, you must first use "./" when you specify the script at the command prompt:
PS> ./myscript
Автор: KapralBel
Дата сообщения: 24.05.2006 16:45
Etalon
Спасибо, уже сам разобрался
Автор: Etalon
Дата сообщения: 24.05.2006 16:57
Вот здесь... есть много интересных примеров
использования PowerShell
Автор: KapralBel
Дата сообщения: 24.05.2006 17:03
Etalon
1. По поводу твоего скрипта - обижается натыкаясь на Win98
2. Ресурс неплохой
3. Кстати скрипты должны иметь расширение .ps1, а автоматическая прописка в PathExt=.PSC1 - скорее всего конфигурационные файлы
Автор: Etalon
Дата сообщения: 25.05.2006 07:53
В Win98 и WinNT 4.0 WMI отсутствует потому и ругается, нужно дополнительно устанавливать
http://www.microsoft.com/downloads/details.aspx?FamilyID=afe41f46-e213-4cbf-9c5b-fbf236e0e875&DisplayLang=en
Я, честно говоря, как-то не подумал, что на свете ещё существуют Win9x.
Автор: Koni_Yoto
Дата сообщения: 25.05.2006 08:21
Это ты зря.... 9х еще как живет... но ставить туда этот шелл считаю по меньшей мере нецелесообразным. На этих машинах 9х стоит не от хорошей жизни...
Автор: Etalon
Дата сообщения: 25.05.2006 09:13
Мне кажется, что повсеместно его устанавливать ещё рано, поскольку он находится в стадии тестирования.

Так на одном, двух местах для изучения.
Автор: KapralBel
Дата сообщения: 25.05.2006 10:01
Etalon
Тебе удалось добиться, что бы .ps1 запускались аналогично .cmd из командной строки, а не из самого PowerShell-a?
Автор: Etalon
Дата сообщения: 25.05.2006 10:50
Я честно говоря не заморачивался этим.
Всегда запускаю
Правая кнопка мыши/Открыть с помщью/PowerShell.exe

Щас попробую привязать PowerShell.exe к расширению .ps1

Добавлено:
Да всё получилось

Правая кнопка мыши/Открыть с помщью/Выбрать программу.../PowerShell.exe
Поставить галочку "Использвать её для всех файлов этого типа"
Автор: KapralBel
Дата сообщения: 25.05.2006 11:00
Etalon
Вот результат моих усилий

Цитата:
C:\DownLoad>ss
'C:\Program' is not recognized as a cmdlet, function, operable program, or script file.
At line:1 char:11
+ C:\Program <<<< Files\DU\ss.ps1

C:\DownLoad>assoc .ps1
.ps1=Microsoft.PowerShellScript.1

C:\DownLoad>ftype Microsoft.PowerShellScript.1
Microsoft.PowerShellScript.1="C:\Program Files\Windows PowerShell\v1.0\powershell.exe" "%1"


Добавлено:

Цитата:
Правая кнопка мыши/Открыть с помщью/Выбрать программу.../PowerShell.exe
Поставить галочку "Использвать её для всех файлов этого типа"

Ладно буду тренироваться
Автор: Etalon
Дата сообщения: 26.05.2006 10:56
Чёто никак не соображу, как релизовать обработку события ColumnClick,
в соём скрипте..., чтобы сортировку по столбцам можно было осуществлять.

В MSDN есть примеры... на C#, а как их адаптировать для PowerShell не понятно.
Автор: Etalon
Дата сообщения: 29.05.2006 10:26
Набрёл на страничку какогото импортного мужика по имени Карл.
Он создаёт среду разработки для PowerShell
Желающие могут ознакомиться

Собственно сама страничка
http://www.mshanalyzer.com/

И пара презентаций в формате Флэш
http://karlprosser.edify.us/flashdemos/mshapart1.htm
http://karlprosser.edify.us/flashdemos/mshapart2.htm

Впечатляет
Автор: Ygen
Дата сообщения: 08.06.2006 12:56
А где-нибудь документацию по Monad найти можно на русском языке
Автор: Etalon
Дата сообщения: 08.06.2006 16:36
В первом посте ссылки есть

Добавлено:
Ещё одна симпатичная IDE для PowerShell
http://powershell.com/
Правда в зачаточном состоянии
Автор: KapralBel
Дата сообщения: 09.06.2006 11:50
Etalon
Нашел проблему с невызовом из комм строки скриптов
Ситуация весьма проста, если скрипты находятся в папке (полный путь к которой включает пробелы, например C:\Program Files\Script) - то возникает глюк

Цитата:
C:\DownLoad>ss
'C:\Program' is not recognized as a cmdlet, function, operable program, or script file.
At line:1 char:11
+ C:\Program <<<< Files\Script\ss.ps1

Вынес скриты в корень - все ОК

Добавлено:
Насчет IDE для PowerShell - весьма и весьма интересная и удобная штучка
Сенькаю за ссылку

PS. скрипт для определения параметров дисков (буква, тип, размер и свободное место)

Код: #get-disksize.msh
Param ($Computer = "localhost")
$colDisks = get-wmiobject Win32_LogicalDisk -computer $computer
" Device ID Type Size(m) Free Space(m)"
ForEach ($Disk in $colDisks)
{
$drivetype=$disk.drivetype
Switch ($drivetype)
{
2 {$drivetype="FDD"}
3 {$drivetype="HDD"}
4 {$drivetype="NET"}
5 {$drivetype="CD "}
}

" {0} {1} {2,15:n} {3,15:n}" -f $Disk.DeviceID, $drivetype, $($disk.Size/1m), $($disk.freespace/1m)
}
""
Автор: Etalon
Дата сообщения: 09.06.2006 12:34
KapralBel
а кавычки, в полном имени файла, не помагают?
Автор: KapralBel
Дата сообщения: 09.06.2006 13:08
Etalon

Код: C:\Program Files>powershell "C:\Program Files\Get-DiskSize.ps1"
'C:\Program' is not recognized as a cmdlet, function, operable program, or script file.
At line:1 char:11
+ C:\Program <<<< Files\Get-DiskSize.ps1

C:\Script>Get-DiskSize.ps1
Device ID Type Size(m) Free Space(m)
A: FDD 0,00 0,00
C: HDD 20 481,27 11 004,08
Автор: Etalon
Дата сообщения: 09.06.2006 13:43
Или мы чего нибудь не знаем, или к релизу исправят

Добавлено:

Цитата:

Sometimes, a script may not be in the path, and reside in a directory that has spaces in it. In this case, you must use the call operator. This operator, "&", instructs the shell to evaluate the string and execute as a command.

PS> &'C:\Program Files\Windows NT\myscript.ps1'
This is my script!

If you do not want to run the script in a new scope, you can execute the script as follows (first if myscript is in the path, and then if not):

PS> . myscript arg1 arg2
PS> . "C:\Program Files\Windows NT\myscript.ps1"

The "." tells the shell to execute the script in the current scope. To run it from a cmd.exe prompt use this format:


Может это и есть лекарство, я в английском не очень силён

Добавлено:
Действительно помогло


PS Как полезно иногда в документацию смотреть.
Автор: KapralBel
Дата сообщения: 09.06.2006 14:01
Etalon
Хм...
С запуском скриптов из самого ПоверШелла - проблем нет
У меня проблема с запуском из cmd.exe
Автор: Etalon
Дата сообщения: 09.06.2006 14:22
Из cmd.exe вот такая конструкция работает

Код:
c:\>powershell -command "&'C:\Длинная папка\Сценарий.ps1'"

Страницы: 123456789101112131415161718192021222324

Предыдущая тема: Не понятная проблема с видеокартой.


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.