Я постоянно читаю, что PowerShell - это путь в будущее. Когда он был впервые выпущен, я провел целую кучу виртуальных лабораторий, но с тех пор я до сих пор не использовал его в производственной среде. Я знаю, что придет день, когда я буду иметь дело с ОС, где она уже установлена, поэтому я хочу быть готовым.
Я хочу знать:
- Вы используете это?
- Каков ваш процесс начальной загрузки для использования PowerShell?
- Какие задачи системного администрирования вы написали в нем?
- Я администратор базы данных SQL Server. Какие классные вещи с этим делать?
Кажется, что все согласны с тем, что Microsoft настаивает на этом, но на самом деле никто еще не использует его. Я хочу услышать от системных администраторов, которые используют его для выполнения повседневных задач и поделиться некоторыми примерами кода.
windows
windows-server-2008
windows-server-2003
sql-server
powershell
Nick Kavadias
источник
источник
Ответы:
Microsoft делает все возможное, чтобы PowerShell был идеальным выбором для опытных пользователей и разработчиков систем автоматизации. Прошли времена компиляции кода в .NET, чтобы сделать то же самое, теперь вам просто нужны notepad.exe и google. Мы большие поклонники этого в офисе, тем более что консоль управления Exchange 2007 НЕ включает в себя все, что вы можете делать в PowerShell. Microsoft преднамеренно не смогла реализовать вещи, которые выполняются только изредка, проще разрабатывать таким образом, что прямо вынуждает их использовать, если у вас есть что-то похожее на сложную среду.
Управление продуктами нового поколения Microsoft (Win7, Windows Server 2008, Exchange 2007/2010, SQL Server 2008) - все они имеют очень богатые возможности PowerShell. Как только Remote Powershell (PowerShell 2.0 IIRC) будет развернут с Server 2008 R2, он станет еще БОЛЬШЕ полезным для разработчиков средств автоматизации.
Что мы с этим сделали:
Так что да, PowerShell будет с нами довольно долго.
РЕДАКТИРОВАТЬ : Добавление образца кода, так как он был запрошен
Это берет файл CSV, созданный с помощью Perl-скрипта, и обновляет набор групп. Если группа уже существует, она заменяет членство на указанное в файле. Если группа не существует, она создает ее. Это односторонняя синхронизация. Кроме того, не совсем в производстве, но близко.
источник
Учитывая, что серверные продукты Microsoft с самого начала будут поддерживать PowerShell (я полагаю, что в следующей версии Exchange все конфигурации доступны через PowerShell), и что такие книги, как PowerShell на практике, описывают некоторые отличные способы автоматизации монотонных задач, в противном случае я думаю, Разумно предположить, что PowerShell еще какое-то время будет распространенной технологией на сервере Windows.
источник
Я бы порекомендовал подкаст Скотта Хансельмана № 162 . Похоже, что все серверные группы Microsoft «вынуждены» предоставлять командлеты PowerShell, а также следовать единому согласованному синтаксису.
Кроме того, третьи стороны, такие как VMWare , принимают его
Короче говоря, я считаю, что PowerShell, начиная с 2.0, серьезно занимается заменой командных файлов для всех, кроме самых тривиальных задач.
источник
Десять сценариев PowerShell, которые я использую в качестве администратора базы данных SQL Server (все они описаны / размещены в моем блоге ):
источник
Какие задачи администратора вы написали в нем?
мониторинг приложений / сервисов: получение ключевых показателей производительности из (удаленных) EventLog и хранимых процедур и отображение их из одного пакетного файла
Я администратор базы данных SQL Server, покажи мне какие-нибудь интересные вещи?
automssqlbackup : ежедневное резервное копирование для MSSQL с чередованием (ежедневно = инкрементное, еженедельно + ежемесячно = полное; хранить 5 ежедневных, 5 еженедельных резервных копий), архивирование, уведомление по электронной почте
источник
Воспользовавшись сценариями Unix Shell в предыдущей карьере, а затем перейдя к администрированию Windows Server, я могу сказать, что я действительно очень ценю PowerShell - у меня нет ни времени, ни возможности изучать слишком много загадочного синтаксиса, и я был приятно удивлен, что многое сценариев powershell можно написать очень простым языком ... возьмите то, чего стоит, как я привык к ksh !!
Я предсказываю, что это будет вокруг в течение долгого времени.
источник
Я подумал, что это круто: с SQL Server 2008 вы получаете новые расширения PowerShell, которые позволяют вам перемещаться по базам данных SQL так же, как в вашей локальной файловой системе или реестре.
После установки инструментов клиента SQL Server вы можете открыть любую базу данных в PowerShell (через контекстное меню, вызываемое правой кнопкой мыши) и поэкспериментировать с ней объектно-ориентированным способом:
Обратите внимание, что первая строка просто меняет подсказку, чтобы она не была такой длинной.
Надеюсь, кроме этого, само собой разумеется, что здесь происходит :)
источник
SQL Server 2008 теперь имеет опции контекста PowerShell в Management Studio, так что это больше, чем Exchange. Кроме того, думайте об этом как о замене DOS, поскольку именно об этом думала MS, поскольку они просто не могут улучшить безопасность DOS для проблем обратной совместимости, поэтому они просто создали что-то новое и wammo, проблема решена!
источник
Я тоже администратор баз данных и долгое время работаю сценаристом, возвращаясь к пакетным файлам DOS, V3.3! Перешел на VB Script, но PS очень мощный. Посмотрите на - Извините, я не могу опубликовать ссылку, так как я новый пользователь. Получил это из блога Отто Хельвега. Это дешевый и веселый инструмент для инвентаризации программного обеспечения.
Пример скрипта PowerShell:
Дэйв Дж
источник
Следующие задачи выполняются моей командой на регулярной основе с помощью PowerShell
Изо дня в день у меня все время появляется подсказка PS, и я использую ее для любых задач, для которых я использовал CMD.
Вот несколько примеров кода для чтения списков Sharepoint. Я использую веб-службы из Sharepoint и новый командлет «New-WebServiceProxy» в PowerShell V2.0
У Ойсена Грехана есть отличный пост в блоге об использовании Sharepoint Web Services, который я использовал как основу для создания всех своих функций. У него даже есть потрясающий скрипт new-webservice.ps1, который вы можете использовать, если вы все еще используете PowerShell V1.
Кроме того, вот базовая функция, которую я использовал, чтобы получить доступную память на узлах в моем кластере
источник
Я попробовал PowerShell для небольшого проекта на работе - ежедневной миграции подмножества ~ 600 пользователей и ~ 200 групп из корпоративной AD в старую систему UNIX с использованием CSV- подобных файлов. Мне предложили сценарий VBScript на 500 строк (!), Который выдвинул одну группу и ее пользователей в качестве отправной точки.
Оказалось, что ~ 20-строчный скрипт PowerShell может сделать все это ...
Как пользователь * NIX (на стороне сервера и клиента), я был очень приятно удивлен PowerShell. Даже если вы просто знаете небольшое подмножество команд, вы можете сделать действительно мощную работу с ним. Мне просто нужен SSH (-подобный) удаленный доступ ...
источник
Как я могу не использовать это? Все серверные приложения Microsoft, которые выходят / обновляются, теперь управляются с помощью Powershell. Затем предоставляется несколько более или менее раздражающих UI / Management Console, встроенных поверх этого ядра, которое часто работает медленно и, как кто-то отметил, не имеет доступных функций ... поэтому я не могу сказать, что у нас на самом деле есть большой выбор ^ ^
источник
Powershell не идеален, но если вы использовали его, вы знаете, это довольно круто. Имея доступ ко всей библиотеке .net плюс встроенные командлеты (и создавайте свои собственные командлеты, используя PS в 2.0), это довольно круто.
Единственное, чего мне не хватает, - это хорошей IDE, которая, я уверен, когда-нибудь придет от MS. Прямо сейчас я использую PowerShell Plus от Idera и adminscripteditor, которые позволяют отлаживать и довольно крутые.
Я был в состоянии отучиться от VB довольно хорошо.
Мой самый большой проект на сегодняшний день с использованием posh - это использование powershellASP для создания базовой веб-страницы, которая запускает команды powershell и получает информацию о хосте vmware и виртуальной машине с более чем дюжины (бесплатных) хостов VMWare ESXi и отображает их в таблицах HTML. Я сделал это, потому что с бесплатной VMWare ESXi и без виртуального центра, нет другого способа получить в режиме реального времени обзор всех моих виртуальных машин в компании. PowershellASP - это бесплатный сторонний парсер, написанный для IIS и не поддерживаемый MS. Так что он может сделать некоторые ограниченные вещи прямо сейчас, и документация довольно скудна.
источник
У меня есть целая куча сценариев управления / инвентаризации, которые ищут в AD разные вещи и запрашивают их через WMI для получения важной статистики, такой как общие ресурсы на сервере, дисковое пространство, использованное дисковое пространство и т. Д.
Общие сценарии:
Скрипты пользователя:
У меня есть один, который перечисляет все гостевые машины VMWare на моих серверах ESX
У меня есть скрипт, который захватывает файлы через x дней и надежно удаляет их.
В основном я могу сделать то, что заняло около 200 строк VBScript и сделать это в 10 из PowerShell. Вы также можете делать вещи, которые вы просто не можете делать или делать хорошо в VBScript, например отправлять электронные письма с вложениями, что я регулярно делаю, чтобы посылать мне результаты моих сценариев. Также вы можете записывать значимые и уникальные записи в журнал событий с именами пользовательских служб и идентификаторами событий.
Это то, что я могу думать о макушке. Мой инструмент выбора теперь PowerShell, он просто облегчает жизнь.
По сути, он так же полезен для системного администратора, как сценарии Bash, для администратора Unix.
источник
Я искал Poweshell для замены наших клиентских пакетных сценариев - работающих программ, сценариев входа в систему и т. Д.
Но обнаружил, что это добавило не менее 10 секунд к времени входа в систему - вот и все «настройки» на месте. Так что в итоге мы остановились на том, что использовали.
источник
Не будучи разработчиком .NET, я ограниченно использую все связанные с .NET вкусности, которые PS позволяет вам использовать. Однако, будучи администратором Exchange (помимо всего прочего), интеграция PowerShell для Exchange 2007 является УДИВИТЕЛЬНОЙ. Наконец-то у меня появился надежный движок сценариев для моей почтовой системы; до сих пор он отправлял мне ежемесячную статистику по всем почтовым ящикам, определяя, кому назначены различные адреса электронной почты, в зависимости от времени суток, автоматически создавая и назначая разрешения для общих папок и балансируя пользователей между нашими двумя БД почтовых ящиков , Еще одна интересная вещь с точки зрения Ex07 состоит в том, что после того, как вы что-то сделаете в GUI, он представляет вам соответствующие команды PowerShell для того, что вы только что сделали. Скопируйте их, и в конечном итоге вы получите набор сценариев PS, которые могут с нуля изменить вашу среду Exchange.
источник
Автоматизация определенных вещей с проверками сервера, где я работаю (сбор основной информации из WMI и сбор ошибок и предупреждений из журналов событий).
Обработка журналов событий - это круто.
Недавно я написал скрипт для отключения всплывающего окна автоматического обновления, которое Foxit Reader включил по умолчанию для домена, на котором запущен скрипт. Он извлекает список компьютеров из AD, затем проверяет, работает ли он, и затем изменяет 1 на 0.
Одна вещь, которую я забыл!
У вас есть полный доступ к библиотекам .NET. Делать действительно сложные вещи с этим немного больно, но если у вас есть необходимость, это для вас.
источник
Мы используем его для решения многих административных задач, так как в основном это магазин Microsoft. Некоторые сценарии просты, например, очистка старых файлов или дефрагментация машин и запись результатов. Один скрипт проверяет компьютеры, используя в основном WMI, и записывает результаты в базу данных. Он получает такие вещи, как аппаратное обеспечение (ЦП, ОЗУ, накопители и т. Д.), Информацию о сети, локальные пользователи, установленное программное обеспечение и данные профиля. Есть тот, который вызывает веб-сервис для отправки электронной почты. Я думаю, что в будущем он заменит остальные сценарии VBScript , которые все еще используются. Мы еще не используем его для задач Exchange или SQL Server.
Я с нетерпением жду следующей версии, которая будет иметь поддержку фоновых заданий, транзакций, улучшенную обработку исключений, новую ISE (интегрированную среду сценариев), улучшенную отладку и т. Д.
источник
Мои администраторы Windows еще не используют PowerShell. Все они слышали об этом, но они не нашли время, чтобы ознакомиться с ним.
Я решил взглянуть на это сам. Исходя из фона оболочки Unix, я подумал, что в Windows наконец-то должна появиться настоящая среда программирования оболочки. Я думаю, что Microsoft сделала некоторые вещи с PowerShell хорошо, а некоторые не очень хорошо.
Хорошей стороной является их использование объектов в качестве посредника между командлетами в PowerShell. Это дает PowerShell такой уровень мощности, что текстовые сценарии нужно взломать, чтобы приступить к работе.
С другой стороны, они не используют большинство команд оболочки Unix. Таким образом, кривая обучения неоправданно крута и не помогает людям легко переходить с Unix на PowerShell или наоборот. Самое большее, что они делают - это определяют псевдонимы для некоторых командлетов PowerShell, таких как ls для псевдонимов Get-ChildItem, причем все параметры командной строки различны.
Просто мои два цента ...
источник
Это скорее ответ разработчика, но это реальный мир, и мы начнем его тестировать через несколько месяцев. Я начинаю изучать PowerShell для написания сценариев для переноса задач SQL Server в нашу среду непрерывной интеграции . Скрипты непрерывной интеграции будут запускаться в основном NAnt и MSBuild через JetBrains TeamCity .
Кроме того, я рассматриваю переход на PowerShell в качестве основной командной оболочки Windows для общего назначения и особенно для задач администрирования базы данных SQL Server.
Извините, у меня пока нет примеров кода, чтобы поделиться, потому что я все еще учусь! Я буду рад опубликовать некоторые, когда я делаю, хотя :)
Вот пример однострочного кода, на который я только что ответил на другой твой вопрос :) Но эй, для вики ...
Это будет список установленных исправлений:
источник
Хотя это не самый простой язык сценариев, который можно выбрать (предполагается, что у него большой опыт работы с конвейерами), и у него есть свои странные возможности (дайте мне простую вещь, похожую на sed !), Я нахожу PowerShell довольно мощным. Не до уровня Bash или других оболочек Unix, но все же.
Я использую его для контроля за экспортом и импортом некоторых баз данных с предупреждениями по электронной почте на случай, если что-то пойдет не так, и выполняю некоторые рутинные пакетные операции.
Это, конечно, уже моя основная оболочка Windows, хотя на самом деле это не то, что «пиши меньше, делай больше». PowerShell имеет свое многословие (и наследование .NET), играя против него.
источник
Версия PowerShell 1.0 была сильно ограничена во многих аспектах, но версия 2.0 идет хорошо. По сравнению с пакетными сценариями он намного мощнее. Я на самом деле не использую его как оболочку, только для скриптов, поэтому мой опыт соответственно раскрашен. Мне не очень нравится синтаксис (
-eq
против==
,-gt
против>
и т. Д.), Но я ценю возможность зайти в .NET, если мне нужно сделать что-то странное. Я думаю, что с версией 3.0 это будет здорово. Прямо сейчас я бы твердо отнес это к категории «выполняет свою работу».Я использую его в основном для автоматизации развертывания кода. Это область, где она сияет над созданием чего-либо в C #. Связанные с оболочкой операции, такие как рекурсивное копирование каталогов и другие вещи, которые Bash-скрипты принимают как должное годами, значительно упрощают работу.
источник