Радостные новости, теперь PowerShell V3 CTP1, доступен для Windows 7 Service Pack 1 и Windows Server 2008 R2 SP1. Так что у кого нет возможности скачать Windows 8 Developer Preview, можете скачать по ссылке — http://www.microsoft.com/download/en/details.aspx?id=27548 . Перечислять возможности не буду, их можно будет посмотреть по ссылке выше.
Поговорим немного теперь про нововведения:
1) Доступен параметр -Stream у следующих командлетов:
- Add-Content
- Clear-Content
- Get-Content
- Get-Item
- Out-String
- Remove-Item
- Set-Content
Когда скрипты скачиваются через Internet Explorer, Outlook и т.д, создается альтернативный поток данных NTFS,которые добавляют Zone Identifier. Поток Zone.Identifier это поток, содержащий текстовые данные. Он содержит внутри себя следующие строчки:
[ZoneTransfer]
ZoneId=3
Параметр ZoneId с числом означает зону, откуда прибыл файл на компьютер. Допустимы следующие значения:
- 0 — локальный компьютер
- 1 — интранет
- 2 — доверенный источник
- 3 — интернет
- 4 — недоверенный источник
Более подробно можно узнать на сайте — http://hex.pp.ua/Zone.Identifier.php.
Посмотреть stream Zone Identifier ,можно с помощью notepad:
Notepad script.ps1:Zone.Identifier
Так же можно воспользоваться утилитой Stream от SysInternals — http://technet.microsoft.com/ru-RU/sysinternals/bb897440.aspx
C:\>streams script.ps1 Streams v1.56 - Enumerate alternate NTFS data streams Copyright (C) 1999-2007 Mark Russinovich Sysinternals - www.sysinternals.com C:\script.ps1::Zone.Identifier:$DATA 26
Как удалить этот stream,можно прочитать в блоге — http://www.hanselman.com/blog/RemovingSecurityFromDownloadedPowerShellScriptsWithAlternativeDataStreams.aspx
Для PowerShell V3 :
#Получить все потоки Get-Item script.ps1 -Stream * Stream Length ------ ------ :$DATA 4 Zone.Identifier 3 #Удалим поток Zone.Identifier Remove-Item script.ps1 -Stream Zone.Identifier
Для работы с потоками в версии V2,можно посмотреть статью — http://thepowershellguy.com/blogs/posh/archive/2007/01/27/powershell-accessing-alternative-data-streams-of-files-on-an-ntfs-volume.aspx
2) У командлета Get-Content ,два новых параметра Raw и Tail.
3) Посмотреть изменения, которые произошли с параметрами комадлетов версии V2 и V3, для основных модулей.Shay Levy написал скрипт и выложил в подробном ввиде — http://www.powershellmagazine.com/2011/09/15/how-to-find-out-whats-new-in-powershell-vnext/
4) Так же хорошей новостью, что у командлета Out-GriedView, появился параметр Passthru.
Get-ChildItem | Out-GridView -PassThru | Select Name
Теперь вы можете выбрать, кликнув по заданному полю и нажать OK.Вы отфильтруете требуевые вам поля от остальных полей и передать дальше по конвейеру, получив более наглядный вывод.
Подробнее можно посмотреть — http://powertoe.wordpress.com/2011/09/19/out-gridview-now-has-a-passthru-parameter/
5) У комадлета Tee-Object, добавился параметр –Append.
Get-ChildItem | Tee-Object -FilePath result.txt | Select Name Get-Process | Tee-Object -FilePath result.txt -Append | Select Name
6) PowerShell Ise — доступен Add-On Команды и Help,которые реализуются с помощью командлета Show-Command. Подробнее — http://www.jonathanmedd.net/2011/09/powershell-v3-ise-commands-add-on.html