Что такое powershell?

Как запустить PowerShell из командной строки

При желании пользователь может запустить PowerShell из CMD.exe (командной строки Windows) в разных версиях операционной системы. Это системное средство поможет открыть аналогичное приложение на компьютере.

Запуск PowerShell из командной строки выполняется следующим образом:

  1. Необходимо запустить командую строку от имени администратора или просто открыть командную строку от имени пользователя.
  2. В окне интерпретатора командной строки введите команду «powershell» (без кавычек), а затем нажмите на клавишу «Enter».
  3. Оболочка PowerShell будет запущена в интерфейсе командной строки Windows.

В PowerShell запуск от имени администратора зависит от того, с какими правами вы запустили командную строку.

Работа с Hyper-V

Для работы с Hyper-V в Windows PowerShell существует много командлетов, вот небольшой перечень:

  • New-VM — создание новой виртуальной машины;
  • Set-VM — настройка виртуальной машины;
  • Start-VM — запуск виртуальной машины;
  • Stop-VM — закрытие, выключение или сохранение виртуальной машины;
  • Import-VM — импорт виртуальной машины из файла;
  • Move-VM — перемещение виртуальной машины на новый Hyper-V хост;
  • Remove-VM — удаление виртуальной машины;
  • Rename-VM — переименование виртуальной машины;
  • New-VHD — создание одного или нескольких новых виртуальных жестких дисков;
  • Set-VHD – настройка виртуального жесткого диска;
  • Test-VHD — тестирование виртуального жесткого диска на предмет обнаружения проблем, которые сделали бы его непригодным для использования;
  • Add-VMDvdDrive — добавляет DVD диск к виртуальной машине;
  • Remove-VMDvdDrive — удаляет DVD-диск из виртуальной машины;
  • Add-VMHardDiskDrive — добавляет жесткий диск к виртуальной машине;
  • Remove-VMHardDiskDrive — удаляет один или несколько виртуальных жестких дисков (VHD) из виртуальной машины;
  • Add-VMNetworkAdapter — добавляет виртуальный сетевой адаптер на виртуальной машине;
  • Remove-VMNetworkAdapter — удаляет один или несколько виртуальных сетевых адаптеров из виртуальной машины;
  • Copy-VMFile — копирование файлов на виртуальную машину;
  • Get-VMVideo – выводит информацию о настройках видео для виртуальных машин;
  • Move-VMStorage — перемещение хранилища виртуальной машины.

Написание и запуск скриптов

Скрипты сохраняются в виде файлов с расширением . Несмотря на то, что PowerShell уже давно является нативной частью ОС Windows, вы не сможете запустить его скрипты простым двойным щелчком. Для этого надо кликнуть правой кнопкой по скрипту и выбрать «Запустить в PowerShell».

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

  • Restricted — выполнение скриптов запрещено. Стандартная конфигурация;
  • AllSigned — можно запускать скрипты, подписанные доверенным разработчиком; перед запуском скрипта PowerShell запросит у вас подтверждение;
  • RemoteSigned — можно запускать собственные скрипты или те, что подписаны доверенным разработчиком;
  • Unrestricted — можно запускать любые скрипты.

Для начала работы необходимо изменить настройку политики запуска на RemoteSigned, используя команду :

Командлеты

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

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

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

  • Get-Process — отобразить текущие процессы, запущенные на компьютере;
  • Get-Service — отобразить список служб и их статус;
  • Get-Content — отобразить содержимое указанного файла, например .

При необходимости список всех доступных командлетов можно вывести с помощью Get-Help-Category:

Также можно создавать и свои собственные командлеты.

Параметры

У каждого командлета есть несколько параметров, определяющих его работу. PowerShell ISE автоматически предлагает все доступные параметры с отображением их типа. Например, выводит список служб, у которых имя начинается с . Если вы забыли, какие параметры у введённого командлета, воспользуйтесь . Например, :

