Вадим Стеркин

  • Главная
  • Windows
  • SSD
  • Программы
  • Разное
  • Об авторе
Вы тут: Главная → Windows → 8 полезных возможностей PowerShell 5.0, о которых вы могли и не знать

8 полезных возможностей PowerShell 5.0, о которых вы могли и не знать

Рубрики: Windows Обновлено: 03.03.2021 комментариев 100

317784700111798

PowerShell 5.0 идет с Windows 10, но для предыдущих ОС новая версия вышла в составе Windows Management Framework 5.0 только в конце февраля, причем со второй попытки. Сегодня я расскажу о некоторых нововведениях, но начну с того, зачем вам может понадобиться PowerShell.

@0utsidethebox @vsterkin а зачем к нему приобщаться, в чем преимущества его использования? Вообще хотел бы статью о том на хрена он вообще

— RZ45 (@R45Z) August 13, 2015

Зачем вам нужен PowerShell

Просто так изучать PowerShell нет смысла, и это верно для любого языка – скриптового, программного и даже человеческого. Как и многие решения Microsoft, PowerShell делается с прицелом на бизнес для автоматизации задач по управлению ПК и серверами в организациях.

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

В основе скриптового языка лежит мощная программная платформа .NET, поэтому возможности PowerShell простираются намного дальше администрирования.

Как-то раз мне понадобилось удалить один столбец из множества книг Excel 2013. Ручная работа претила, а гугление не давало готового решения. Я создал тему на форуме (да, я тоже иногда задаю вопросы на OSZone :). Мне подходил любой язык, но решение неожиданно для меня оказалось на PowerShell. Как выяснилось, можно загрузить Excel в качестве COM-объекта и манипулировать им дальше.

Впоследствии я не раз использовал модификацию того скрипта для автоматического обновления десятков книг Excel, подтягивающих данные из других файлов. Это сэкономило мне массу времени и сил.

Думаю, идея понятна, и можно уже переходить к новинкам PowerShell 5.0.

[+] 8 полезных возможностей

  1. Подсветка синтаксиса
  2. Поиск по истории в двух направлениях
  3. Создание соединений, символических и жестких ссылок
  4. Создание временного файла
  5. Очистка корзины
  6. Создание и распаковка архивов
  7. Копирование файлов между сессиями
  8. Управление пакетами (автоустановка программ)

Подсветка синтаксиса

В новой консоли намного легче ориентироваться!

8 новых возможностей PowerShell 5.0
Увеличить рисунок

Красный цвет и нумерация строк, однако, из другой оперы.

Поиск по истории в двух направлениях

Сочетания клавиш: Ctrl + R и Ctrl + S
Командлеты: Get-PSReadlineKeyHandler и Set-PSReadlineKeyHandler

Как и в CMD, в PowerShell есть история сессии с навигацией стрелками, a Get-History выводит журнал по аналогии с F7. Полный список сочетаний клавиш, связанных с журналом, можно вывести так:

Get-PSReadlineKeyHandler | ? {$_.function -like '*hist*'}

В результатах появились две новые функции поиска по истории, которые показаны на картинке ниже. Работает это очень просто.

  1. Нажмите сочетание Ctrl + R и начните вводить запрос → появится последний найденный результат.8 новых возможностей PowerShell 5.0
    Увеличить рисунок
  2. Повторите сочетание Ctrl + R, чтобы увидеть предыдущее совпадение, или измените запрос.

В отличие от Get-History, содержащей историю текущей сессии, этот журнал ведется глобально и сохраняется при закрытии окна.

Спасибо за наводку Антону Дровосекову и Константину Сидякину из нашей группы ВК.

Создание соединений, символических и жестких ссылок

Командлеты: New-Item, Remove-Item, Get-ChildItem

У меня в блоге хватает рассказов про ссылки NTFS, поэтому я не мог обойти вниманием возможность их создания в PowerShell.

#Символическая ссылка на файл
New-Item -ItemType SymbolicLink -Path C:\test\MySymLinkFile.txt -Target C:\test\1.txt
#Символическая ссылка на папку
New-Item -ItemType SymbolicLink -Path C:\test\MySymLinkFolder -Target C:\Windows\
#Жесткая ссылка на файл
New-Item -ItemType HardLink -Path C:\Test\MyHardLinkFile.txt -Target C:\test\1.txt
#Соединение
New-Item -ItemType Junction -Path C:\Temp\MyJunctionDir -Target C:\Windows

Честно говоря, синтаксис команды mklink запомнить проще, поэтому быстрее может получиться так:

mklink /d C:\test\MySymLinkFolder C:\Windows

Создание временного файла

Командлет: New-TemporaryFile

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

#Создание временного файла
New-TemporaryFile
#Создание временного файла и получение его полного пути
$tmpfile = (New-TemporaryFile).FullName
$tmpfile

При создании CheckBootSpeed у меня была именно такая задача – записать собранные данные во временный файл, показать его в блокноте и удалить. Командлета не было, но Василий Гусев подсказал такой вариант:

$file = [System.IO.Path]::GetTempFileName()

Здесь обратный случай – командлет легче запомнить, чем класс .NET. В утилите я сейчас такой способ не использую, но на заметку взял.

Очистка корзины

Командлет: Clear-RecycleBin

Для очистки корзины сделали новый командлет, который пригодится администраторам в рутинных скриптах по обслуживанию ПК.

Clear-RecycleBin c: -Force

Создание и распаковка архивов

Командлеты: Compress-Archive и Expand-Archive

Архивация файлов в ZIP – очень распространенная задача, и я не понимаю, почему Microsoft так долго тянула с простой реализацией в PowerShell.

#Упаковка папки в архив
Compress-Archive -LiteralPath C:\test\ -DestinationPath C:\archive\test2.zip
#Создание архива со всем содержимым папки
Compress-Archive -Path C:\test\* -DestinationPath C:\archive\test1.zip
#Распаковка архива
Expand-Archive -Path C:\temp\test1.zip 'C:\test\New folder\'

Копирование файлов между сессиями

Командлет: Copy-Item

Новая возможность командлета copy упрощает администраторам вполне типовую задачу копирования файлов на удаленный ПК. На целевой машине должна работать служба удаленного управления WinRM, которая конфигурируется одной командой:

Enable-PSRemoting

Для подключения к машине в доверенном домене больше ничего не требуется. В рабочей группе надо на своем ПК добавить целевой компьютер в доверенные узлы по имени ПК или IP-адресу:

#добавить ПК в доверенные узлы
Set-Item wsman:localhost\client\trustedhosts -value "192.168.1.113"
#убрать ПК из доверенных узлов
#Set-Item wsman:localhost\client\trustedhosts -value ""

Дальше вы создаете новую сессию, указывая имя пользователя для подключения к удаленному ПК, и вводите учетные данные. В созданную сессию можно копировать файлы.

$rs = New-PSSession -ComputerName 192.168.1.113 -Credential test-pc\vadim
Copy-Item -Path "C:\temp\my.csv" -Destination "C:\temp\" -ToSession $rs

Полезное дополнение к возможностям удаленного управления PowerShell, согласитесь.

Ссылки по теме PowerShell Remoting:

  • Основы настройки и удаленного управления (Хабр)
  • Выполнение удаленных команд (TechNet)

Управление пакетами (автоустановка программ)

Модуль: PackageManagement

В Windows 10 встроено управление поставщиками пакетов (оно же OneGet), с помощью которого вы можете загрузить и тихо установить сразу несколько приложений одной командой! Это похоже на Apt-Get в Linux, но можно провести и параллели с Ninite или InstallPack (кто-нибудь пользуется?)

Архитектура управления пакетами
Увеличить рисунок

Архитектура управления пакетами

Я редко делаю чистую установку основной системы, но на ВМ это происходит регулярно. И OneGet очень удобен для быстрой автоустановки ключевого набора программ.

Примечание. Можно использовать этот модуль, не устанавливая WMF 5.0. Предварительная версия модуля для PS 4.0 и 3.0 доступна отдельно — март 2016 тут, а более свежие ищите поиском в центре загрузки по запросу PackageManagement PowerShell Modules Preview.

Установка программ

В этом примере из репозитория Chocolatey устанавливаются четыре программы и полный набор утилит Sysinternals. Первые три команды выполняются однократно, причем смену политики надо подтвердить. Четвертая команда тихо устанавливает перечисленные программы, а пятая просто экономит время.

