Какие есть инструменты командной строки для автоматизации работы в Microsoft Windows
Обновлено: 21.11.2024
Если вам когда-либо приходилось администрировать что-то вроде Linux, BSD, Solaris или подобных систем, вы знаете, насколько мощной может быть командная строка. Практически любую операционную систему POSIX можно полностью администрировать из командной строки. Даже Microsoft начала догонять администрирование благодаря достижениям в Powershell. Командная строка упрощает автоматизацию и администрирование системы за счет более сложного обучения.
Командная строка сама по себе является не инструментом, а набором инструментов. Инструменты могут быть разными, их можно добавлять или удалять в зависимости от системы, но конкретный инструмент полезен ровно настолько, насколько он предназначен. Молоток мало что вам даст, когда все, что у вас в руках, — это винты. Самая лучшая отвертка не сильно помогает, когда у вас маленький зазор. Используйте правильный инструмент для правильной работы, но убедитесь, что у вас есть правильный набор инструментов.
Командная строка для администрирования
Для администрирования в основном требуется командная строка. Технические специалисты Windows часто упираются в стену, потому что пренебрегают изучением командной строки и Powershell. Причина, по которой командная строка становится настолько важной, заключается в том, что она устраняет уровень абстракции, который может маскировать невежество. Вы вынуждены противостоять тому, что на самом деле знаете о работе системы.
Практически каждый сервер Linux или BSD будет использовать SSH для целей администрирования. SSH позволяет вам подключаться, как если бы вы сидели перед терминалом машины. Если вы не знаете командную строку и полагаетесь на графический интерфейс в Linux или BSD, вам нужно либо зайти на сайт, как-то настроить пересылку X (если вы не знаете командную строку, это будет сложно), либо есть какое-то другое решение для подключения. Добавление графического интерфейса также создает ряд проблем с безопасностью для рабочего сервера. Большинство служб также не имеют графического интерфейса для управления своими настройками, даже если вы решите нажать X. Для управления сервером Linux или BSD вам понадобится командная строка.
MacOS находится в странном положении из-за новых изменений безопасности Apple, но если вы правильно настроили MDM, MacOS во многом не отличается от BSD. В этой настройке есть много предостережений, и их намного больше, чем уместно в этой статье.
Администрирование Windows
В Windows 10 или Server 2016 и более поздних версиях вы можете использовать командную строку исключительно для администрирования практически любых параметров или операций ОС, а также большинства корпоративных продуктов Microsoft. Некоторые функции для Exchange практически применимы только через Powershell для многих менее распространенных операций. Я ожидаю, что Microsoft продолжит продвигать эту тенденцию, особенно с их предыдущим выпуском Server Core, который вообще не имеет графического интерфейса (и, что удивительно, не требует перезагрузки каждый месяц).
Большинство инструментов RMM предлагают какой-либо инструмент командной строки. Если вы управляете многими машинами и вам нужно внести изменения в реестр, вы хотите вызвать клиент или сделать это из командной строки? Большинство решений для удаленного управления Windows берут на себя сеанс или требуют дорогого лицензирования, поэтому вам нужно либо дождаться ухода клиента (в зависимости от политики компании), либо получить его разрешение на выполнение работы. Не зная базового инструмента командной строки, вы теряете возможность упростить себе и им жизнь.
По мере того, как вы будете узнавать больше о командах и о том, как работают процессы в операционной системе, вы можете связать эти команды вместе, чтобы использовать более продвинутые функции. Вы можете найти в лесу определенный домен, чтобы включить корзину AD или перезапустить весь сетевой стек определенным образом. Ограничением становится то, какие инструменты вы знаете и насколько хорошо понимаете систему.
Командная строка для автоматизации
После того как вы научитесь выполнять определенный процесс, вы можете повторить его снова. Некоторые однострочники, возможно, не стоят написания сценария, но они того стоят, если вам приходится делать их много. Сила автоматизации заключается в том, что она экономит время или снижает сложность. Мой наиболее часто используемый скрипт — это тот, который просто запускает sfc и dism. Автоматизация не должна быть сложной, чтобы упростить администрирование.
Первым условием большей части автоматизации является изучение языка сценариев. Если вы администрируете те же системы, которые хотите автоматизировать, вам нужно выучить язык, соответствующий вашей среде. Каждая система Server 2003 и более поздних версий имеет примерно одинаковую командную строку. Windows 10 и производные имеют Powershell в пригодной для использования версии. На каждой машине MacOS доступны Perl и Bash. Linux немного более гибкий, но есть большая вероятность, что там есть Bash, а также другой язык сценариев, такой как Perl или Python.
Когда вы изучаете командную строку в Windows, вы изучаете основные компоненты создания пакетного сценария и/или основы Powershell. Когда вы делаете то же самое в Linux, вы учитесь создавать сценарии Bash. Вы просто должны быть в состоянии собрать части вместе и любые части, специфичные для языка, и вы можете начать экономить время, автоматизируя отупляющие задачи.Если вам нужно переименовать папку через файлы, чтобы добавить суффикс к каждому из них, вы хотите сделать это вручную или с помощью команды? Если этот процесс распространен, вы хотите, чтобы его нужно было повторять каждый раз, или запрограммировать его для повторного использования по желанию?
Использование командной строки — это основная валюта функционального скрипта для автоматизации большинства систем. Вы просто склеиваете остальную часть процесса вместе с необходимой логикой и переменными. Bash, Powershell и подобные им можно использовать для написания сценариев, выходящих за рамки написания сценариев и системного администрирования, но они не являются лучшими в этом. При этом все они являются самостоятельными языками программирования.
Командная строка общего назначения
Правильное применение командной строки может значительно облегчить вам жизнь, даже если вы не занимаетесь ИТ. Знание того, как решить основные проблемы, означает, что вы можете вернуться к тому, что вы хотите или должны сделать, не тратя время или деньги на то, чтобы кто-то устранил это за вас. Я бы предпочел использовать Powershell для удаления приложений Windows 10, чем бороться с магазином. Некоторые базовые задачи становятся намного проще и позволяют вам превратиться из обычного пользователя в опытного пользователя.
Если вам нужно переименовать сотню файлов по формуле, вы хотите сделать это вручную или использовать простой скрипт? Если вам нужно отладить сбой и вы знаете, что искать, хотите ли вы попробовать открыть журнал и выполнить поиск или использовать что-то вроде grep или find, чтобы вернуть только соответствующие части? Метод с графическим интерфейсом может работать, но когда вы понимаете процесс, вы можете сэкономить время и нервы, выполняя его из командной строки. Подобные уловки делают пользователя опытным пользователем.
Мне не нужно открывать текстовый редактор и выделять строки, чтобы удалить ровно 54 строки из блока текста, я открываю vim, перемещаюсь туда, где мне нужно, и нажимаю d54< /em>, введите, ZZ, введите из режима выхода. Это, конечно, бесполезное занятие, если вы не сталкиваетесь с подобными проблемами. Командная строка может значительно повысить эффективность использования ОС, но иногда проще использовать графический интерфейс для менее распространенных задач.
Когда командная строка не работает?
Некоторые среды могут полностью работать из командной строки без какого-либо влияния на функциональность и эффективность рабочего процесса, например серверные среды. Некоторые из наиболее идеалистически настроенных пользователей Linux, которых я встречал, полностью перевели свои рабочие станции в среду без графического интерфейса (SVGAlib или DirectFB), чтобы избежать даже искушения использовать графический интерфейс. Хотя я уважаю огромный объем работы, проделанной для того, чтобы сделать это предприятие хотя бы близким к функциональному, оно также звучит как выплескивание ребенка вместе с водой из ванны.
Я лично использую оконный менеджер, который позволяет мне запускать любую программу с помощью сочетаний клавиш. Все параметры и внешний вид необходимо настроить, отредактировав файл конфигурации или аналогичный для среды. Но что, если я хочу изменить внешний вид приложения Gnome или подобного? Я просто открою соответствующую утилиту настройки и выберу то, что мне нужно. Теоретически я мог бы сделать это из командной строки, но это становится пустой тратой времени и усилий. Иногда мышь просто упрощает задачу.
Для правильной задачи требуется правильный инструмент, а иногда программа разработана без учета командной строки. Иногда вы можете обойти это, изменив конфигурации или записи реестра в зависимости от платформы, но иногда просто щелкнуть параметр менее утомительно и требует меньше времени. Я собираюсь навсегда изменить размер шрифта примерно один раз в данной настройке, и мне это не нужно, чтобы помочь клиентам, поэтому мне не нужно учиться, как это сделать из командной строки, кроме болезненного любопытства.
Правильные инструменты для правильных задач
Разница между командной строкой и графическим интерфейсом для многих задач подобна разнице между очень полным стандартным набором инструментов и меньшим, более ограниченным специализированным набором. В специальном наборе может быть не так много инструментов, он может быть не таким полезным или даже качественным, как стандартный набор, но крошечный набор ювелирных отверток будет намного лучше для небольших проектов, чем ваша дорогая покупка на всю жизнь PH1 и более высокий набор. Ваш хороший набор метрик может соответствовать стандартному (имперскому) с правильными приемами, но он не будет таким же эффективным, как простое использование стандартного набора.
Командная строка облегчит вам жизнь при выполнении многих задач администрирования и автоматизации, но она не будет лучшим набором инструментов для каждой отдельной задачи. Изучайте командную строку ради того, что она упрощает, а не ради ошибочного пуризма по отношению к силе командной строки. Командная строка чрезвычайно мощна для многих задач, но даже если она может делать все, это может быть не лучший набор инструментов для каждой задачи.
Применяется и обратное. Графический интерфейс не будет столь же эффективным для многих задач, которые командная строка может выполнить за считанные секунды. Командная строка предоставляет набор инструментов, который мало что может предоставить.Большая разница в том, что вам нужно потратить больше времени на изучение того, что все делает, чтобы использовать это, но это делает вас лучшим пользователем и лучшим администратором. Изучите командную строку, но узнайте, где командная строка ограничена, чтобы стать лучшим техником, которым вы можете быть, или перейти от пользователя к опытному пользователю. У меня уходит несколько секунд, чтобы переименовать тысячу файлов, а у вас сколько времени?
Если вы являетесь одним из многих пользователей наших командлетов Windows Azure Powershell или нашего инструмента командной строки Windows Azure, то вы знаете, что интерфейс командной строки упрощает управление и развертывание веб-сайтов, мобильных служб, виртуальных машин, служебной шины и многого другого. больше в Windows Azure из вашей любимой командной строки в Windows, Mac и Linux.
Это не все, что вы можете сделать, вы можете сделать гораздо больше! Вы можете взять наши инструменты и использовать их в своих любимых сценариях как часть вашей инфраструктуры автоматизации. Или вы можете использовать их прямо в своей любимой среде разработки.
Ниже приведены сообщения сообщества и нашей команды, в которых рассказывается об этих преимуществах автоматизации Azure.
Общие сценарии
Эти сообщения охватывают основы написания сценариев из различных сред оболочки.
- Простой сценарий bash для «лазурного» клиентского интерфейса. В этом посте я покажу вам, как использовать такие инструменты, как grep и awk, для объединения команд Azure в сценарии.
- Простое создание сценариев Powershell с помощью командлетов Azure Powershell. В этом посте я покажу, что вы можете создавать наши командлеты, используя конвейер в своих скриптах Powershell.
Сценарии мобильных сервисов
В этой мини-серии статей о сценариях Джош Твист из команды мобильных сервисов показывает, как использовать интерфейс командной строки для автоматизации задач, связанных с мобильными сервисами.
- Начало работы с интерфейсом командной строки и резервное копирование сценариев. В этом первом сообщении Джош Твист из команды Mobile Services показывает, как загружать и создавать резервные копии ваших скриптов.
- Дополнительные интерфейсы командной строки — изменение рабочего процесса мобильных сервисов. Джош сделал еще один шаг вперед в области автоматизации написания сценариев. На этот раз он написал демон, который следит за папкой, пока вы редактируете сценарии, и автоматически загружает их по мере внесения изменений.
- Наблюдатель за журналом мобильных сервисов. Джош показывает, как создать локальный наблюдатель журналов, который опрашивает мобильные службы на наличие журналов и записывает все новые записи в консоль.
Виртуальные машины (только Powershell)
Майкл Уошам (Michael Washam) опубликовал серию замечательных статей о том, как использовать командлеты Powershell.
- Перенесите виртуальную машину в Windows Azure с помощью Powershell. В этом посте Майкл Уошам показывает, как можно создать скрипт для переноса и подготовки виртуальной машины.
- Развертывание сертификатов с помощью виртуальных машин Windows Azure и PowerShell. Майкл показывает, как создавать и развертывать сертификаты для виртуальных машин Windows и Linux!
- Публикация и синхронизация веб-ферм с использованием виртуальных машин Windows Azure. Майкл показывает, как развернуть веб-ферму виртуальных машин Azure, которую можно опубликовать с помощью Visual Studio Web Deploy и синхронизировать с помощью сценариев Powershell.
Использование интерфейса командной строки в ваших любимых средах разработки
В этом наборе сообщений вы узнаете, как разработчик может использовать наши инструменты в средах разработки, включая Visual Studio, PHP Storm и Cloud 9.
- Работа с Windows Azure из PHP Storm. Маартен Баллиау из Jet Brains покажет вам, как настроить azure CLI из Jet Brains PHP Storm или Web Storm. В этом посте сотрудники C9 показывают, что вы можете установить «лазурный» клиентский интерфейс прямо из терминала в Cloud 9. Как только он у вас появится, весь мир Azure будет открыт для вас прямо из браузера.
- Работа с инструментами командной строки Windows Azure из Visual Studio. Маартен показывает, как использовать командлеты Windows Azure Powershell в Visual Studio.
- Использование интерфейса командной строки Windows Azure в Windows и в Visual Studio. Сандрино Ди Маттиа показывает, как использовать azure CLI в Visual Studio
Как видите, автоматизация облака с помощью инструментов командной строки в ваших сценариях позволяет сделать несколько замечательных вещей.
Как разработчики, которые тратят большую часть нашего времени на кодирование для OSX и Linux, нам было любопытно, как современная установка командной строки может выглядеть в Windows.
Опрос разработчиков StackOverflow напомнил нам, что число разработчиков, использующих Windows, больше, чем любую другую ОС, поэтому нам было любопытно, соответствует ли инструментарий тому, к чему мы привыкли в стране *nix.
Потратив некоторое время на оценку инструментов интерфейса командной строки Windows, мы остановились на наборе инструментов, которые, по нашему мнению, помогут нам достичь цели на 95 %.
В конце дня мы остановились на комбинации:
- PowerShell
- КонЭму
- PSReadLine
- Получить PSG
- Шоколад
- Бабун (необязательно)
См. ниже дополнительные примечания о том, что дают вам эти различные механизмы.
PowerShell (оболочка)
Если вас интересуют мелочи, вот ответ ведущего архитектора на вопрос, почему MS создала PowerShell.
PSReadLine (помощники редактирования консоли)
- Значительно улучшает возможности редактирования в консоли.
- Подсветка синтаксиса всякий раз, когда вы начинаете вводить команды. Ясно указывает на синтаксические ошибки красным символом ">".
- Широко настраиваемые привязки клавиш.
- Автодополнение в стиле Bash
- Интерактивный поиск по истории Bash/zsh (Ctrl + R). Мощный обход истории команд. Удобный просмотр предыдущих многострочных команд с помощью клавиш со стрелками, а не только последней строки команды.
- Правильная поддержка копирования/вставки/вырезания (Ctrl+C/X/V должны работать нормально)
- Хорошая поддержка отмены и повтора действий.
- История сохраняется автоматически
В качестве альтернативы вы можете использовать Clink, который имеет аналогичный набор функций, но не был написан строго для PowerShell.
ConEmu (хост консоли)
- Расширенный эмулятор консоли, в котором вы можете запустить любую оболочку по своему выбору.
- Поддерживает открытие нескольких терминалов на разных вкладках. Упрощает запуск терминалов от имени разных пользователей.
- Широко настраиваемый: можно изменить все, от ярлыков до выбора текста и цветов строки состояния.
- Поддерживает режим разделения экрана
- Простые приложения с графическим интерфейсом можно запускать во вкладках
- Поддержка списков переходов Windows 7 и более поздних версий.
- Поддерживает плавное изменение размера окна.
- Сглаживание шрифтов Windows
- Начальные вкладки можно полностью настроить для запуска в определенном каталоге.
- Умное копирование/вставка
Некоторым до сих пор нравится использовать Console2, и у Скотта Хансельмана есть запись в блоге об этом.
Командир
Заслуживает упоминания Cmder — пакет эмуляции консоли, который сочетает в себе ConEmu, Clink и msysgit и предоставляет вам помощников Git. Cmder в основном дает вам более привлекательный интерфейс ConEmu по умолчанию благодаря цветовой схеме Monokai.
Cmder также имеет некоторые другие небольшие преимущества, такие как интеграция с приложениями с графическим интерфейсом, такими как Sublime Text.
Chocolatey (менеджер пакетов)
- Доморощенный вариант для Windows, позволяющий без труда загружать любимые приложения для Windows. В настоящее время доступно около 3 000 пакетов, которые можно обновить напрямую с помощью Chocolatey.
- Отличается от Nuget. NuGet предназначен для библиотек разработки. Chocolatey — это менеджер пакетов для двоичных файлов, основанный на инфраструктуре NuGet.
- Предлагает бесшумную сборку
Вам также может быть интересно узнать об OneGet, менеджере пакетов Microsoft, который должен работать с Chocolatey в Windows 10.
Babun (предварительно настроенный Cygwin)
- Cygwin (похожая на Linux среда для Windows) без некоторых исторически известных особенностей. Общая настройка значительно проще с помощью установщика Babun. Если вы хорошо разбираетесь в Unix и предпочитаете не изучать PowerShell, стоит подумать о cygwin/Babun.
- Включает менеджер пакетов под названием pact (немного похожий на brew ), похожий на apt-get . Это очень важно, так как в настоящее время вам нужно повторно запускать установщик Cygwin при добавлении пакетов, а не просто использовать pact.
- Предварительно установленный и настроенный Vim
- Встроенная поддержка oh-my-zsh
- Автообновления
Дополнительная литература
Если не указано иное, содержимое этой страницы предоставляется по лицензии Creative Commons Attribution 4.0, а образцы кода — по лицензии Apache 2.0. Подробнее см. в Правилах сайта Google Developers. Java является зарегистрированным товарным знаком Oracle и/или ее дочерних компаний.
Компания ECSC, игрок в сфере безопасности, показывает рост своих последних финансовых результатов, и у нее есть причины смотреть на оставшуюся часть этого года с оценкой .
Проигрыватель канала делится цифрами H1 со всеми признаками, указывающими на сохранение импульса
Приобретение поставщика управляемых услуг расширяет зону покрытия в Великобритании и предоставляет выделенную операцию MSP
Против Ultimate Kronos Group был подан коллективный иск за предполагаемую халатность в отношении атаки программы-вымогателя и частной .
Microsoft сообщила о взломе новой группой угроз Lapsus$ ближе к концу сообщения об угрозах, посвященного .
Продавец средств аутентификации Okta стал последним технологическим гигантом, который стал жертвой плодовитой команды Lapsus$ благодаря ключевым деталям .
Ceres от Vast Data сочетает в себе универсальную систему хранения поставщика с блоками обработки данных, которые обеспечивают более плотную и эффективную работу.
HPE GreenLake объединила Aruba Central под своей эгидой и добавила услуги по работе с данными, включая блочное хранилище как услугу и новые данные.
Рассмотрите несколько тестов производительности SSD, включая время отклика SSD в качестве ключевой единицы измерения. Также обратите внимание на разницу .
Какова реальность новых сетевых технологий? Здесь эксперты определяют риски — реальные или предполагаемые — и преимущества, которые они несут .
Сетевые архитектуры 4G и 5G имеют некоторые существенные различия. Посмотрите, чем отличаются две технологии и что нового .
При распространении удаленной работы, облачных приложений и подключения к Интернету предприятия отказываются от глобальной сети, чтобы сэкономить деньги.
Nvidia запустила облачную версию своей платформы Omniverse для 3D-моделирования. Компания также представила Omniverse .
Преодолейте сбои AWS, научившись создавать многорегиональную архитектуру, обеспечивающую отказоустойчивость в случае аварии.
Чтобы добиться высокой доступности и отказоустойчивости в AWS, ИТ-администраторы должны сначала понять различия между двумя моделями.
Хранилище данных Apache Pinot OLAP с открытым исходным кодом стало проще в развертывании, управлении и эксплуатации в облаке благодаря улучшенному .
Snowflake продолжает расширять предложения своей отраслевой вертикальной платформы, помогая пользователям из разных сегментов рынка собирать деньги.
Платформа RKVST поддерживает несколько типов приложений для работы с данными на блокчейне, включая безопасный обмен данными SBOM для обеспечения кибербезопасности.
Обновление платформы поставщика подчеркивает его внимание к приложениям как способу расширения аналитики для большего числа бизнес-пользователей.
С новым генеральным директором одной из основных целей поставщика облачных услуг является передача данных в руки большего числа бизнес-пользователей внутри .
Метаданные придают данным контекст, а во время таких кризисов, как война на Украине, когда трудно понять, каким новостям доверять, контекст.
Читайте также: