Повестка дня

  • Введение в Powershell
  • Потребность в PowerShell
  • Основа Powershell
  • Почему это лучше, чем альтернативы?
  • Самые популярные административные команды Powershell
  • Работа с конвейером
  • Выбор, сортировка, измерение, экспорт, импорт, преобразование, фильтрация, передача данных в конвейере.
  • Использование провайдеров PS и PSDrives
  • Форматирование вывода
  • Введение в WMI (инструментарий управления Windows)
  • Цикл (для / для-каждого / пока)
  • Принимайте вводимые пользователем данные
  • Вывод на дисплей
  • Эта оболочка основана на командной строке или может быть включена в графический интерфейс.
  • Разработано Microsoft
  • На основе .Net Framework
  • Он включает скрипты.
  • Возможность взаимодействия с другим программным обеспечением на базе Windows, например: -
  • Citrix, SQL, AD, любые открытые API, такие как Slack и т. Д.

Что нужно?

  • Microsoft описывает PowerShell как «основанную на задачах оболочку командной строки и язык сценариев… построенный на .NET Framework». Что такого хорошего в PowerShell? Зачем вам его использовать?
  • PowerShell - это и оболочка командной строки, и язык сценариев.
  • PowerShell может взаимодействовать с огромным количеством технологий.
  • .NET Framework, Реестр, COM, WMI, ADSI. Обмен, Sharepoint, Системный центр, Hyper-V, SQL. , Cisco UCS, Citrix XenApp и XenDesktop. REST API, XML, CSV, JSON, веб-сайты, Excel и другие приложения Office. , DLL и другие двоичные файлы, включая инструменты * nix.
  • PowerShell основан на объектах. Это дает нам невероятную гибкость. Фильтруйте, сортируйте, измеряйте, группируйте, сравнивайте или выполняйте другие действия с объектами, когда они проходят через конвейер. Работайте со свойствами и методами, а не с необработанным текстом.
  • Microsoft делает все возможное для PowerShell. PowerShell никуда не денется. Это требование согласно критериям Microsoft Common Engineering, и серверный продукт не может поставляться без интерфейса PowerShell.
  • Во многих случаях Microsoft создает свой графический интерфейс только с помощью Powershell. Здесь мы можем сделать больше, чем мы думаем о графическом интерфейсе.
  • PowerShell также предоставляет хостинг, с помощью которого среда выполнения PowerShell может быть встроена в другие приложения.

BackGround

  • В каждой выпущенной версии Microsoft DOS и Microsoft Windows для персональных компьютеров есть Shell, поэтому до Windows9x он полагался на Command.com, а позже в семействе NT он появился как cmd.exe.
  • В 1998 году MS запустила Cscript.exe, чтобы обеспечить совместимые языки сценариев, такие как Jscript и VBScript.
  • К 2002 году Microsoft начала разрабатывать новый подход к управлению командной строкой, включая оболочку под названием Monad (также известную как Microsoft Shell или MSH).
  • Версия 1 PowerShell была выпущена 26 сентября 2006 г., но официально выпущена 14 ноября 2006 г.
  • PowerShell v2.0 был завершен и выпущен в производство в августе 2009 года как неотъемлемая часть Windows 7 и Windows Server 2008 R2.
  • 18 августа 2016 года Microsoft объявила, что они сделали PowerShell с открытым исходным кодом и кроссплатформенным с поддержкой Windows, OS X, CentOS и Ubuntu.
  • Переход на открытый исходный код создал второе воплощение PowerShell под названием PowerShell Core, работающее на .NET Core. Он отличается от Windows PowerShell, которая работает на полной .NET Framework. Начиная с версии 5.1, PowerShell Core поставляется в комплекте с сервером Windows Server 2016 Nano.

Встроенные инструменты

* Powershell лучше, чем его устаревшие альтернативы, такие как -VBScripting, Bash

* Единый синтаксис, последовательная структура команд

* Надежность за счет интеграции .NET

* Поддержка через справку и документацию (Get-Help)

В любом случае это легко узнать, нужна лишь подсказка. (Get-Command «* Сервис *»)

  1. Перемещайтесь по реестру Windows, как по файловой системе: cd hkcu:
  2. Рекурсивный поиск определенной строки в файлах: dir -r | выберите строку «искать это»
  3. Найдите пять процессов, использующих наибольший объем памяти: ps | sort -p ws | выберите -последний 5
  4. Выполните цикл службы (остановите, а затем перезапустите ее), например DHCP: Restart-Service DHCP
  5. Список всех элементов в папке: Get-ChildItem - Force
  6. Рекурсия по серии каталогов или папок: Get-ChildItem -Force c: \ directory -Recurse
  7. Удалить все файлы в каталоге без запроса каждого из них: Remove-Item C: \ tobedeleted -Recurse
  8. Перезагрузите текущий компьютер: (Get-WmiObject -Class Win32_OperatingSystem -ComputerName.). Win32Shutdown (2)
  • Получите информацию о марке и модели компьютера: Get-WmiObject -Class Win32_ComputerSystem
  • Получите информацию о BIOS текущего компьютера: Get-WmiObject -Class Win32_BIOS -ComputerName.
  • Список установленных исправлений - QFE или файлы Центра обновления Windows: Get-WmiObject -Class Win32_QuickFixEngineering -ComputerName. Получить имя пользователя человека, который в данный момент вошел в систему на компьютере:
  • Get-WmiObject -Class Win32_ComputerSystem -Property UserName -ComputerName.
  • Найдите только названия установленных приложений на текущем компьютере:
  • Get-WmiObject -Class Win32_Product -ComputerName. | Широкий формат - столбец 1
  • Получить IP-адреса, назначенные текущему компьютеру: Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled = TRUE -ComputerName. | Формат-Таблица -Свойство IP-адрес
  • Получите более подробный отчет о конфигурации IP для текущего компьютера: Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled = TRUE -ComputerName. | Select-Object -Property [a-z] * -ExcludeProperty IPX *, WINS *
  • Найдите сетевые карты с включенным DHCP на текущем компьютере: Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter «DHCPEnabled = true» -ComputerName.
  • Включите DHCP на всех сетевых адаптерах на текущем компьютере:
  • Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled = true -ComputerName. | ForEach-Object -Process {$ _. EnableDHCP ()}

Управление программным обеспечением

  • Установите пакет MSI на удаленный компьютер: (Get-WMIObject -ComputerName TARGETMACHINE -List | Where-Object -FilterScript {$ _. Name -eq «Win32_Product»}). Установить (\\ MACHINEWHEREMSIRESIDES \ path \ package.msi)
  • Обновите установленное приложение с помощью пакета обновления приложения на основе MSI:
  • (Get-WmiObject -Class Win32_Product -ComputerName. -Filter «Name =’ name_of_app_to_be_upgraded ’»). Обновление (\\ MACHINEWHEREMSIRESIDES \ path \ upgrade_package.msi)
  • Удалите пакет MSI с текущего компьютера: (Get-WmiObject -Class Win32_Product -Filter «Name =’ product_to_remove ’» -ComputerName.) .Uninstall ()

$ var = Read-Host -AsSecureString

Фильтрация

foreach ($ element in 1..9) {

Write-Host -NoNewLine «$ {element}»

Пуск-Сон-Секунды 1

Запись-Хост ""

Запись-вывод

Циклы

Цикл "пока / делать-пока"

$ val ++ Write-Host $ val

} пока ($ val -ne 10)

Импорт

Первоначально опубликовано на https://www.mytectra.com.