#Разрешить установку подписанных пакетов из Интернета
Set-ExecutionPolicy RemoteSigned
#Установить поставщик Chocolatey
Get-PackageProvider –Name Chocolatey -ForceBootstrap
#Сделать Chocolatey доверенным
Set-PackageSource -Name Chocolatey -Trusted
#Установить программы
Install-Package NotepadPlusPlus, vlc, firefox, filezilla, sysinternals -Verbose -Force -ProviderName chocolatey
#Добавить путь к исполняемым файлам (sysinternals) в PATH
setx PATH "$env:path;C:\Chocolatey\bin" -m

Поставщик скачивает в C:\Chocolatey\lib пакет, в основе которого лежит скрипт chocolateyInstall.ps1. Он загружает установщик программы с официального сайта в папку %temp%\Chocolatey и запускает его в режиме тихой установки. Простейший пример – Notepad++.

Install-ChocolateyPackage 'notepadplusplus' 'exe' '/S' 'https://notepad-plus-plus.org/repository/6.x/6.9/npp.6.9.Installer.exe'

Поиск программ

В репозиториях много программ, все самые популярные точно есть.

Find-Package '*zip*','*commander*' -ProviderName Chocolatey

Удаление программ

С удалением приложений не все так гладко, впрочем.

Uninstall-Package -name filezilla

В идеале удаление пакета должно повлечь тихое удаление программы, но реализация зависит от автора пакета и возможностей установщика. На практике одни пакеты не содержат скриптов для удаления, другие придумывают костыли в виде скриптов AutoHotkey, третьи просто запускают деинсталляцию интерактивно, предлагая вам закончить процесс вручную. Впрочем, если установщик — MSI, удаление работает четко.

Ссылки по теме OneGet и тихой установки:

  • Пошаговое руководство по установке программ из PowerShell (Дмитрий Буланов)
  • Командлеты управления пакетами (TechNet)
  • Типы инсталляторов и ключи тихой установки (моя статья 2005 года вполне актуальна :)
  • Сайт автоустановки Windows и форум автоустановки программ

Дискуссия и опрос

Для опытных «скриптовиков» и системных администраторов в PowerShell 5.0 есть и другие интересные возможности (например, классы по аналогии с языками объектно-ориентированного программирования). Полный список вы найдете на этой странице TechNet (ссылка ведет на английскую версию специально, поскольку русская пока не содержит сведений о 5.0).

В комментариях расскажите, как вы проголосовали в опросе, если вы не выбрали первый пункт (тут все ясно). Особенно интересуют подробности тех, кто использует скрипты, а также не нашедших своего варианта.

Как вы устанавливаете программы после чистой установки системы?

  • Вручную устанавливаю свежие версии (73%, голосов: 235)
  • Моего варианта тут нет (6%, голосов: 18)
  • Вручную устанавливаю старые версии с диска (5%, голосов: 17)
  • Использую Ninite для установки свежих версий (4%, голосов: 14)
  • Применяю другой способ установки (4%, голосов: 13)
  • Пользуюсь только портативными программами, ничего не устанавливаю (4%, голосов: 12)
  • Скриптом устанавливаю свежие версии (в т.ч. OneGet) (2%, голосов: 8)
  • Скриптом устанавливаю старые версии с диска (1%, голосов: 2)
  • Обхожусь только встроенными программами, ничего не устанавливаю (1%, голосов: 2)

Проголосовало: 321 [архив опросов]

Загрузка ... Загрузка ...

Метки: PowerShell, автоустановка

Об авторе

Вадим - владелец этого блога, и почти все записи здесь вышли из-под его пера. Подробности о блоге и авторе здесь.

Вас также может заинтересовать:

  • Как удалить неудаляемые языки в Windows 10
  • PowerShell: парсинг веб-страниц и загрузка файлов с Invoke-WebRequest
  • Принцип работы S Mode в Windows 10 и настройка Device Guard своими руками
  • Экспорт нужного издания Windows из install.wim и создание ISO
  • Как массово переименовать файлы по маске в PowerShell
  • Сбор и анализ сведений о системе с помощью PowerShell
  • Как увидеть результаты проверки диска одной командой PowerShell
← Как быстро скачать все необходимые обновления Windows 10 для установки на другой ПК или планшет
Дело о заблокированной кнопке "Да" →
Telegram logo

Я в Telegram

Подпишитесь на канал и читайте интересные записи чаще! Есть вопросы? Задайте их в чате.

комментариев 100