Если вы не нашли того, что нужно, или не уверены в том, как правильно задаются параметры, можно даже запросить примеры с помощью параметра :

Некоторые командлеты также могут вызываться с помощью алиасов, например вместо можно просто написать .

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

Конвейер

PowerShell позволяет осуществлять обмен данными между командлетами с помощью конвейера. Например:

  • — сортировка запущенных служб по статусу;
  • — запись текста в файл.

Можно использовать несколько конвейеров. Например, следующий скрипт выводит список имён всех служб за исключением остановленных:

The Arithmetic Operators

Arithmetic operators are used in mathematical expressions in the same way that they are used in algebra. The following table lists the arithmetic operators −

Assume integer variable A holds 10 and variable B holds 20, then −

Operator Description Example
+ (Addition) Adds values on either side of the operator. A + B will give 30
— (Subtraction) Subtracts right-hand operand from left-hand operand. A — B will give -10
* (Multiplication) Multiplies values on either side of the operator. A * B will give 200
/ (Division) Divides left-hand operand by right-hand operand. B / A will give 2
% (Modulus) Divides left-hand operand by right-hand operand and returns remainder. B % A will give 0

Как управлять PowerShell

Для выполнения задач используются cmdlets, или командлеты. Это небольшие команды, записанные в виде исполняемых файлов. В версии 2.0 PowerShell для Windows XP и Server 2008 R2 создатели добавили модули, позволяющие управлять большим количеством ресурсов, включая Active Directory и Exchange Server.

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

Учитывая, что Windows PowerShell – это расширяемая среда, пользователи могут создавать свои команды, писать «авторские» модули с использованием языка .Net.

Разница между PowerShell и CMD

Определение

PowerShell — это среда автоматизации задач и управления конфигурацией от Microsoft, состоящая из оболочки командной строки и соответствующего языка сценариев. CMD — интерпретатор командной строки в операционных системах Windows NT, Windows CE, OS / 2 и eComStation.

команды

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

функциональность

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

Заключение

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

Как открыть PowerShell Windows 10 — 1 способ

В современных версиях Windows 10, в интерфейсе операционной системы PowerShell заменила командную строку. Сама командная строка никуда не исчезла, просто ОС предлагает применять PowerShell по умолчанию.

Для запуска оболочки в Windows 10 можно использовать контекстное меню кнопки «Пуск»:

  1. Щелкните правой кнопкой мыши по меню «Пуск», или нажмите на клавиши «Win» + «X».
  2. В контекстном меню откроются пункты «Windows PowerShell» и «Windows PowerShell (администратор)».

Вы можете запустить Windows PowerShell от имени администратора или в обычном режиме от имени текущего пользователя компьютера.

Если на вашем компьютере вместо PowerShell отображается командная строка, то это значит, что ранее были проведены изменения в настройках Windows 10. Вернуть Windows PowerShell на место можно следующим способом:

  1. Запустите приложение «Параметры».
  2. Откройте «Персонализация».
  3. Войдите в раздел «Панель задач».
  4. В опции «Заменить командную строку оболочкой Windows PowerShell в меню, которое появляется при щелчке правой кнопкой мыши по кнопке “Пуск” или при нажатии клавиш Windows + X» передвиньте ползунок переключателя в положение «Включено».

После этого, вместо командной строки в контекстном меню кнопки «Пуск» станут отображаться пункты для запуска PowerShell.

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

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

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

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

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

$file = ::GetTempFileName()

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

Getting Help

The first step is to go to the Get-Help command which gives you an explanation about how to give a command and its parameter.

Powershell — Files and Folder Operations

Following are the examples of powershell scripts on Files and Folders.

Sr.No. Operation & Description
1 Creating Folders

Example Script to show how to create folder(s) using PowerShell scripts.

2 Creating Files

Example Script to show how to create file(s) using PowerShell scripts.

3 Copying Folders

