Apple, познакомься с оранжевым: сила кроссплатформенной оболочки PowerShell
Яблоки и апельсины могут быть фруктами, но они очень разные по вкусу. Вы когда-нибудь слышали о утке помме? Или жаркое из свинины с апельсиновым соусом? И даже не заставляйте меня смешивать яблоки и апельсины в одном блюде. То же самое верно для Windows, Mac и Linux. Каждая платформа отличается тем, как вы их используете и администрируете. И заставить их играть вместе в одной среде иногда может быть довольно сложной задачей. Но теперь есть секретный соус, который вы можете использовать для объединения систем и рабочих нагрузок Windows, Mac и Linux в более эффективную смесь управления. Этот секрет — кросс-платформенный PowerShell, и мне удалось связаться с экспертом, который может рассказать нам об этом подробнее. Эшли Макглоун известна большинству из нас в мире ИТ как GoateePFE. Эшли недавно ушел с должности главного полевого инженера Microsoft в компании Tanium, о которой он никогда раньше не слышал. Но об этом позже. Важно то, что он по-прежнему помогает людям изучать и любить (и готовить с помощью) PowerShell.
Мое интервью с Эшли Макглоун
МИТЧ: Эшли, что такое кроссплатформенный PowerShell?
ЭШЛИ: Отличный вопрос, Митч. Итак, вот вам вопрос: почему люди вообще любят PowerShell? Потому что он супермощный и суперэффективный. Кому захочется писать 40 строк на VBScript или Python, в пакетном режиме или в оболочке, когда вы можете сделать это в одной или двух строках PowerShell? Теперь вы можете использовать свой любимый язык сценариев в Windows, Mac и *nix, И у вас есть очень удобный редактор (VS Code), который будет работать на всех этих платформах. Стрелять. Вы даже можете сделать это на Raspberry Pi!
МИТЧ: Почему Microsoft решила распространить PowerShell за пределы Windows на платформы Mac и Linux?
ЭШЛИ: Когда вы читаете первоначальный документ Джеффри Сновера о концепции PowerShell, Манифесте Монады, он на самом деле назвал это более 15 лет назад. Цель PowerShell состояла в том, чтобы создать дружественный и знакомый язык сценариев для пользователей всех операционных систем. Он рассказывает историю о демонстрации PowerShell для ИТ-директора в первые дни, и этот парень разозлился. «Вы хотите сказать, что это только для моих администраторов Windows? Я хочу этого и для своих администраторов Unix». Теперь каждый может быть доволен PowerShell везде.
МИТЧ: Какие возможные преимущества могут получить организации от использования кроссплатформенной оболочки PowerShell?
ЭШЛИ: Ежедневное администрирование становится проще. Из одной системы я могу удаленно подключаться к любой ОС с помощью PowerShell для выполнения специального администрирования. Затем представьте себе возможность написать единую кодовую базу инструментов администрирования сценариев. Да, вы можете сделать это с помощью Python сегодня, но для этого требуется гораздо больше кода. Например, я могу написать один сценарий PowerShell для удаленного сканирования всех моих систем на предмет времени безотказной работы и состояния исправлений, независимо от операционной системы или места их нахождения.
Например, недавно я использовал свой новый Mac для просмотра файлов журналов. В три строки в терминале у меня был установлен PowerShell. Затем я смог плавно разобрать файлы журналов JSON, которые мне предстояло изучить. Для Windows мне было совершенно естественно использовать PowerShell в терминале. Использование интеграции git с VS Code упрощает редактирование и обновление кода PowerShell в моем онлайн-репозитории на Mac, Linux или Windows. Это новый мир, в котором Microsoft хорошо играет на любом устройстве.
МИТЧ: Каковы некоторые проблемы, связанные с тем, чтобы PowerShell работал на платформах, отличных от Windows, таких как Mac и Linux?
ЭШЛИ: Прежде чем мы смогли внедрить PowerShell в другие операционные системы, нам нужна была зависимость от.NET. Теперь, когда.NET Core (или Standard) доступен на Mac и *nix, за ним следует PowerShell. Это безумие видеть ссылки на.NET в ваших сценариях, которые работают, например, в Linux. Но теперь они могут там работать.
PowerShell Core будет иметь сокращенный набор функций по сравнению с тем, с чем знакомы администраторы Windows, но это из-за уникальных функций операционной системы. Сегодня все знают PowerShell из-за того, что он делает для Windows. Но в других операционных системах нет служб Windows, реестра и т. д. Однако у них есть много общего: файлы, процессы и т. д. PowerShell Core — это то, что является общим для всех возможных хостов. Но затем в этой хост-ОС вы можете использовать другие модули PowerShell, уникальные для этой ОС.
Команда PowerShell также решила проблему удаленного взаимодействия. Удаленное управление Windows (WinRM) не является родным для этих других платформ, в отличие от SSH. Вы можете установить OpenSSH в Windows, и теперь удаленное взаимодействие PowerShell может использовать этот протокол в качестве транспорта. Или вы можете добавить возможности WinRM в другие операционные системы. В любом случае вы можете заставить удаленное взаимодействие работать в обоих направлениях. В моей лаборатории OpenSSH установлен на компьютере с Windows 10, и он работает очень хорошо.
МИТЧ: Как лучше всего начать работу с кроссплатформенной оболочкой PowerShell?
ЭШЛИ: Я был удивлен, как легко было начать. Если вы перейдете на страницу PowerShell GitHub, вы найдете хорошие инструкции по установке и настройке для многих популярных операционных систем. Также изучите папку demos, чтобы узнать, как настроить такие вещи, как удаленное взаимодействие. Ранее в этом году я также опубликовал обзорную статью в блоге команды PowerShell. А в октябре я выступил на местной ИТ-конференции, где поделился некоторыми демо-скриптами PowerShell Core и ссылками.
МИТЧ: Давай закончим наше интервью тем, что ты расскажешь нам немного о своей новой роли в Tanium .
ЭШЛИ: Вау. Меня привлек Tanium, потому что он решает очень много проблем, характерных для любого ИТ-магазина. Я был поражен, когда увидел, как он сканирует более 400 000 конечных точек в поисках системных данных за 15 секунд! Это было похоже на научную фантастику. Я мог бы писать сценарии удаленного взаимодействия PowerShell и запускать их параллельно, но я никогда не получил бы такой производительности. Независимо от того, идет ли речь об общей инвентаризации системы, сборе данных, обнаружении, установке исправлений, киберкриминалистике или любых других задачах, Tanium обеспечивает видимость и контроль в режиме реального времени над каждой конечной точкой в вашей среде. Вам больше не нужно полагаться на устаревшую системную статистику, когда вы пытаетесь бороться с вредоносными программами, захватившими вашу среду прямо сейчас. Tanium дает вам мгновенный ответ для обнаружения и устранения угроз. В этом пространстве много конкурентов, но никто другой не предлагает унифицированной платформы, обеспечивающей такую скорость, масштаб и простоту. Я рад быть здесь.
МИТЧ: Эшли, большое спасибо, что уделили нам немного времени, и удачи на новой работе! Вы можете найти Эшли в Твиттере как @GoateePFE.