↓
  1. Herz Mein

    09.03.2016 в 09:42

    Подсветка синтаксиса в PowerShell 5.0, это установленный по умолчанию модуль PSReadLine. В предыдущих версиях его можно доустановить и прописать его в загрузку в профильном скрипте (переменная $profile) или подгрузить самому, когда нужно

    import-module psreadline
    
    Ваша оценка: Thumb up Thumb down +1
    • Vadim Sterkin

      09.03.2016 в 12:55

      Он же не входит в поставку предыдущих ОС. Расскажите, откуда установить тогда уж.

      Ваша оценка: Thumb up Thumb down 0
      • Herz Mein

        09.03.2016 в 15:10

        Откуда брал раньше, я не помню. Сейчас (в 5 версии) модули можно брать из специального репозитария. Выбираем нужный модуль на http://www.powershellgallery.com/PSModule
        Сохраняем его или сразу устанавливаем (прямо из консоли):

        help save-module
        help install-module
        
        Ваша оценка: Thumb up Thumb down +2
      • Dmitry Pugachev

        14.03.2016 в 14:28

        Модуль PSReadLine доступен с PowerShell 3
        https://github.com/lzybkr/PSReadLine

        Ваша оценка: Thumb up Thumb down +1
  2. Александр Логинов

    09.03.2016 в 11:29

    Можно поподробнее про тихую установку из скриптов? Не так давно стал пользоваться chocolatey, очень нравится, особенно обновление всех программ одной командой. Пока не разобрался с тихой установкой, все ставлю в ручном режиме, команда-подтверждение-установка.

    Ваша оценка: Thumb up Thumb down 0
    • Vadim Sterkin

      09.03.2016 в 12:56

      Александр, да вроде все программы в chocolatey ставятся тихо. Вы же можете посмотреть команду на установку, пример в статье, равно как теперь и ссылка на типы инсталляторов и ключи тихой установки.

      Ваша оценка: Thumb up Thumb down 0
  3. 6yHTapb

    09.03.2016 в 12:04

    единственное, для чего пока мне понадобился PowerShell в win 10, это обход бага с неработающей кнопкой «свойства» в настройках VPN соединения. Set-VpnConnection -Name «Name» -SplitTunneling $true.
    Кстати, Вадим. Есть какая-либо информация по этому поводу? Речь идет о кнопке в свойствах VPN соединения — сеть — IP версии 4 — «свойства». там обычно можно убрать галку «использовать шлюз в удаленной сети». сама кнопка активна, но при нажатии ничего не происходит. тут и помог PowerShell.

    Ваша оценка: Thumb up Thumb down 0
    • Vadim Sterkin

      09.03.2016 в 12:57

      Я уверен, что в приложении Feedback там куча плюсов, добавьте свой.

      Ваша оценка: Thumb up Thumb down +1
  4. Сергей Рощин

    09.03.2016 в 12:54

    Огромное спасибо за Chocolatey
    на windows 7 я так понял на работает?

    Ваша оценка: Thumb up Thumb down 0
    • Vadim Sterkin

      09.03.2016 в 13:08

      Сергей, надо установить WMF 5.0 — это первая ссылка в статье.

      Ваша оценка: Thumb up Thumb down 0
      • Сергей Рощин

        09.03.2016 в 13:13

        Да вроде и без него заработало. А можно что бы он еще создавал ярлыки определенных программ на рабочем столе?
        Давно так хотел найти что то подобное… Так надоело все вручную делать) дрова бы он еще сам ставил

        Ваша оценка: Thumb up Thumb down 0
        • Vadim Sterkin

          09.03.2016 в 13:17

          Сергей, вы посмотрите сайт автоустановки — там все есть: Создание ярлыков при установке ОС

          Ваша оценка: Thumb up Thumb down 0
  5. Lecron

    09.03.2016 в 13:19

    По голосованию… Использую почти все варианты. Часть программ в портативном виде. Часть — устанавливается ручками с диска, для тех, которые умеют сами обновлятся или серьезная доработка давно закончена. Из них, часть скриптом. Часть новыми. Часть уже предустановлена в образ.
    Опять же, клиенты и задачи бывают разные.

    Про PowerShell… Считаю, что Микрософт промахнулся с названием. С первого взгляда, непонятно что получилось. Командная оболочка/процессор или скриптовый язык программирования. Слово Shell наталкивает на первое, но тогда уже давно пора, раз она такая крутая, сделать ее по умолчанию или хотя бы продвигать ее в качестве основной. Но реальные юзкейсы больше наталкивают на второе, замену WSH.

    Ваша оценка: Thumb up Thumb down 0
    • Vadim Sterkin

      09.03.2016 в 14:45

      Lecron: но тогда уже давно пора, раз она такая крутая, сделать ее по умолчанию или хотя бы продвигать ее в качестве основной. »

      В Win+X можно заменить CMD на PS (свойства панели задач — навигация). И продвигают они в качестве основной давно — на TechNet уже давно ничего нового нет про CMD, только PS.

      Конечно, целевая аудитория — ИТ-специалисты, но то же самое можно сказать про CMD и WSH. Но я не вижу вреда для ЦА своего блога. Я нахожу применение PS дома и на работе, и это не связано с администрированием..

      Ваша оценка: Thumb up Thumb down 0
      • Lecron

        09.03.2016 в 15:11

        Я не про вред. А про непонимание и соответствующие ошибки.
        Что это такое? Чем его видит Микрософт? Командный процессор, работающий, как правило, в интерактивном режиме, который также может читать команды из файла, который называется скриптом? Или как язык написания скриптов, у которого есть свой REPL? Согласитесь, разница большая?

        Работать интерактивно в одном синтаксисе и семантике, а писать последовательности действий в других — нелепо. В этом и есть основная проблема. Такая глубинная, что даже вы ее не замечаете, хотя косвенно упомянули в статье. Синтаксис mklink не проще, а привычнее. Так как New-Item, с единым синтаксисом, позволяет создавать очень очень многое. И вот уже, фактически, его синтаксис проще, чем знание многих отдельных утилит, включая их наименование.

        Обещание сдержали — вот вам модуль для управления менеджерами пакетов, вперед.

        Не понял. Что такое «модуль управления менеджерами»?

        Ваша оценка: Thumb up Thumb down 0
        • Vadim Sterkin

          09.03.2016 в 15:53

          Я оговорился, модуль управления поставщиками пакетов. Кликабельно.

          OneGet Architecture

          Ваша оценка: Thumb up Thumb down +1
          • Lecron

            09.03.2016 в 16:16

            Мне кажется, тут то собака и порылась. В провайдерах. Когда нет единого подхода к управлению пакетами. Фактически пользователю приходится знать и учитывать, какой из провайдеров используется. И не только пользователям, но и мейнтенерам.

            Ваша оценка: Thumb up Thumb down 0
          • Vadim Sterkin

            09.03.2016 в 16:23

            Фича, как обычно, ориентирована на организации, а MSI и MSU поддерживаются в полный рост.

            Ваша оценка: Thumb up Thumb down 0
          • Lecron

            09.03.2016 в 16:38

            Возможно я не понял всей глубины этой фичи, поэтому такие глупые претензии.
            Понадобятся ли пользователю дополнительные телодвижения, если владелец репозитория/пакета сменит провайдера? Или создатель пакета изменит его настройки? Или все это берет на себя менеджер пакетов?

            Ваша оценка: Thumb up Thumb down 0
          • Vadim Sterkin

            09.03.2016 в 16:51

            Гм… вот фича — возьмите, попробуйте, разберитесь — это поможет снять некоторые вопросы. Есть поставщик, у него есть пакеты в репозитории. Убрали конкретный пакет? Тогда вы не сможете его скачать у этого поставщика. Но уже скачанный пакет остается локально, им дальше можно управлять.

            Ваша оценка: Thumb up Thumb down 0
          • Lecron

            09.03.2016 в 17:12

            Кстати, вот еще вопрос. А есть ли команда Update-Package, а еще лучше Update-AllPackage?

            Ваша оценка: Thumb up Thumb down 0
          • Vadim Sterkin

            09.03.2016 в 17:20

            Все командлеты перечислены на TechNet, ссылка в соотв. разделе статьи…

            Ваша оценка: Thumb up Thumb down 0
          • Василий Степанов

            14.03.2016 в 20:40

            Привет. Скажи можно ли восстановить boot или bios и как это сделать? Слетел загрузчик виндовс 7 про. В boot изменил уже настройки но винда не хочет загружатся. Ранее была представлена винда 8.1 в сервисе воткнули винду 7 про без моего согласия. Помоги решить проблему!

            Ваша оценка: Thumb up Thumb down 0
          • Vadim Sterkin

            14.03.2016 в 21:27

            http://www.forum.oszone.net

            Ваша оценка: Thumb up Thumb down 0
  6. Алексей

    09.03.2016 в 13:52

    часто слышал про шоколадку, раз уж напомнили то решил наконец ее потестить. результат не особо впечатлил.

    поставил массово набор софта уже стоящий на пк. только около 70% нашлось в репозитории.
    ключи —y —accept-license —f —x — маны покурил буквально пару минут, может что не понял.
    итог:
    софт который я не просил: autoIT, autohotkey. зачем?
    накатило старую версию Acrobat Reader DC, cheat engine;
    не смогло скачать dropbox virtualbox;
    тихий режим не сработал viber, wireshark, light alloy — пришлось ставить галочки и жмакать далее;
    skype удалило старый, но не поставило новый.
    и часть ярлыков не создала, теперь нужно вспоминать какие.

    Warnings:
    — adobereader
    — windjview
    — firefox
    — notepadplusplus
    — teamviewer

    тут я не понял что за ошибки.

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

    Ваша оценка: Thumb up Thumb down +2
    • Vadim Sterkin

      09.03.2016 в 14:13

      Алексей, спасибо за тест. Вопрос тихой установки зависит от авторов пакетов, как я сказал. Установщик обновился, ключи изменились, автор прощелкал. Репозиторий поддерживается ограниченным кругом людей, отсюда и проблемы.

      AutoIT и AHK ставят для тихой установки других программ.

      Ваша оценка: Thumb up Thumb down 0
      • Алексей

        09.03.2016 в 14:28

        понимаю, что автор сам должен подсуетить и обновить свой продукт везде где можно, но меня, как юзера, должен заботить только итог.
        можно ли делать фидбек на обновление\ошибки через шоколадку, я не разобрался. пинать всех авторов лично — муторно и часто бесполезно. продукты они хорошие делают, но сами очень неповоротливые.

        я впринципе люблю сам качать новые версии, втыкать в ченжлоги, новости, и смотреть на что соглашаюсь. вдруг фичу новую добавили, а в случае с консолью ты и не узнаешь о ней никогда. часто ли мы в настройки заползаем? неплохая такая медитация раз в месяц.

        на тестировании win10, MS кстати громко обещали что сделают свой менеджер пакетов и тд и тп. но чую они опять на магазине успокоились. да и много чего они обещали, все пускаю слезу на свою люмию.

        Ваша оценка: Thumb up Thumb down 0
        • Vadim Sterkin

          09.03.2016 в 14:43

          Алексей: на тестировании win10, MS кстати громко обещали что сделают свой менеджер пакетов и тд и тп. но чую они опять на магазине успокоились.
          »

          Обещание сдержали — вот вам модуль для управления менеджерами поставщиками пакетов, вперед. Они не обещали свой репозиторий поддерживать.

          Ваша оценка: Thumb up Thumb down 0
  7. Сергей

    09.03.2016 в 15:46

    PS C:\Users\Gerald> Find-Package '*paint.net*' -ProviderName Chocolatey
    
    Name                           Version          Source                         Summary                                                                                   
    ----                           -------          ------                         -------                                                                                   
    paint.net                      4.0.6            chocolatey                     Paint.NET is image and photo manipulation software designed to be used on computers tha...
    

    Буквально сегодня натолкнулся на Хабрахабре в первый раз на упоминание Chocolatey и тут же в Вашей рассылке. Показалось что вот оно! Думал будет потрясающая скриптовая замена автоустановке свободнораспространяемого ПО с ninite.com, но увы. Актуальность софта не поддерживается на паранаидальном уровне, и проблематика есть описанная участниками выше.

    Ваша оценка: Thumb up Thumb down +2
    • Vadim Sterkin

      09.03.2016 в 15:58

      Сергей, тут минорная разница. Предполагаю, что нет прямой ссылки на загрузку новой версии, приходится каждый раз править пакет, следить. Разработчик ПО не помогает никак репозиторию.

      Ваша оценка: Thumb up Thumb down +1
      • Lecron

        09.03.2016 в 16:23

        А созданы ли разработчику условия для такой помощи. Хотя бы не условия, а предпосылки. Мол это теперь проще, быстрее, удобнее, автоматизированнее. Посмотрите %сюда% и оцените плюшки.

        Ваша оценка: Thumb up Thumb down 0
        • Georgy Grigoryev

          09.03.2016 в 20:31

          Разработчику выгодно чтобы его приложение было всегда самой актуальной версии, поэтому я не понимаю претензий что неудобно пользоваться стандартными средствами дистрибьюции

          Ваша оценка: Thumb up Thumb down 0
          • Lecron

            09.03.2016 в 21:08

            Логично. Однако… как в комиксе xkcd про очередной стандарт. Отказаться от встроенной в программу системы поддержки актуальности не получится, так как виндовая распространена слабо, а поддерживать две накладно. Тем более, что виндовая, судя по комментариям, пока больше похоже на альфа-тест. То то не так, то это не эдак.
            Поэтому и говорю про условия и предпослыки. Это должно быть не просто легко и удобно, а очень легко и удобно. Надеюсь, в ближайшем будущем доработают до вменяемого состояния, вместо выяснения необходимости в кнопке Пуск. :)

            Ваша оценка: Thumb up Thumb down 0
  8. Виталий

    09.03.2016 в 15:51

    Я считаю, что для консоли лучше подходит философия UNIX:

    Пишите программы, которые делают что-то одно и делают это хорошо.
    Пишите программы, которые бы работали вместе.
    Пишите программы, которые бы поддерживали текстовые потоки, поскольку это универсальный интерфейс.

    Вот например, зачем запихивать в PS «Создание соединений, символических и жестких ссылок» со своим синтаксисом, если есть mklink? Для чего там «Создание и распаковка архивов», если есть zip и его аналоги?

    Ваша оценка: Thumb up Thumb down 0
    • Vadim Sterkin

      09.03.2016 в 15:55

      Виталий, а что, в Windows входит консольная утилита для ZIP? А делается это для упрощения скриптов на PowerShell, не надо лезть в CMD, интегрированная справка и т.д.

      Ваша оценка: Thumb up Thumb down 0
      • Lecron

        09.03.2016 в 16:13

        А зачем лезть в cmd, если и тот и другой shell, и оба должны самостоятельно запускать исполняемые файлы и управлять их вводом выводом?
        Против включения такого функционала не возражаю, особенно если это сделано по уму, как интерфейс к zlib, а не очередное разбухание кодовой базы — в проводнике одно, в шелле другое, в cmd третье стороннее.

        Ваша оценка: Thumb up Thumb down 0
        • Виталий

          09.03.2016 в 16:38

          очередное разбухание кодовой базы

          Так и сделали.

          Ваша оценка: Thumb up Thumb down 0
        • Herz Mein

          09.03.2016 в 17:37

          Мое мнение, что PowerShell, это переходный инструмент администрирования прежде всего в корпоративном сегменте. Причем переход не от батников, а от WSH. Поэтому на локальных машинах будет жить cmd.exe с тонной обвесов в виде различных утилит (ведь всем известно, что без некоторых жизни нет), а на другом уровне администрирования применяется более сложный и несравнимо мощный инструмент.

          Что касается личного ноутбука, то за собой замечаю, что все гнутые sed’ы и grep’ы пылятся без дела и даже wget почти не используется.

          Ваша оценка: Thumb up Thumb down +1
      • Виталий

        09.03.2016 в 16:37

        Нет, не входит.
        Но я и на своём хостинге при первой попытке использовать zip получил что- то типа «zip не установлен. Установите командой apt-get install zip».

        Лезть в cmd? Выше сказали, что PS должен запускать бинарники.

        Справка? В Linux команда man %имя_утилиты% либо %имя_утилиты% -?, первая даёт подробный мануал, вторая как краткая справка по параметрам. Работает кажется везде.

        В итоге командный интерпретатор на Linux- одновременно простая и мощная вещь, есть множество альтернатив, так как в нём самом нет ничего сложного, он просто запускает программы, управляет потоком вывода и интерпретирует простейший синтаксис.

        Ваша оценка: Thumb up Thumb down 0
        • Vadim Sterkin

          09.03.2016 в 16:41

          Виталий, что вы предлагаете конкретно? Не развивать OneGet в частности или PowerShell вообще и перейти на Linux?
          Есть пожелания по развитию? Подпишитесь на @PSOneGet, доставляйте фидбэк в юзергруппу.

          Ваша оценка: Thumb up Thumb down 0
          • Lecron

            09.03.2016 в 16:58

            Лично я хочу понимания, что это shell или repl. В том числе от евангелистов и разработчиков. С соответствующим отношением к творению. Ведь отсюда все споры и ошибки продвижения.
            В частности, ответа на вопрос, зачем shell-у, своими средствами работать с архивами. Представьте, что этому научили cmd. Какие эмоции это у вас вызовет? И почему они отличаются от текущих?

            ЗЫ. Считаю, что shell-ом, на чье звание он претендует, станет тогда, когда его можно будет безболезненно прописать в ComSpec.

            Ваша оценка: Thumb up Thumb down 0
          • Виталий

            09.03.2016 в 18:05

            PowerShell развивать в другом направлении. Хотя наверное уже поздно и проще переписать с нуля.

            Наоборот, OneGet это шаг вперёд.
            Про OneGet я ничего не писал, вроде хорошая штука, в теории. На практике как вижу есть проблемы с инсталяторами, отличными от msi, ну да ладно, может, устаканится. Ну и отсутствие официальной репы с проверенными программами, легко ставящимся через msi тоже боль.

            Подпишитесь на

            Я не имею твиттера.

            Ваша оценка: Thumb up Thumb down 0
          • Vadim Sterkin

            09.03.2016 в 18:27

            Официальный репозиторий не помешал бы, но я не очень верю в его рождение. Может быть, с появлением приложений Win32 в магазине это как-то и увяжут с OneGet: магазин будет поставщиком, условно говоря. Посмотрим…

            Ваша оценка: Thumb up Thumb down 0
      • strafer

        14.03.2016 в 16:39

        Vadim Sterkin: Виталий, а что, в Windows входит консольная утилита для ZIP? »

        Стесняюсь спросить: а не проще было её добавить, чем запиливать встроенный функционал?

        Ваша оценка: Thumb up Thumb down 0
        • Vadim Sterkin

          14.03.2016 в 18:59

          Что значит «не проще»? Вы развернули чистую ОС в изолированной среде — откуда вы будете ее добавлять? Встроено в оболочку сто лет как, между тем.

          Ваша оценка: Thumb up Thumb down 0
          • strafer

            14.03.2016 в 22:02

            ПШ пишет МС, и дистрибутивы собирает МС, не проще было в дистрибутив добавить консольный зип?

            Ваша оценка: Thumb up Thumb down 0
          • Vadim Sterkin

            14.03.2016 в 22:15

            PS пишет одна команда, консольный зип не пишет другая команда, поэтому нет, не проще. И нет, не проще.

            Ваша оценка: Thumb up Thumb down 0
          • strafer

            14.03.2016 в 22:20

            Забавно, обычно базар ставят в недостатки опенсорс-(в частности линукс)-сообщества, а на деле МСовский собор как лебедь, рак и щука.

            Ваша оценка: Thumb up Thumb down 0
  9. Herz Mein

    09.03.2016 в 17:50

    > зачем shell-у, своими средствами работать с архивами

    Если есть такая возможность, заложенная в .Net-классах, то почему бы ее не использовать? Тут просто другой подход, отличный от bash или cmd, которые интерпретаторы командной строки. CLI. А PowerShell скорее отладчик для скриптов, имхо.

    Ваша оценка: Thumb up Thumb down 0
  10. Georgy Grigoryev

    09.03.2016 в 20:26

    Буквально вчера опубликовал статью как я накатываю приложения на свежую систему https://habrahabr.ru/post/278757/

    Ваша оценка: Thumb up Thumb down +1
  11. artem

    09.03.2016 в 20:57

    LecronЧто это такое? Чем его видит Микрософт? Командный процессор, работающий, как правило, в интерактивном режиме, который также может читать команды из файла, который называется скриптом? Или как язык написания скриптов, у которого есть свой REPL? Согласитесь, разница большая?»

    Понятно, что задачи разные. Но я не вижу между ними противоречия. Т.е. вполне возможно одним инструментом закрыть обе потребности. К этому и стремится PowerShell. Что-то получается удачно, что-то не очень. Но виденье понятно.

    Ваша оценка: Thumb up Thumb down 0
  12. artem

    09.03.2016 в 21:05

    Vadim Sterkin:
    И продвигают они в качестве основной давно — на TechNet уже давно ничего нового нет про CMD, только PS.
    »

    Скоро будет, надо полагать. CMD (саму оболочку) сейчас сравнительно активно начали дорабатывать. Хотя до этого лет десять не трогали вообще.

    Ваша оценка: Thumb up Thumb down 0
    • Lecron

      09.03.2016 в 22:19

      Вы не путаете консоль conhost и командный интерпретатор cmd?
      Ведь powerShell также запускается в conhost.

      Ваша оценка: Thumb up Thumb down 0
      • artem

        10.03.2016 в 13:28

        PowerShell не обязательно запускается в conhost. Из стандартных — есть ещё ISE. А есть ещё сторонние хосты и собственные хосты у некоторых приложений (например, у SQL Server).

        Допиливают сейчас именно интерпретатор CMD. Хотя и хосту кое-что перепало. Копипаст, например.

        Ваша оценка: Thumb up Thumb down 0
  13. artem

    09.03.2016 в 21:15

    ВиталийПишите программы, которые делают что-то одно и делают это хорошо.»

    Не вижу противоречий. В PowerShell каждый коммандлет делает что-то одно (за редчайшими исключениями). Кто скажет, что «Expand-Archive» умеет записывать DVD или варить кофе — пусть первый кинет в меня камень.

    ВиталийПишите программы, которые бы работали вместе.»

    Здесь PowerShell уделывает все известные мне оболочки, т.к. оперирует объектами, а не текстом. Т.е. «работать вместе» (передавать данные между коммандлетами) получается гораздо эффективнее. Не надо тратить время на парсинг текста и попытку объяснить следующей команде, что же именно представляет собой этот текст.

    ВиталийПишите программы, которые бы поддерживали текстовые потоки, поскольку это универсальный интерфейс.»

    Потоки тоже поддерживаются. И если надо передвать именно тест — с этим нет никаких проблем.

    То есть PowerShell вполне следует приведённой философии.

    ВиталийВот например, зачем запихивать в PS «Создание соединений, символических и жестких ссылок» со своим синтаксисом, если есть mklink? Для чего там «Создание и распаковка архивов», если есть zip и его аналоги?
    »

    Да потому что указанные коммандлеты — это и есть «аналог zip». На самом деле, ответить на эту претензию очень легко. Надо только осознать, что коммандлеты — это не встроенные возможности оболочки, а именно что внешние команды. И всё сразу встаёт на свои места. Ведь это нормально, что у нас есть команды для выполнения каких-то действий, правда? Это справедливо как для PowerShell, так и для любой другой оболочки.

    Да, есть небольшое количество коммандлетов, которые поставляются вместе с оболочкой по умолчанию. Но идеологически они ничем не отличаются от тех коммандлетов, которые появляются отдельно при установке соответствующих компонентов Windows или вовсе предоставляются сторонними разработчиками.

    Ваша оценка: Thumb up Thumb down 0
    • Lecron

      09.03.2016 в 22:24

      artem: Ведь это нормально, что у нас есть команды для выполнения каких-то действий, правда? Это справедливо как для PowerShell, так и для любой другой оболочки. »

      Шелл — как много в этом слове… начало искажаться под воздействием MS.
      Все время считал, что команды не зависят от среды запуска, а встроенные в среду команды, нужны только для обслуживания возможностей самой среды, а не сторонних объектов. Неужели ошибался?
      С этой точки зрения PS начинает напоминать ACDSee и Nero.

      Ваша оценка: Thumb up Thumb down 0
      • artem

        10.03.2016 в 13:34

        Ну почему же. В bash одни команды, в cmd другие. Даже если они где-то совпадают (например, mkdir) — реализация всё равно разная. Так что команды очень даже зависят от среды. Не вижу причины, почему в какой-то другой оболочке это же действие не может называться New-Item.

        Ваша оценка: Thumb up Thumb down 0
    • Виталий

      10.03.2016 в 15:48

      Здесь PowerShell уделывает все известные мне оболочки, т.к. оперирует объектами, а не текстом. Т.е. «работать вместе» (передавать данные между командлетами) получается гораздо эффективнее.

      Сомневаюсь, что все сторонние утилиты поддерживают эти самые объекты. А вот текст поддерживает любая утилита, работающая в командной строке.

      Надо только осознать, что командлеты — это не встроенные возможности оболочки, а именно что внешние команды. И

      Почему тогда у этих командлетов свой синтаксис? Ну никак не похоже, что это внешние команды.

      Ваша оценка: Thumb up Thumb down 0
      • artem

        10.03.2016 в 16:32

        Виталий: Сомневаюсь, что все сторонние утилиты поддерживают эти самые объекты. »

        Сторонние утилиты — нет, конечно. А вот сторонние коммандлеты — запросто. Я бы сказал, что процентов восемдесят сторонних коммандлетов достаточно годно работают с объектами.

        Если коммандлета нет и приходится запускать именно утилиту (исполняемый файл), тогда конечно приходится кормить ей на вход текст. Но текст легко получить из объекта (развернув нужное свойство, например). Я понимаю, что это звучит заумно, но после набора критической массы опыта это получается совершенно интуитивно.

        Виталий: Почему тогда у этих командлетов свой синтаксис? Ну никак не похоже, что это внешние команды. »

        С этим не могу не согласиться. «Не похоже» — правильное слово :)

        Как я сказал выше, к PowerShell надо привыкнуть. Причём я сейчас скажу гадость в сторону наших евангелистов и MVP, но злоупотребление алиасами (dir вместо Get-ChildItem, md вместо New-Item -ItemType «Directory», знак процента вместо Foreach-Object или вопроса вместо Where-Object и так далее, а также пропуск наименований параметров в случае, когда работает умолчание) только запутывает неподготовленных людей. Из-за этого, в том числе, у меня «привыкание» к PowerShell затянулось на годы. Мне кажется, что если бы все примеры команд, опубликованные в блогах и на форумах, содержали полный синтаксис, то новички испытывали бы гораздо меньше анальной боли.

        Ваша оценка: Thumb up Thumb down 0
        • Vadim Sterkin

          10.03.2016 в 16:37

          Отчасти согласен, в контексте % и ?. Но md и dir сразу создают ассоциацию с командами CMD, в то время как Get-Childitem никаких параллелей со знакомыми командами не проводит, а намекает, что теперь надо разучивать новые.

          Ваша оценка: Thumb up Thumb down 0
          • artem

            10.03.2016 в 16:48

            Ассоциации с командами CMD хороши только для тех, у кого большой опыт работы в CMD :) Сейчас таких людей практически не осталось. (Я имею в виду людей, которые уже хорошо разбираются в CMD и ещё плохо в PowerShell).

            Кроме того, даже если ассоциации «работают» на тебя, то против работает нарушение целостности. В мозгу не появляется устойчивого понимания, что любая команда подчиняется определённым принципам именования. И вместо этого тебе кажется, что нормальные команды имеют короткие названия, а только некоторые особо сложные команды почему-то называются как-то по-другому.

            Я имею в виду именно выработку привычек. Т.е. даже если ты прекрасно понимаешь головой, что это алиас, — но если 99% всех увиденных тобой примеров используют эти алиасы, ты воспринимаешь их именно как команды.

            Ваша оценка: Thumb up Thumb down 0
          • Vadim Sterkin

            10.03.2016 в 17:36

            Артем, не нужен большой опыт — dir, ren и md знают все, кто открывал CMD по своему желанию, а не следуя инструкциям на форуме :)

            Я целиком осознаю проблему — сам через нее прошел, поэтому стараюсь приводить командлеты, а не псевдонимы. Но в то же время, если вопрос уже разобран на странице детально, я считаю допустимым использовать псевдонимы (пример).

            Более того, я считаю важным указывать простые и знакомые псевдонимы. Я сам далеко не сразу узнал, что могу использовать dir *.jpg вместо Get-Childitem -filter ‘*.jpg’

            Ваша оценка: Thumb up Thumb down 0
  14. Herz Mein

    09.03.2016 в 23:12

    artem: Надо только осознать, что коммандлеты — это не встроенные возможности оболочки, а именно что внешние команды. »

    Сомнительное утверждение, тот-же zip-архив можно создать и без коммандлета, т.е. это и есть базисная возможность PowerShell. Коммандлет дает удобство, так как не надо на этот «чих» искать решение в библиотеке классов MSDN.

    Ваша оценка: Thumb up Thumb down 0
    • Vadim Sterkin

      10.03.2016 в 10:05

      Нет, это была возможность .NET, а с появлением командлета стала возможностью PowerShell.

      Ваша оценка: Thumb up Thumb down 0
  15. Herz Mein

    09.03.2016 в 23:17

    Lecron: Все время считал, что команды не зависят от среды запуска, а встроенные в среду команды, нужны только для обслуживания возможностей самой среды, а не сторонних объектов. »

    Никто не запрещает использовать консольные утилиты, но возникает вопрос — а зачем? Если все можно решить средствами самого PowerShell (речь не идет о форматах, 7z скорее всего не может)?

    Ваша оценка: Thumb up Thumb down 0
  16. Алексей

    10.03.2016 в 06:26

    На самом деле, использую 2 варианта: разворачивание бэкапа, сделанного сразу после настройки системы либо ставлю собственную сборку Windows 7, куда включаю все нужные настройки и программы.
    А с Win10 менеджер пакетов пока просто ещё не освоил, хотя его наличие вызывает сильный энтузиазм.
    Раньше игрался с разными менеджерами пакетов под Windows, но по тем или иным причинам все были неудобными именно в расчёте «время на освоение»/»время на ручное скачивание». Оказалось проще сделать свою сборку, чем лепить скрипты.

    Ваша оценка: Thumb up Thumb down 0
  17. Евгений Казанцев

    10.03.2016 в 10:54

    Замечательное начинание, я увидел как установить пачку нужных прог одним скриптом, ninite пользовался, особо не впечатлило, сейчас пользуюсь WPI качанными с торрентов, плюс их в том что там есть много больше и реальная автоустановка, минус что необходимо доверять автору репака.
    Я одного не понял, как этим ОБНОВЛЯТЬ установленные программы полностью автоматически, что является ключевой базовой основной фичей любого пакет менеджера? Как сделать чтобы тот же нотепад++ прописался автоматом приложением по умолчанию без залезания в жутко неудобные «новые, они же современные» настройки? Как работает система зависимостей, и есть ли она там вообще?

    Жесткие и символические ссылки давно делаю через Total Commander, в гуе это не в пример удобнее.

    Тот же тотал коммандер помогает забыть про существование архивов и архиваторов.

    Еще есть такая штука как платформа PortableApps, вот она тоже умеет обновлять проги практически автоматом…

    Ваша оценка: Thumb up Thumb down 0
    • Vadim Sterkin

      10.03.2016 в 11:40

      Евгений, обновление программы возлагается на саму программу. Обновление пакета пока не предусмотрено, но его можно удалить и установить заново.

      Ассоциации файлов реализованы только через системные диалоги, начиная с Windows 8.

      Ваша оценка: Thumb up Thumb down 0
  18. Herz Mein

    10.03.2016 в 16:10

    Vadim Sterkin: это была возможность .NET, а с появлением командлета стала возможностью PowerShell. »

    А если оформить, как скрипт или функцию? Например так (без проверки на существование и без преобразования в полные пути, что необходимо):

    param (
    
    	[switch] $create,
    	[switch] $extract,
    	[string] $path,
    	[string] $zip
    
    )
    
    add-type -assembly system.io.compression.filesystem
    
    function create-zip ($path, $zip)
    {
    	[system.io.сompression.zipfile]::createfromdirectory($path, $zip)
    }
    
    function extract-zip ($zip, $path)
    {
    	[system.io.compression.zipfile]::extracttodirectory($zip, $path)
    }
    
    
    if ($create)  { create-zip  $path $zip }
    if ($extract) { extract-zip $zip $path }
    

    Вызывать соответственно:

    .\test -c -p "C:\Some\Folder" -z "D:\Folder\out.zip"  # Для создания
    .\test -e -p "C:\Some\Folder" -z "D:\Folder\out.zip"  # Для извлечения
    
    Ваша оценка: Thumb up Thumb down 0
    • Vadim Sterkin

      10.03.2016 в 16:34

      При чем тут оформление? Вы используете классы .NET напрямую в своей функции. Командлет избавляет от нбх обращаться к классам. В этом и разница. Примерно такая же, как между программистом и ИТ-специалистом.

      Ваша оценка: Thumb up Thumb down 0
      • Herz Mein

        10.03.2016 в 17:56

        Извините, но логики понять не могу. Какая разница будете вы вызывать функцию или командлет? Синтаксис этих действий не будет отличаться ничем, как, например, в этой команде:

        get-command -type function | more
        

        Где more, это функция-обвязка над more.com

        Ваша оценка: Thumb up Thumb down 0
        • Vadim Sterkin

          10.03.2016 в 18:25

          Логика простая — для решения задачи достаточно знать название командлета и уметь вызывать его справку. При этом и не нужно уметь работать с классами .NET, рыться в MSDN и писать функции. Неужели вы не понимаете, что для этого требуется разный уровень подготовки?

          Вы пользуетесь ярлыками для запуска программ или идете для этого каждый раз в Program Files? А если ее там нет, будете по диску рыться? Так вот мне все равно, где лежит программа, если ее открывает ярлык. Равно как мне все равно, какие там классы и функции задействует командлет, если он выполняет задачу.

          Ваша оценка: Thumb up Thumb down 0
          • Herz Mein

            10.03.2016 в 21:31

            Хорошо, я вас понял, было бы из-за чего спорить. Только все равно придется рыться в документации, искать описание типов, находить методы и свойства объектов, способы их создания. Например:

            get-item file.txt | get-member
            

            Обращаешь внимание на методы и их описание и почему-то хочется залезть в MSDN ))

            Ваша оценка: Thumb up Thumb down 0
    • artem

      10.03.2016 в 16:37

      Троллейбус из буханки хлеба.jpg

      Я так понимаю, что никто не спорит с тем, что функциями можно сделать вообще всё, что угодно :) Польза же, очевидно, в том, что теперь конкретно для этого действия отдельную функцию писать не нужно. А значит — во-первых, людям будет проще этим пользоваться (особенно если они не умеют писать функции или не могут позволить себе каждый раз их импортировать), а во-вторых будет больше стандартизации. Это несомненное благо. Согласитесь, тупо, когда в пяти скриптах от пяти разных авторов требуется распаковывать архивы, и каждый решает эту задачу немного по-своему. (Например, одно время был популярен вариант через недокументированный com-объект Windows Explorer).

      Ваша оценка: Thumb up Thumb down 0
  19. lesha

    11.03.2016 в 16:03

    Я работаю на Windows и Mac, а если настраиваю сервер — то Linux. OS X начисто переустанавливал пару раз, но там всё просто — выбрал дату в TimeMachine 10-15 мин и система готова.
    На Windows у меня большинство программ портативные, ставлю только хром ибо иначе не обновляется и пакет программ Adobe, потому с версии СС они качаются через Cretive Cloud. Смысла городить огород с автоматизацией не вижу. PowerShell может и хорош, но мне на Windows нечего автоматизировать, а для Linux и OS X есть bash, которым я уже давно пользуюсь.
    Если друг просит «переустанови мне Винду, а то что-то глючит» ставлю систему с внешнего диска своим «фирменным» способом, а остальное пусть сам себе ставит

    Ваша оценка: Thumb up Thumb down 0
    • Vadim Sterkin

      12.03.2016 в 12:31

      lesha: OS X начисто переустанавливал пару раз, но там всё просто — выбрал дату в TimeMachine 10-15 мин и система готова. »

      Разве это начисто? Так и Windows можно поверх переустановить.

      Ваша оценка: Thumb up Thumb down 0
      • lesha

        12.03.2016 в 19:29

        Под «начисто» я имел ввиду установку на новый диск, например после замены HDD на SSD или на новый компьютер. Windows предпочитаю ставить с нуля, потому что с установкой поверх уже наступал на грабли последний раз когда накатил десятку на свой 8.1
        Вадим, используете в работе AutoIT? Мне эта система нравится своей простотой и возможностями, было бы интересно узнать ваше мнение об этом средстве

        Ваша оценка: Thumb up Thumb down 0
        • Vadim Sterkin

          12.03.2016 в 23:47

          Autoit сейчас в работе не использую, но приходилось :)

          Ваша оценка: Thumb up Thumb down 0
  20. Carudo

    11.03.2016 в 20:04

    Предпочитаю портативные сборки и Chocolatey.

    Ваша оценка: Thumb up Thumb down 0
  21. strafer

    14.03.2016 в 08:07

    В отличие от Get-History, содержащей историю текущей сессии, этот журнал ведется глобально и сохраняется при закрытии окна.

    Вау, ну ещё немного и ПШ таки дойдёт до уровня старых версий баша :)

    С удалением приложений не все так гладко, впрочем.

    Как-то уже писал об этом в комментариях к другой статье: если менеджер не будет тоталитарным, а пакеты будут активными, то получится отстой. Это наглядный пример, не слишком-то оно по сути отличается от обычной установки, только уменьшается число ручных операций.

    Ваша оценка: Thumb up Thumb down 0
  22. Herz Mein

    14.03.2016 в 16:24

    strafer: Вау, ну ещё немного и ПШ таки дойдёт до уровня старых версий баша :) »

    Баш, это который не умеет создавать директории без корутилс (mkdir) )) ?

    Ваша оценка: Thumb up Thumb down 0
  23. Herz Mein

    14.03.2016 в 18:22

    Вот и меня тоже заинтересовал ваш комментарий, по поводу PowerShell скоро догонит баш. Это даже не смешно. Вариант bash_history, кому он вообще нужен, был всегда возможен, но тут уж извините, как настроишь, так и поедешь. А это как-раз и есть юникс-вей (а не одно приложение — одна задача). А bash я бы сравнивал с cmd, это где-то рядом.

    Ваша оценка: Thumb up Thumb down 0
    • Lecron

      14.03.2016 в 21:46

      Herz Mein: А bash я бы сравнивал с cmd, это где-то рядом.
      »

      А было бы интересно сравнение cmd, ps, bash.
      Не только как среды системного администрирования и исполнения скриптов, а именно как шеллов, программ организующих запуск и взаимодействие сторонних программ, и интерактивного взаимодействия с пользователем.

      Ваша оценка: Thumb up Thumb down 0
    • strafer

      14.03.2016 в 21:59

      Чтобы не было непонимания, до этого я вёл и далее веду речь об удобстве интерактивной работы.

      Herz Mein: Вот и меня тоже заинтересовал ваш комментарий, по поводу PowerShell скоро догонит баш. Это даже не смешно. »

      Т.е. вы твёрдо считаете, что ПШ догнал (а то и перегнал!) современные никсовые шеллы в плане удобства?

      Herz Mein: но тут уж извините, как настроишь, так и поедешь. А это как-раз и есть юникс-вей (а не одно приложение — одна задача). »

      А где про эту интерпретацию можно почитать? Или вы только что это сами придумали?

      Herz Mein: А bash я бы сравнивал с cmd, это где-то рядом. »

      Вы документацию этого самого баша читать пробовали? Кмд рядом с даже башем — это как палка-копалка рядом с современным экскаватором, причём экскаватор таковым является уже очень давно, просто с годами ещё понемногу хорошеет.

      Просто даже по списку статьи:
      — вау-эффекты типа подсветки синтаксиса в никсовых шеллах давно уже обыденность
      — про поиск по истории кучей способов вообще странно напоминать
      — появление возможности создания временного файла меня вообще в ступор вогнало (хотя к интерактивности это не относится, но вогнало)

      Ну и да, мне всё ещё хочется услышать, что такого плохого в том, что mkdir обеспечивается coreutils.

      Ваша оценка: Thumb up Thumb down 0
      • Vadim Sterkin

        14.03.2016 в 22:13

        strafer: Просто даже по списку статьи:
        — вау-эффекты типа подсветки синтаксиса в никсовых шеллах давно уже обыденность
        — про поиск по истории кучей способов вообще странно напоминать
        — появление возможности создания временного файла меня вообще в ступор вогнало (хотя к интерактивности это не относится, но вогнало) »

        Начинается заламывание рук. Я выбрал те изменения, которые понятнее аудитории этого блога. Полный список по ссылке в конце статьи.

        Ваша оценка: Thumb up Thumb down 0
        • strafer

          14.03.2016 в 22:16

          Так я не вам тут отвечаю, а указанными комментариями я проиллюстрировал своё замечание о том, что многим фичам в никсовых шеллах сто лет в обед.

          Ваша оценка: Thumb up Thumb down 0
          • Vadim Sterkin

            15.03.2016 в 14:07

            Меня всегда забавляет позиция «они с нас слизали». Взяли лучшее для своих клиентов, тем более те сами это просят — фидбэк-то есть. Вы ведь при любом раскладе будете тыкать в них острой палочкой — если ничего не делать, если изобрести какой-нибудь свой метро еще раз и т.д. Я считаю, что они делают правильно :)

            Ваша оценка: Thumb up Thumb down 0
          • strafer

            15.03.2016 в 14:34

            Взяли лучшее для своих клиентов

            Терминами можно вертеть как угодно, суть понятна всем.

            Меня на самом деле эти МСовские подвижки, как и активное продвижение виндовой консоли вами, умиляют на фоне форумских срачиков, в которых никсы перманентно обвиняли в страшных грехах типа «там надо настраивать в консоли», или даже «там можно работать только в консоли». А оказалось-то…

            Кроме того, из тех же срачиков можно сделать открытие, что оконный интерфейс придумала МС, а никсы его у неё слизали. Далее, я видел перлы о том, что компиз никсы слямзили с Aero. Учитывая всё это, есть стойкое ощущение, что через несколько лет такие корки начнут мочить и про консоль или, по крайней мере, про отдельные её элементы :)))

            Вы ведь при любом раскладе будете тыкать в них острой палочкой — если ничего не делать, если изобрести какой-нибудь свой метро еще раз и т.д.

            В этом вы несправедливы, я тычу только когда есть за что. У вас регулярно выходят статьи, к которым нет моих комментариев, что уже опровергает ваши слова :)

            Ваша оценка: Thumb up Thumb down 0
          • Vadim Sterkin

            15.03.2016 в 16:25

            Меня на самом деле эти МСовские подвижки, как и активное продвижение виндовой консоли вами, умиляют на фоне форумских срачиков, в которых никсы перманентно обвиняли в страшных грехах типа «там надо настраивать в консоли», или даже «там можно работать только в консоли». А оказалось-то…

            Основной вектор ваших комментариев тут холиварный, Windows vs. Linux. Вот и сейчас вы подтягиваете в это обсуждение какие-то древние холивары из форумов, которые вы читаете, пытаясь раздуть дискуссию в этом унылом направлении — кто у кого слизал и кто кого в чем упрекал. bash в миллион раз лучше PowerShell? Да и фиг с ним, тут это никому не интересно.

            Мое «активное продвижение виндовой консоли» отражает мой личный опыт в немалой степени (и было бы странно, если б я продвигал тут bash). Но я за редким исключением не рассказываю, как настраивать Windows в PowerShell, что видно из списка статей о PowerShell. Даже в этой записи жирным по белому написано слово автоматизация в контексте рутинных задач.

            Ваша оценка: Thumb up Thumb down 0
          • strafer

            15.03.2016 в 16:42

            Основной вектор ваших комментариев тут холиварный, Windows vs. Linux

            Пожалуй.

            Мое «активное продвижение виндовой консоли»

            А я вас за него и не упрекал. На мой взгляд консоль это замечательно. Человечество от всяческой наскальной живописи и прочего подобного пришло к алфавиту и письму. Вместо дебильного тыканья в картинки гораздо лучше общаться с компьютером при помощи текста.

            Но я за редким исключением не рассказываю, как настраивать Windows в PowerShell, что видно из списка статей о PowerShell. Даже в этой записи жирным по белому написано слово автоматизация в контексте рутинных задач.

            Можно подумать, будто я говорил про настройку из консоли как про что-то плохое. Настройка из консоли — хорошо, автоматизация скриптами — ещё лучше.

            Ваша оценка: Thumb up Thumb down 0
          • strafer

            16.03.2016 в 16:47

            Ну вот и пример того, о чём я выше говорил. Человек отдаёт должное ПШ, считая при этом, что никсы в это не могут https://www.outsidethebox.ms/18237/#comment-32751

            Честно говоря даже не думал, что придётся настолько мало ждать :)

            Ваша оценка: Thumb up Thumb down 0
  24. Herz Mein

    15.03.2016 в 09:06

    strafer: многим фичам в никсовых шеллах сто лет в обед. »

    Так PS и не стОит рассматривать, как шелл, он не для локального администрирования. Решение прикладных задач (вычислить, обработать текст, скачать информацию, отладить и запустить скрипт) — да, решение задач файлового менеджера, лаунчера — скорее нет. Хотя он и не лишен удобств (автодополнение путей, команд и параметров, история, сохранение сессии, псевдонимы, полная настройка строки приглашения (аналог никсовых $PS1 и $PS2, но не переменная, а функция)) Основная задача PS, на мой взгляд, это корпоративное администрирование (за счет продвинутых возможностей PSremoting), а это опять же не требует шелл, как таковой.

    Если рассматривать сам хост для запуска PowerShell, cmd или bash, то в виндоус лучший, на мой взгляд, это conemu — настраиваемый, с табами, со сплитом, с фоном, с фулл-скрином и т.д.

    Ваша оценка: Thumb up Thumb down 0
    • strafer

      15.03.2016 в 10:06

      Herz Mein: Так PS и не стОит рассматривать, как шелл, он не для локального администрирования. »

      Это видимо завуалированное согласие, что по удобству интерактива он таки в догоняющих.

      Herz Mein: автодополнение путей, команд и параметров, история, сохранение сессии, псевдонимы »

      То, что в никсовых шеллах существует десятилетиями.

      Herz Mein: полная настройка строки приглашения (аналог никсовых $PS1 и $PS2, но не переменная, а функция) »

      И никсовых шеллах полная настройка приглашения функциями, причём опять же давно появилось.

      Фишечки ПШ в объектах в пайпах, но вот сам интерактив в никсах вылизан гораздо лучше, потому что вылизывание началось давнее и многие пользователи, в т.ч. по совместительству программисты, в консоли реально работают повседневно. Положа руку на сердце, МС как обычно не стесняясь просто подглядела и подтянула годами вымученные под никсами решения.

      Опять же объекты эти во многих случаях нужны как велосипеды-костыли для обхода исторически нагромождённых особенностей виндовой архитектуры и элегантным решением кажутся только, перефразируя название блога, insidethebox.

      Ваша оценка: Thumb up Thumb down 0
    • Lecron

      16.03.2016 в 13:15

      Herz Mein: Так PS и не стОит рассматривать, как шелл, »

      Прочтите его название.

      Ваша оценка: Thumb up Thumb down +2
      • strafer

        16.03.2016 в 16:42

        И то верно :)))

        Ваша оценка: Thumb up Thumb down 0
  25. Herz Mein

    15.03.2016 в 18:21

    strafer: Это видимо завуалированное согласие, что по удобству интерактива он таки в догоняющих. »

    Ну это вы додумали, то что вам хотелось бы. На самом деле я не вижу каких-то явных, незаменимых элементов, которые могли бы для никсового интерпретатора стать киллер-фичей. Скорее это устройство самой ОС, где гораздо больше возможностей для ее администрирования посредством CLI.

    strafer: То, что в никсовых шеллах существует десятилетиями. »

    На счет сохранения сессии я сомневаюсь, автодополнение параметров команд тоже нет, например нельзя ввести `bash —v’, что бы дополнилось до —version

    На самом деле это все не принципиально. Для cd, pwd, pushd и т.д. нет никакой разницы, т.е. вообще никакой.

    strafer: Опять же объекты эти во многих случаях нужны как велосипеды-костыли »

    В PowerShell ВСЁ объект, даже если это один единственный символ. Исходя из этого и вся философия, которая оочень далека от никсовой…

    Ну и на счет слизали, позаимствовали… Скорее унифицировали, это желание сделать инструмент который был бы одинаково удобен для всех групп IT-специалистов, что бы сел и в минимальные сроки разобрался. Кроме того, где-то читал, что в ось хотят прикрутить никсовую подсистему, вот тогда будет вообще гибрид, в котором без костылей можно будет юзать нативный юникс-софт (соответствующим образом скомпилированный)…

    Ваша оценка: Thumb up Thumb down 0
    • strafer

      15.03.2016 в 23:44

      Herz Mein: На самом деле я не вижу каких-то явных, незаменимых элементов»

      Ну да, из общения с вами создаётся впечатление, что вы в целом не слишком знакомы с возможностями никсовых шеллов.

      Herz Mein: которые могли бы для никсового интерпретатора стать киллер-фичей »

      Одной мегафичи, конечно, нет. Есть множество вроде бы мелких, которые вместе набирают критическую массу удобства.

      Herz Mein: На счет сохранения сессии я сомневаюсь »

      Это, как и положено, не является задачей шелла, а реализуется внешними средствами, такими как tmux, screen и т.п. Tmux относительно молодой, но при этом он почти ровесник самого ПШ, а вот screen разрабатывается с 1987 года. 1987 года, Карл.
      В общем, не сомневайтесь.

      Herz Mein: автодополнение параметров команд тоже нет, например нельзя ввести `bash —v’, что бы дополнилось до —version »

      Вы не поверите http://itmages.ru/image/view/4006064/88d9b0b6
      И есть ещё много всякого, чего можно автодополнять, а так же способов автодополнения.

      Забавно, что вы этим постом продемонстрировали замечательный пример для иллюстрации моего ответа Вадиму https://www.outsidethebox.ms/18237/#comment-32746 :)

      Herz Mein: В PowerShell ВСЁ объект, даже если это один единственный символ. Исходя из этого и вся философия, которая оочень далека от никсовой… »

      Так про то и веду речь, что героическое преодолевание с помощью объектов (специально для вас уточнение: не являющихся тривиальным текстом) в ПШ в никсах в огромном числе случаев просто не нужно и чисто текстовыми способами элементарно решается. И вытекает это действительно из архитектуры системы, ПШ её заложник, если хотите.

      Ваша оценка: Thumb up Thumb down 0
    • strafer

      15.03.2016 в 23:59

      Ах да, совсем забыл.

      Herz Mein: Кроме того, где-то читал, что в ось хотят прикрутить никсовую подсистему, вот тогда будет вообще гибрид, в котором без костылей можно будет юзать нативный юникс-софт (соответствующим образом скомпилированный)… »

      Так то уже в историю вроде как отходит https://ru.wikipedia.org/wiki/Подсистема_для_приложений_на_базе_UNIX

      Ваша оценка: Thumb up Thumb down 0
      • Herz Mein

        16.03.2016 в 07:20

        Нет, это не то. https://habrahabr.ru/company/eset/blog/278339/

        Ваша оценка: Thumb up Thumb down 0
  26. Vadim Sterkin

    16.03.2016 в 17:18

    Всем спасибо за высказанные мнения

    Ваша оценка: Thumb up Thumb down 0