Example Script to show how to copy file(s) using PowerShell scripts.

4 Copying Files

Example Script to show how to create file(s) using PowerShell scripts.

5 Deleting Folders

Example Script to show how to delete folder(s) using PowerShell scripts.

6 Deleting Files

Example Script to show how to delete file(s) using PowerShell scripts.

7 Moving Folders

Example Script to show how to move folder(s) using PowerShell scripts.

8 Moving Files

Example Script to show how to move file(s) using PowerShell scripts.

9 Rename Folders

Example Script to show how to rename folder(s) using PowerShell scripts.

10 Rename Files

Example Script to show how to rename file(s) using PowerShell scripts.

11 Retrieving Item

Example Script to show how to retrieve item(s) using PowerShell scripts.

12 Check Folder Existence

Example Script to show how to check folder existence using PowerShell scripts.

13 Check File Existence

Example Script to show how to check file existence using PowerShell scripts.

Powershell — Date and Time Operations

Following are the examples of powershell scripts on System Date and Time.

Sr.No. Operation & Description
1 Get System Date

Example Script to show how to get system date using PowerShell scripts.

2 Set System Date

Example Script to show how to set system date using PowerShell scripts.

3 Get System Time

Example Script to show how to get system time using PowerShell scripts.

4 Set System Time

Example Script to show how to set system time using PowerShell scripts.

Powershell — File I/O Operations

Following are the examples of powershell scripts of creating and reading different types of files.

Sr.No. Operation & Description
1 Create Text File

Example Script to show how to create a text file using PowerShell scripts.

2 Read Text File

Example Script to show how to read a text file using PowerShell scripts.

3 Create XML File

Example Script to show how to create a XML file using PowerShell scripts.

4 Read XML File

Example Script to show how to read a XML file using PowerShell scripts.

5 Create CSV File

Example Script to show how to create a CSV file using PowerShell scripts.

6 Read CSV File

Example Script to show how to read a CSV file using PowerShell scripts.

7 Create HTML File

Example Script to show how to create a HTML file using PowerShell scripts.

8 Read HTML File

Example Script to show how to read a HTML file using PowerShell scripts.

9 Erasing file content

Example Script to show how to erase file contents using PowerShell scripts.

10 Append Text Data

Example Script to show how to append text to a file contents using PowerShell scripts.

Работа со службами и процессами

PowerShell, конечно же, умеет управлять службами и процессами в Windows, для этого существуют такие командлеты как:

  • Get-Process – выводит информацию о запущенных процессах на компьютере;
  • Start-Process – запускает один или несколько процессов на компьютере;
  • Stop-Process — останавливает один или несколько запущенных процессов;
  • Get-Service – выводит информацию о службах;
  • Restart-Service – перезапускает службу;
  • Start-Service – запускает службу;
  • Stop-Service — останавливает службу;
  • Suspend-Service – приостанавливает работу службы;
  • Set-Service – с помощью данного командлета можно изменить свойства службы, например, описание, отображаемое имя и режим запуска. Также его можно использовать для запуска, остановки или приостановки службы.

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

Модуль: 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 и форум автоустановки программ

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

Командлеты: 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 запомнить проще, поэтому быстрее может получиться так:

Что такое PowerShell от Windows

PowerShell – это интерактивная объектно-ориентированная командная среда с функциями языка сценариев. Официальный релиз PowerShell 1.0 от «Майкрософт» состоялся 14 ноября 2006 года. Разработчики объединили интерфейс обычной командной строки CLI с платформой для управления локальными и удаленными сетями .NET Framework.

Отметим, что Windows PowerShell – это не простая операционная оболочка. Microsoft удалось создать мощное, расширяемое и одновременно гибкое средство автоматизации управления, которое способно функционировать как выделенный язык сценариев.

18 августа 2016 года Microsoft объявила, что Windows PowerShell – это теперь продукт с открытым исходным кодом, доступный каждому разработчику. Также компания добавила поддержку Unix-ориентированных операционных систем, включая дистрибутивы Linux и OS X.

Форматирование в Windows PowerShell

В Windows PowerShell существует набор командлетов, которые предназначены для форматирования вывода результата работы командлета. Они позволяют пользователю отобразить результат в том виде, в котором ему удобно просматривать данный результат.

  • Format-List – вывод результата команды в формате списка свойств, где на каждой новой строке отдельное свойство;
  • Format-Table — вывод результата команды в виде таблицы;
  • Format-Wide — вывод результата команды в виде широкой таблицы, в которой отображается только одно свойство каждого объекта;
  • Format-Custom – в данном случае форматирование вывода происходит с использованием пользовательского представления.

Работа с компьютером

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

  • Restart-Computer – командлет перезапускает операционную систему (перезагружает компьютер);
  • Stop-Computer – выключает компьютер;
  • Rename-Computer – переименовывает компьютер;
  • Checkpoint-Computer — создает точку восстановления системы на локальном компьютере;
  • Restore-Computer — запускает восстановление системы на локальном компьютере;
  • Disable-ComputerRestore — отключает функцию восстановления системы на указанном диске файловой системы;
  • Enable-ComputerRestore — включает функцию восстановления системы на указанном диске файловой системы;
  • Remove-Computer — удаляет локальный компьютер из домена;
  • Get-EventLog – выводит информацию о событиях в журнале событий, или список журналов событий на локальном или удаленном компьютере;
  • Clear-EventLog — удаляет записи из указанных журналов событий.

Как открыть командную строку от имени администратора в Windows 10

Пуск

В первых версиях операционной системы Windows 10 была возможность открыть командную строку от имени администратора выбрав соответствующий пункт в контекстном меню пуск. После нескольких обновлений, а именно начиная с обновления Windows 10 версии 1703, пункт выбора командной строки был заменен на оболочку Windows PowerShell, которая обладает более широким функционалом.

Ранее мы уже рассматривали как вернуть командную строку вместо оболочки Windows PowerShell в инструкции: Как удалить PowerShell в Windows 10. После чего можно будет запустить командную строку от имени администратора используя контекстное меню кнопки пуск.

  1. Переходим в Пуск > Параметры > Персонализация > Панель задач.
  2. Дальше изменяем значение пункта Заменить командную строку оболочкой Windows PowerShell в меню, которое появляется при щелчке правой кнопкой мыши по кнопке Пуск на Отключено.

Теперь для запуска командной строки от имени администратора достаточно нажать правой кнопкой мыши на иконку меню пуск и выбрать пункт Командная строка (администратор). А также возможность открыть контекстное меню кнопки пуск можно используя комбинацию клавиш Win+X.

Если же оболочка Windows PowerShell Вас полностью устраивает, тогда можно запустить командную строку через Windows PowerShell от имени администратора. После запуска оболочки Windows PowerShell с правами администратора, командная строка также будет запущена в окне оболочки PowerShell с правами администратора.

  1. Нажимаем сочетание клавиш Win+X и в контекстном меню выбираем пункт Windows PowerShell (администратор).
  2. В открывшемся окне выполняем команду cmd, после чего можно будет пользоваться окном PowerShell, как командной строкой.

Поиск

Обновленный поиск позволяет быстро найти и запустить любое приложение в операционной системе Windows 10. Пользователю достаточно нажать кнопку Пуск и начать вводить название Командная строка для быстрого поиска. После чего в результатах поиска нажать правой кнопкой на классическое приложение Командная строка и в контекстном меню выбрать пункт Запуск от имени администратора.А также есть возможность закрепить командную строку на начальном экране или панели задач. Там также после открытия контекстного меню на иконке командной строке будет возможность выбрать пункт запуск от имени администратора.

Проводник