Обсуждение завершено.

Subscribers

Популярные записи

  • В чем риск работы в устаревшей операционной системе (180)
  • Как массово задать дату изменения или создания файлов в PowerShell (17)
  • Как не заблудиться в 2D NAND и 3D NAND при выборе SSD (162)
  • Почему Microsoft вас не слушает, и можно ли что-нибудь сделать с этим (116)
  • Почему Windows 10, 8.1 и 8 дефрагментируют ваш SSD, и как этого избежать (395)
  • Как в Windows 10 автоматически выполнять задачи на восходе и закате солнца (33)
  • Создание загрузочного диска Windows PE с .NET Framework и PowerShell (119)
  • Еще →

Свежие комментарии

  • Vadim Sterkin к записи Как выполнять команды и скрипты от имени системы средствами Windows
  • Vadim Sterkin к записи Поддержите меня подпиской или донатом!
  • Валерий Плотников к записи Поддержите меня подпиской или донатом!
  • Артём Ракчеев к записи Нюансы управления звуком в Windows 10
  • Игорь к записи Поддержите меня подпиской или донатом!
  • Vadim Sterkin к записи Поддержите меня подпиской или донатом!
  • Игорь к записи Поддержите меня подпиской или донатом!
  • Vadim Sterkin к записи Поддержите меня подпиской или донатом!

Рекомендую ресурсы

  • Windows 10, etc — канал этого блога в Telegram
  • Инсайдеры Windows 10 — чат блога в Telegram
  • Community — новости предварительных сборок
  • Николай Павлов — тайны планеты Excel
  • Вадимс Поданс — PKI, PowerShell и Тера Патрик
  • Василий Гусев — PowerShell и другие скрипты
  • Kazun — PowerShell для взрослых

Реклама

Измененная тема eleven40 Pro на платформе Genesis · Архивы и метки · Правила (16+) · О рекламе · Обратная связь · Вход

Допускается копирование материалов без изменений, с указанием имени автора и гиперссылки на сайт.