Ранее мы рассматривали как запустить программу от имени администратора Windows 10. Так как командная строка является классическим приложением, то способ с использованием проводника можно также использовать. Поэтому пользователю достаточно перейти по пути: C:\ Windows\ System32 и найти классическое приложение командной строки с названием cmd.exe. Дальше необходимо нажать правой кнопкой мыши на текущее приложение и в открывшемся контекстном меню выбрать пункт Запуск от имени администратора.

Диспетчер задач

Диспетчер задач позволяет отключать, перезапускать и создавать новые задачи. Примером отключения и повторного запуска есть перезапуск Проводника в Windows 10. Текущий способ использует окно выполнить вызываемое комбинацией клавиш Win+R, но уже с возможностью запускать классические приложения с правами администратора.

  1. Пользователю достаточно открыть диспетчер задач используя комбинацию Ctrl+Shift+Esc или выбрав пункт Диспетчер задач в контекстном меню панели задач.
  2. Дальше в открывшемся окне диспетчера задач нажать копку меню Файл > Запустить новую задачу.
  3. В открывшемся окне создания задачи вводим команду Cmd, и отметив пункт Создать задачу с правами администратора нажимаем кнопку ОК.

Заключение

Для запуска любых приложений и командной строки от имени администратора необходимо обладать правами администратора в операционной системе Windows 10. Если же Вы являетесь администратором устройства, тогда у Вас есть возможность открыть командную строку от имени администратора для полноценного использования.

Обратите внимание что после перехода на операционную систему Windows 10 версии 1703 и новее пункт командной строки был заменен на Windows PowerShell. Именно поэтому если Вы привыкли пользоваться командной строкой обратите внимание как вернуть командную строку вместо PowerShell в Windows 10

Как альтернатива можно выбрать другой способ как можно открыть командную строку от имени администратора в Windows 10.

Список необходимых команд и инструкций для PowerShell

Имя каждого командлета представлено в форме «глагол-существительное» или «действие-объект». Предлагаем список наиболее важных cmdlets PowerShell для Windows 10 и предыдущих версий, начиная с XP. Они будут полезны даже начинающим пользователям, которые только вчера научились сохранять текстовые документы.

  1. Get-Help. Встроенный в ядро оболочки командлет. Предназначен для вызова справки и предоставляет полезную информацию о синтаксисе, программах, их назначении, других командлетах. Если в обычном командном интерпретаторе вы писали ipconfig /?, то в PowerShell нужно набрать Get-Help Get-Process.
  2. Get-Content. Упрощает процедуру чтения файлов для новичков и системных администраторов. Если раньше необходимо было открывать дескриптор и читать поочередно все строки документа, то теперь достаточно передать файл командлету. Для этого пропишите в консоли C:\> Get-Content C:\…\«имя файла».«расширение».
  3. Get-Service. Доступ к информации об установленных на компьютере службах.
  4. Get-Member. Выдает информацию о возвращаемом командлетом объекте, позволяет увидеть его свойства и методы.
  5. Get-Command. Выполняет поиск командлетов, возвращает о них всю информацию, включая данные о функциях, скриптах, приложениях и других элементах. В версии 5.0 PowerShell для Windows 10 в Get-Command добавлен столбец Version, и теперь команлдет отображает сразу несколько версий одного и того же модуля.
  6. Stop-\Start-Service. Незаменимый помощник для администраторов. Командлет запускает и останавливает службы на удаленных и локальных компьютерах.

Разница между CMD и PowerShell

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

PowerShell выводит вещи на новый уровень, позволяя администраторам контролировать всю сеть и все системы в этой сети. В отличие от CMD, который может интерпретировать и выполнять только пакетные команды, PowerShell также может интерпретировать и выполнять пакетные команды и PowerShell. Что это?

Вот где & lsquo; командлеты & rsquo; прийти. Это группа команд, которые пользователи могут выполнять с помощью одной команды. Эта группа команд называется скриптами. В CMD вы должны подождать, пока предыдущая команда не будет полностью выполнена, прежде чем дать следующую. PowerShell экономит время и позволяет автоматизировать использование сценариев таким образом.

В то время как CMD может работать только с текстом, PowerShell отказался от командной строки Linux, а также может работать с конвейерами. Каналы позволяют одному командлету обмениваться даже сложными данными (вывод) с другим командлетом (ввод). Это позволяет администраторам манипулировать и передавать данные между различными программами и даже компьютерами в сети, выполняя командлеты в определенной последовательности.

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

Также на Guiding Tech

PowerShell Basic Commands

There are a lot of PowerShell commands and it is very difficult to put in all these commands in this tutorial, we will focus on some of the most important as well as basic commands of PowerShell.

The first step is to go to the Get-Help command which gives you an explanation about how to give a command and its parameter.

To get the list of Updates

  • Get-HotFix and to install a hot fix as follows
  • Get-HotFix -id kb2741530

Powershell — cmdlets

A cmdlet or «Command let» is a lightweight command used in the Windows PowerShell environment. The Windows PowerShell runtime invokes these cmdlets at command prompt. You can create and invoke them programmatically through Windows PowerShell APIs.

Несколько полезных трюков

Разобравшись с редактором, можно приступать к написанию кода. PowerShell — несложный язык, и, я думаю, ты быстро разберешься, что к чему. Команды здесь называются командлетами, и каждый из них состоит из двух частей. Сначала идет действие, например Get, Set, Add, Invoke, Remove. Затем указывается то, на что действие направлено: Service, VM, AzureAccount, DHCPServerSetting. Каждая часть отделяется от другой дефисом. Получается, к примеру, get-process. Это, кстати, полезная команда, которая выводит список процессов. Скажем, если написать

увидим что-то такое:

INFO

Если при наборе команды нажать Tab, то редактор дополнит команду — так же, как в консоли. Двойное нажатие на Tab выведет список подходящих команд.

Теперь можно завершить зависший процесс:

Хочешь посмотреть права на директорию? Сделать это помогает такой командлет:

Можно просмотреть рекурсивно, правда уже чуть с более сложной логикой:

Если не можешь понять, что делает какой-то командлет, напиши следующее (заменив Get-Process на название неизвестного командлета):

Можно также выполнить

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

Теперь давай попробуем узнать что-нибудь о нашем домене через консоль PowerShell. К примеру, давай посмотрим пользовательские аккаунты, у которых установлен неистекающий пароль:

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

PowerShell в сравнении с bat

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

Следующая командная строка перезагрузит компьютер с задержкой в десять секунд:

На PowerShell это будет выглядеть вот так:

Вот так через bat можно перезагрузить службу dnscache (или любую другую):

В PowerShell это будет так:

Мап диска в bat:

И в PowerShell:

Да, иногда приходится печатать чуть больше букв, но читаются команды PS гораздо лучше. И это не говоря уже про разные новые возможности.

Удаленное управление с PowerShell

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

Более подробно читай тут.

Что почитать еще

Книжек и прочих обучающих материалов по PowerShell огромное количество. Есть как справочники, так и учебные туториалы. Начать можно с , где есть неплохие видеоуроки.

В деле немало поможет и книга «Master-PowerShell» Тобиаса Велтнера. В ней автор охватывает многие понятия вроде массивов, хеш-таблиц, конвейеров, объектов, функций, обработки ошибок, регулярных выражений и так далее. Заодно подробно рассматривается XML и разные аспекты администрирования. Увы, на русский эта книга не переведена.

Из русскоязычных мануалов по PowerShell мне попадался «Windows PowerShell 2.0. Справочник администратора» Уильяма Станека — он весьма неплох.

На «Хабрахабре» есть перевод полезной статьи Джеффери Хикса об администрировании Active Directory при помощи PowerShell.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Союз-Маркет
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: