Разное

Git help: Get Help Windows 10 — что это за программа и нужна ли она?

Get Help Windows 10 — что это за программа и нужна ли она?

Приветствую. Windows регулярно обновляется — добавляются не только критические обновления для исправлений уязвимостей, но и новые функции, компоненты, приложения.

Некоторые приложения созданы для помощи пользователям, об одном таком — пойдет речь.

Get Help в Windows 10 — что это такое?

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

Можете написать помощнику открыть панель управления (open control panel) — помощник подскажет:

Запустить Get Help можно написав название в поиск возле пуска:

На официальном сайте Microsoft присутствует другое описание приложения, немного странное — Get Help отправляет сообщение на сервер Open-Dispatch. Сервер может отправить сообщение по электронной почте соединяться с IFTTT чтобы отправить информацию о вашем местоположении во все сети.

Get-Help в PowerShell

Также Get-Help является командой вызова справки консоли PowerShell. Можно посмотреть примеры использования и детальное описание параметров любой команды PowerShell.

Чтобы получить список всех команд, которые работают со службами, достаточно прописать:

PS C:\> Get-Help Service

По каждой можно получить справку — достаточно прописать ключ -Name, например:

PS C:\> Get-Help -Name Get-Service

Заключение

  1. Get Help — программа для получения справки от виртуального ассистента.
  2. Также команда в PowerShell (пишется через дефис) получения справки.

Удачи.

На главную!

06.03.2020

Получение справки в Powershell Get-Help

Получение справки в Powershell выполняется через команду Get-Help. C помощью справочника мы можем вернуть ключи, описание и примеры использования команды, а так же многое другое.


Командлет содержит несколько алиасов и многим будет удобнее использовать один из них. Так я получаю справку по справке в Powershell:



Get-Help Get-Help
Get-Help -?
# Команды ниже будут выводить текст постранично, аналогично man ls | less в Linux
man man
help help


Если вам нужно найти пример использования командлета, то на примере Get-History (история выполненных команд в Powershell) нужно сделать:



Get-Help Get-History -Examples
# или 
man -Name Get-History -Examples


Для какой-то команды может не быть справочника и потребуется обновление. Обновление можно выполнить так:



Update-Help


Может возникнуть вопрос о русской справки в Powershell. Такого понятия у Microsoft нет. Во времена Windows 7 такая ситуация вроде и была, но не в редакциях Windows 10. В случаях русской локализации Windows какие-то команды имеют перевод. Кто-то рекомендует обновлять русскую справку так:



Update-Help -UICulture "ru-RU" -Force


Но по моим наблюдения изменения незначительные. Переводятся только заголовки справочника и другие незначительные части.


Кроме справочника Powershell в консоли мы можем получить и в графическом окне или на сайте:


  • Online — откроется страница на сайте Microsoft
  • ShowWindow — откроется диалоговое окно

Выглядит это примерно так:



Get-Help Get-History -Online
Get-Help Get-History -ShowWindow



На сайте Microsoft примеры аналогичны встроенному справочнику Powershell, но немного удобнее читать и бывают статьи переведенные на русский язык.


Не очень правильный подход, но возможный — это поиск по описанию в Powershell. Для примера я хочу найти команды добавляющие участника в группу AD:



Get-Help * | where -Property Synopsis -Like '*AD*group*'



Что бы область 1 была заполнена нужно обновить справку.


Я считаю такой метод не эффективны, так как он работает дольше. Если есть поверхностное понимание Powershell, то вы знаете, что первое слово в командлетах всегда глагол, а второе существительное. Добавление на английском Add и я использую другую команду для поиска командлетов:



# Verb- глагол, Noun - существительное
Get-Command -Verb 'Add' -Noun '*AD*Group*'



Далее я уже получу справку по команде:



Get-Help Add-ADGroupMember -Full


Full выводит справку полностью. Обычно нужно вывести ключи и по ним мы можем понять что нам требуется для работы командлета. Таких вариантов два. Первый — это вывести ключи с их полным описанием:



# Вместо звездочки можно поставить название ключа
Get-Help Add-ADGroupMember -Parameter *


Может получиться достаточно сложное чтиво. Я, в основном, вывожу список ключей так:



Get-Command Add-ADGroupMember -Syntax


Если вы работаете с каким-то сервисом и не знаете как сформировать условия поиска, то можно просто вывести список всех команд модуля:



Get-Command -Module Hyper-V


Для вывода информации о встроенных типах данных, функциях и многом другом есть отдельные пакеты начинающиеся с about_. Всех их можно вывести так:



help about_*


Справка ниже выведет информацию о подписи файлов со скриптами:



man about_signing


 

Теги:

#powershell

get help — Перевод на русский — примеры английский

Предложения:
to get help


На основании Вашего запроса эти примеры могут содержать грубую лексику.


На основании Вашего запроса эти примеры могут содержать разговорную лексику.

You need to go out and get help.

Get up and help me get help.

I must go home and get help.

We must get help from others.

In many towns, shelters have been established for women, who can get help in critical situations.

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

You guys stay here while I get help.

You promised me you’d get help.

Tomorrow… you must get help.

Stan, you need to go to the U.S. embassy and get help.

Стэн, ты должен обратиться за помощью в Американское посольство.

We could get help and come back for you.

Morgana, go, please — you must get help.

I need you to go get help now.

Stay here while I get help.

Two stay, two go and get help.

Having trouble with a mobile product you can get help through the website.

I must go home and get help.

If you are older than that, please get help.

But your subconscious mind used their knowledge to find us here, where you could get help.

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

I could trek cross country, find the nearest town, get help.

Get-Help или создаём встроенную справку для собственных команд PowerShell

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

  • Целевое назначение скрипта/команды.
  • Описание параметров и правила их использования.
  • Один или несколько примеров использования скрипта/команды.

Я видел множество вариантов оформления справки. Самые популярные это:

  • Комментарий перед параметром.
  • Выделенный блок комментариев, где приводится какая-то справка по использованию в произвольном исполнении.
  • Отсутствие какой-либо справки вообще.

Я не буду останавливаться на том, как это всё выглядит, а лишь расскажу, как должна быть оформлена справка к команде. Windows PowerShell предлагает нам 2 пути.

Справка, оформленная специальным образом в виде встроенного блока комментариев. Специальным образом — чтобы можно было её прочитать не только из тела самого скрипта, но и через стандартный командлет Get-Help. Если мы посмотрим на вывод командлета Get-Help, мы увидим, что вся справка разбита на категории/секции — описание, детальное описание, параметры, примеры и т.д. То же самое разделение используется и при оформлении справки в коде. Вот как выглядит общий шаблон справки:


function Remove-File {

[CmdletBinding()]
    param (
        [Parameter(Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)]
        [string]$Path,
        [switch]$Force
    )
    
}

Примечание: блок встроенной справки должен располагаться либо в самом начале функции (на следующей строке после первой открывающейся фигурной скобки) или в самом конце (перед последней закрывающейся фигурной скобкой). Я предпочитаю её размещать в начале.

Уже на данном этапе мы можем вставить код в консоль и выполнить ‘Get-Help Remove-File’ и получите знакомую справку. При этом, все дополнительные параметры (-Full, –Detailed, –Examples, etc.) так же доступны. Точка и слово на ней означает категорию или тэг. На следующей строке размещается текст, связанный с конкретным тэгом. Некоторые тэги могут быть использованы несколько раз — .Example и .Parameter. .Example применяется столько раз, сколько у вас используется примеров. Если 5 примеров, тэг .Example должен быть использован 5 раз. То же самое касается и .Parameter — на каждый параметр определённый в скрипте должен быть использован тэг Parameter. После ключевого слова .Parameter должно следовать имя параметра на этой же строке. Полный список возможных тэгов приводится в следующей таблице:

















Название тэгаОписание тэга
.SynopsisКраткое описание функции.
.DescriptionДетальное описание функции.
.Parameter <ParameterName>Описание к каждому параметру.
.ExampleПример использования функции и описание примера (т.е. что произойдёт, если выполнить конкретный пример).
.InputsТип данных, которые принимаются функцией. Например, [System.String]. Если их несколько, можете указать несколько типов на одной или нескольких строках.
.OutputsТип возвращаемых данных. Например, [IO.FileInfo] Если функция может возвращать несколько разных типов, их можно указать на одной или нескольких строках.
.NotesЗдесь можно указать какие-то заметки. Например, я использую .Notes для указания автора кода и его адреса.
.LinkМожно указать какие-то связанные ссылки. Например, на связанные команды.
.ComponentМожно указать продукт или компонент, для которого предназначена конкретная функция. Скажем, это может быть PKI, Exchange, SQL, SharePoint и т.д.
.RoleУказывает роль пользователя, который выполняет код. В принципе, можно указать необходимые права и/или привилегии.
.FunctionalityТоже можно что-то написать. Но я не вижу особой разницы с Description.
.ForwardHelpTargetNameУказывает команду, на которую надо форвардить пользователя при вызове справки. Т.е. если вы считаете, что в другом командлете/функции справка описана лучше, чем у вас (и по этой же теме), можете сослать пользователя туда. На практике это применяется, когда вы делаете proxy-функции. Т.е. реализуете функционал родного командлета и немного изменяете его под конкретные нужды.
.ForwardHelpCategoryЕсли указали предыдущий тег, надо указать конкретный раздел справки командлета, на который ссылаетесь.
.RemoteHelpRunspaceМожно указать имя переменной, которая хранит данные об удалённой сессии (pssession) для поиска хелпа. Маловероятно, что он вам понадобится
.ExternalHelpДанный тэг используется для ссылки на внешний файл справки в формате XML. Об этом будет написано ниже.

По собственному опыту могу сказать, что все их заполнять не обязательно (хотя и желательно указать максимальное количество необходимой информации). Как минимум, справка должна содержать следующие секции справки: Synopsis, Description, Parameter, Example. Остальное по желанию.

Внешняя справка — это альтернативный вариант оформления справки. Если первый вариант использует специально оформленный блок комментариев в коде, второй использует внешний файл XML. Я не буду расписывать схему и структуру этого XML, просто расскажу как его можно создать и когда его лучше всего использовать.

Справку к командам в отдельном файле можно создать при помощи CmdLet Help Editor.

Замтека: этот редактор достаточно бажный и нередко вылетает с разными ошибками. Поэтому периодически сохраняйте свои изменённые данные.

Если для одиночных функций удобней всего пользоваться справкой, встроенной в код, то для больших проектов (например, у вас модуль с кучей функций) есть смысл держать всю справку в отдельном файле. Например, вы можете распотрошить мой PowerShell PKI Module и посмотреть, как оно выглядит. В каждой функции я делаю ссылку на PKI.Help.xml, который уже хранит справку для всех функций, доступных в модуле. Т.е. если вы справку держите в отдельном XML, то в коде функции вам надо сделать ссылку на этот XML:


function Remove-File {

[CmdletBinding()]
    param (
        [Parameter(Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)]
        [string]$Path,
        [switch]$Force
    )
    
}

Заметка: если у кого-то из вас осталась самая первая версия (0.8) PowerShell PKI модуля, можете увидеть, что там используется ещё comment-based help, а в более новых уже XML.

Файл XML должен храниться в той же папке, что и файл с функциями. Если хотите держать их совсем отдельно, надо указывать полный путь до XML.


Топ 7 Powershell командлетов для новичков / Блог компании Netwrix / Хабр

Наверное, все слышали о PowerShell, но наверняка не всем довелось с ним работать. Для тех, кто только начинает прокладывать свой путь в дебри PowerShell, мы приводим перевод поста, вышедшего на портале 4sysops.com. В нем рассказано о 7 командах, которые помогут тем, кто только начал работать с PowerShell. За подробностями – добро пожаловать под кат.

GET-HELP

Самый первый и самый главный командлет PowerShell – вызов справки. С помощью командлета Get-Help можно проверить синтаксис, посмотреть примеры использования и детальное описание параметров любого PowerShell командлета. Этот командлет примечателен тем, что вы просто можете набрать Get-Help Services, чтобы получить список всех командлетов, которые подходят для работы со службами.
Пример:

PS C:\> Get-Help Service

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

PS C:\> Get-Help -Name Get-Service

Вы получаете всю информацию о командлете Get-Service (будет рассмотрен ниже).

GET-CONTENT

Чтение содержимого файлов – наиболее частое требование для новичков, которые пытаются выучить PowerShell. Процедура чтения файлов с PowerShell упрощается. Даже неспециалист может читать содержимое файла, просто передав его в командлет Get-Content.
Пример.

PS C:\> Get-Content C:\scripts\Computers.txt
mytestpc1
techibee.com
dummynotresolvinghost.com
PS C:\>

Необходимо больше информации о командлете? Воспользуйтесь Get-Help:

PS C:\> Get-Help Get-Content -Detailed 
GET-SERVICE

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

PS C:\> Get-Service wwansvc, spooler
Status Name DisplayName
------ ---- -----------
Running spooler Print Spooler
Stopped wwansvc WWAN AutoConfig
PS C:\>
 

Здесь мы запросили информацию о двух службах wwansvc и spooler
Выводится таблица со статусом службы, ее именем и отображаемым именем.
Мы можем видеть что служба spooler запущена, а wwansvc остановлена

STOP-SERVICE И START-SERVICE

Запуск и остановка служб – достаточно важный момент в работе администратора Windows. В PowerShell имеются встроенные командлеты, которые упрощают работу администратора, не требуя открытия консоли MMC. Используя эти командлеты Вы можете останавливать/запускать службы как на локальных, так и на удаленных компьютерах.
Примеры:
Запуск/остановка службы на локальном компьютере (на примере службы spooler):

PS C:\> Stop-Service -Name Spooler
PS C:\> Start-Service -Name Spooler

Запуск/остановка службы на удаленном компьютере (spooler):

PS C:\> $ServiceObj = Get-Service -ComputerName MyPC1 -Name spooler
PS C:\> Stop-Service -InputObj $ServiceObj
PS C:\> Start-Service -InputObj $ServiceObj
GET-PROCESS

Этот командлет позволяет быть в курсе, какие процессы запущены на локальных или удаленных компьютерах. Показываются имя и ID процесса, а также путь к исполняемому файлу, имя компании, версия исполняемого файла и память, используемая процессом.
Примеры:
Получение информации о процессах, запущенных на локальном компьютере:

PS C:\> Get-Process

Введите следующий командлет для получения подробной информации о запущенных процессах

PS C:\> Get-Process | Format-List * -Force

Получение информации о процессах, запущенных на удаленном компьютере:

PS C:\> Get-Process -ComputerName MYPC1 | Format-List * -Force

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

STOP-PROCESS

Этот командлет остановливает процесс на локальном или удаленном компьютере. Он берет имя или ID процесса и завершает этот процесс. Это полезно в тех случаях, когда приложение не отвечает.
Пример:
Остановить процесс с ID 22608 на локальном компьютере:

PS C:\> Stop-Process -Id 22608

Остановить все процессы Excel на локальном компьютере:

PS C:\> Stop-Process -name excel

Совет: Хотя у командлета Stop-Process отсутствует параметр -ComputerName, Вы все равно можете использовать его для завершения удаленных процессов, используя предложенный ниже совет:

PS C:\> $Obj = Get-Process -Name excel -ComputerName MYPC1
PS C:\> Stop-Process -InputObject $Obj

Upd:

В посте приведен перевод статьи с портала 4sysops.com
Top 7 PowerShell commands for beginners

P.S. Смотрите также интересные посты на Хабре, посвященные работе с PowerShell
Аудит доступа к файлам

Аудит Active Directory (Часть 1 и 2)
Актуализируем учетные данные Active Directory
Аудит создания учетных записей в AD

Первые шаги для пауэршельшиков / Хабр

Приди ко мне брате в Консоль!

— Админ Долгорукий.

Много ярлыков улетело в корзину со времён выхода в свет 2008 Windows. Люди попроще дивились новому синему окошку, которое ребята из Майкрософт зачем-то вставили в свои новые продукты. Люди, которые сидят на блогах и знают программирование начали изучать это окошко.

В итоге к народу начало приходить осознание того, что Майкрософт действительно разработали что-то новое и интересное.

И так, зачем вам это нужно? В основном, программа под названием PowerShell (в дальнейшем PS) предназначена для администраторов и программистов. Она позволяет автоматизировать примерно 99% всех действий в системе. С помощью неё вы можете настраивать удалённые компьютеры, запускать и перезапускать сервисы и производить обслуживание большиства серверных приложений. Как выяснилось, возможности у программы потрясающие.

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

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


Что представляет собой PS? Это интерпретатор командной строки. Вы вводите необходимые команды, на экране отображается результат их выполнения. Всё просто. Всё было так со времён доса и старого доброго Юникса.

Есть два основных отличия от предшественников, которые качественно выделяют PS среди других интерпретаторов.

  • Очень хорошая интеграция с Microsoft .NET Framework. Это даёт вам возможность вплетать мощные программистские решения в свои команды и скрипты.
  • Все значения, возвращаемые вам в терминал являются объектами, с которыми можно работать как с объектами, а не просто набором строк. Это позволяет вам создавать неимоверно мощные программные скрипты.

Приступая к работе

Если вы используете Windows 7 или 2008 то PS вам уже доступен. Для пользователей других версий Windows — добро пожаловать на сайт Майкрософт.

После установки вы можете запустить консоль и настроить её по своему вкусу, нажав на иконку в заголовке окна. Вы можете выбрать шрифт и изменить сам размер окна.

После этого, предпринимайте робкие шаги по выполнению первых команд. Для начала наберите

dir

и вы получите список папок в текущем каталоге. Приятным моментом для любителей Юникса

будет тот факт, что команда

ls

работает так же хорошо, как и dir. В PS существует система назначения алиасов на различные команды. В действительности, то что вы сейчас сделали — это выполнили командлет (так в PS называются команды, встроенные в сам PS) Get-ChildItem. Вы можете попробовать просто набрать Get-ChildItem и получить тот же результат, что и в двух предыдущих командах. Для того, чтобы вы быстро ознакомились со списком всех алиасов наберите

ls Alias:\

И так, что-то произошло. Вы начали кое-что понимать. Сейчас я буду раскладывать всю магию по кусочкам.

Первое. Командлеты в оригинальной нотации PS имеют следующую систему именования — Глагол-Объект. Это позволяет вам лучше понимать, что можно ожидать в результате выполнения того или иного командлета. Например,

Get-Process # Получить список процессов

Remove-Item # Удалить что-то

Get-Help # получить справку по чему-то

Set-Alias # Создать новый алиас

New-Item # Создать новый объект (Объектом может быть всё что угодно, например, файл)

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

Get-PSDrive

И в ответ вы получаете намного более интересный список дисков в вашей системе, нежели тот, что вы видите в «Моём Компьютере»

Name           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
Alias                                  Alias
C                  16.56         63.44 FileSystem    C:\
cert                                   Certificate   \
D                    .11         53.92 FileSystem    D:\
Env                                    Environment
Function                               Function
HKCU                                   Registry      HKEY_CURRENT_USER
HKLM                                   Registry      HKEY_LOCAL_MACHINE
Variable                               Variable
WSMan                                  WSMan

На диске Alias вы можете увидеть список всех алиясов в системе. Виртуальный диск Variable: хранит в себе все переменные, которые вы можете использовать в данной сессии. На диске Env — лежат переменные операционной системы. Диски HKCU и HKLM являются обёрткой для работы с соответствующими ветками реестра.

Давайте углубимся. Набирайте

Set-Location HKLM: # Или, если вы из людей подосёвее, набирайте cd HKLM:

Ну и как вам новый и невероятный способ хождения по реестру всея машины? Вы можете сделать ls по ветке реестра или перейти в нужный «каталог», набрав cd SYSTEM.

SKC  VC Name                           Property
---  -- ----                           --------
  2   0 BCD00000000                    {}
  4   0 HARDWARE                       {}
  1   0 SAM                            {}
Get-ChildItem : Requested registry access is not allowed.
At line:1 char:3
+ ls <<<<  -force
    + CategoryInfo          : PermissionDenied: (HKEY_LOCAL_MACHINE\SECURITY:St
   ring) [Get-ChildItem], SecurityException
    + FullyQualifiedErrorId : System.Security.SecurityException,Microsoft.Power
   Shell.Commands.GetChildItemCommand

 35   0 SOFTWARE                       {}
  8   0 SYSTEM                         {}

(Кстати, даже из под администраторского аккаунта есть доступ не ко всем объектам, о чём мой шелл меня уведомляет красными буквами).

Не бойтесь использовать команды New-Item и Remove-Item чтобы создавать и удалять нужные вам ключи в реестре. (И по традиции, я напомню вам, что играться с ключами реестра в администраторском режиме опасно)

Ну, вот вам и небольшой экскурс вглубь. Конечно же, у вас не получится создать ключ реестра так просто. Что-то пойдёт не так, как надо. Ну что же, могу сказать, что PS — это система, которая поощряет обучение в этой системе. Поэтому

Обучение тому, как правильно чему-то научиться в PowerShell

Способность наблюдать и анализировать наблюдения отличает нормального человека от психа. Ребят в Майкрософт психами не назовёшь. Они действительно понаблюдали за пользователями других командных интерпретаторов и выяснили, какая команда чаще всего используется в интерпретаторах. И той командой был великий и могучий man. (Для незнающих — попробуйте сделать — гугл man или наберите в своём баше man man)
В PS есть аналогичная команда, которая звучит как

Get-Help # хотя вы можеше использовать алиас на неё, под названием help

Насколько поразительно отвратительно ребята из Майкрософт делают документацию для пользовательских приложений, настолько хорошо они заботятся о программистах. (Неверующие могут сравнить справку системы Windows XP и 2003)

И так, выбирайте приглянувшийся вам командлет и отправляйте его в help. Если после прочтения общей справки вы ничего не поняли, то попробуйте набрать

get-help New-Item -Examples

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

На самом деле, одним только Гет-Хелпом, я в своё время изучил основы PS, перебирая все команды и читая к ним справку.

Если же вы захотели получить справку по какой-то функции, но не знаете, как она называется, а просто предполагаете о её существовании, то просто наберите

get-help files

В ответ на эту команду вы получите список топиков, которые содержат ключевое слово:

PS C:\> get-help Files

Name                              Category  Synopsis
----                              --------  --------
FileSystem                        Provider  Provides access to files and dire...
about_profiles                    HelpFile  Describes how to create and use a...

В нашем случая, для того, чтобы научиться работать с реестром, вы можете просто набрать

get-help Registry

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

К сожалению, читабельность полотна обратно пропорциональна его длине. Так что, научившись учиться, давайте обучимся тому, как сделать работу в шелле немного проще.

Маленькие, но очень полезные фишки, которые должны быть в жизни

Товарищ, смирись, ты — в командной строке. Тут безгуёво принципе. Но, если ты познаешь некоторые уловки, тебе здесь станет удобно.

И так, для тех, кто никогда не был в командной строке

  1. Нажатие кнопкок вверх и вниз позволяет вам прокручивать историю команд, и выбирать ранее набранные команды.
  2. Нажатие кнопки вправо, в конце строки, будет посимвольно перенабирать предыдущую команду.

Для тех, кто уже бывал в командных строках

  1. Ctrl+Home — удаляет всё, начиная с текущей позиции курсора до начала строки
  2. Ctrl+End — удаляет с курсора и до конца строки
  3. F7 — показывает окно со списком набранных команд, и позволяет выбрать одну из них.
  4. Для того, чтобы скопировать что-то в буфер, выделите это мышью и нажмите Enter.
  5. Для того, чтобы вставить строку из буфера — просто нажмите правую кнопку мыши.

Это — самые базовые, и необходимые действия, которые вам придётся выучить наизусть. Другое дело, что они помогут вам шустрее работать с шеллом.

Углубляемся в изучение окружения

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

PS C:\> ls -filter "*.bat" | Get-Content
REM Dummy file for NTVDM

Команда ls -filter «*.bat» выбирает все файлы с нужным расширением, а команда Get-Content выводит их на экран (на самом деле, исходя из названия, команда просто получает содержимое объекта, а на экран он выводится по факту того, что дальше некуда)

Конвейер может сделать очень много полезного для вас. Например, решить «портянку помощи».

Get-Help Registry | Set-Content reg.txt

И весь файл помощи по реестру сохранён в текстовом файле, который вы теперь можете открыть.

Если вы действительно хотите порадоваться жизни, и понять, что PS способен на многое, то вам придётся применить свой IQ на все 100% и вообразить что-то нереальное.

ps | ls

Выглядит невероятно, а результат даёт потрясающий! Если вы хотите узнать, из какого файла появился процесс, просто пустите его конвейером на get-childitem!

В частности, я сейчас набираю текст в вордпаде:

PS C:\> ps wordpad | ls

    Directory: C:\Program Files\Windows NT\Accessories

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---         6/28/2010   9:57 PM    4247040 wordpad.exe

Вот это меня поразило до глубины души.

Теперь можно переходить к изучению окружения

Как я уже говорил, всё что вы видите на экране не является строками, а является объектами. Например, результат выполнения команды ps возвращает нам список процессов, запущенных в системе.
Но как узнать, что же у нас в руках?
Для этого мы воспользуемся командлетом Get-Member, который откроет нам методы любого класса. Давайте узнаем, что содержится в том же самом процессе, который выдаёт нам команда ps.

ps wordpad | Get-Member

Набирайте, и смотрите на список членов класса, которые вы можете увидеть в классе System.Diagnostics.Process. Тоесть, фактически, командлет ps вернул нам массив объектов типа Process и мы можем попрограммировать их!

Давайте поглумимся над блокнотом.

PS C:\> notepad                                                        
PS C:\> ps notepad                                                                                                                            Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName  -------  ------    -----      ----- -----   ------     -- -----------       70       4     1148       5376    56     0.30   3900 notepad                                                                                                                                                    PS C:\> ps notepad | get-member -type method


   TypeName: System.Diagnostics.Process

Name                      MemberType Definition
----                      ---------- ----------
BeginErrorReadLine        Method     System.Void BeginErrorReadLine()
BeginOutputReadLine       Method     System.Void BeginOutputReadLine()
CancelErrorRead           Method     System.Void CancelErrorRead()
CancelOutputRead          Method     System.Void CancelOutputRead()
Close                     Method     System.Void Close()
CloseMainWindow           Method     bool CloseMainWindow()
CreateObjRef              Method     System.Runtime.Remoting.ObjRef CreateObj...
Dispose                   Method     System.Void Dispose()
Equals                    Method     bool Equals(System.Object obj)
GetHashCode               Method     int GetHashCode()
GetLifetimeService        Method     System.Object GetLifetimeService()
GetType                   Method     type GetType()
InitializeLifetimeService Method     System.Object InitializeLifetimeService()
Kill                      Method     System.Void Kill()
Refresh                   Method     System.Void Refresh()
Start                     Method     bool Start()
ToString                  Method     string ToString()
WaitForExit               Method     bool WaitForExit(int milliseconds), Syst...
WaitForInputIdle          Method     bool WaitForInputIdle(int milliseconds),...

Вот это неплохое количество методов, которые мы можем запустить, используя шелл. И так, как же это сделать? Просто.

(ps notepad).WaitForExit()

Если вы возьмёте результат выполнения командлета в скобки, то вы сможете обратиться к нему, как к объекту в вашей программе, прямо из командной строки.

После запуска этого метода шелл завис и ждёт у моря погоды. Нажмите пару раз Enter. Ничего не происходит. Что же, закройте открытый блокнот. Вуаля, вы снова в шелле.

Я думаю, теперь вы должны погулять свою фантазию. Попробуйте, пустите через конвейер в get-member результаты выполнения ls или других командлетов, каких только можете найти.

Если вы увидели, что в свойстве какого-то объекта лежит ещё один объект, не стесняйтесь пускать его на Get-Member

(ps notepad).StartTime | Get-Member

И так далее до бесконечности.

Задача для пытливых умов. Пролетела новость, что рефлектор станет платным. Как сделать рефлектор на чистом PS? Кстати, это не такая уж и трудная задача.

Ну, вот, мы немного разобрались с тем, как узнать, что нас окружает. Теперь, мы готовы к тому, чтобы понять ещё парочку принципов, существующих в шелле.

Переменные и объекты

И так, пару слов по поводу переменных. В PS они бывают нетипизированными:

$processList = ps

И типизированными

PS C:\> [DateTime]$x = "febbrrr"
Cannot convert value "febbrrr" to type "System.DateTime". Error: "The string was
 not recognized as a valid DateTime. There is a unknown word starting at index 0."
At line:1 char:13
+ [DateTime]$x <<<<  = "febbrrr"
    + CategoryInfo          : MetadataError: (:) [], ArgumentTransformationMetadataException
    + FullyQualifiedErrorId : RuntimeException
PS C:\> [DateTime]$x = "02/14/11"
PS C:\> $x
Monday, February 14, 2011 12:00:00 AM

И так, у нас появились переменные, и теперь мы можем присваивать им значения. В общем, всё, что вы пускали на конвейер, можно пустить и в переменную. Но, тут PS предоставляет нам одну очень интересную фитчу, которая делает его незаменимым инструментом в руках .NET разработчика.

Помните, я сказал, что в PS всё, что возвращается — это объект? Ну так вот, объект это не простой, а дотнетовый. Любой программист уже обратил внимание на тот факт, что в списке процессов мы работали с объектом из окружения CLR. Что же, мы можем запросто создать такой объект.

Давайте, попробуйте

$x = new-object System.Object

Что-же, переменную мы создали, а толку от неё — как с икспи сервака. Никакого. Давайте пофантазируем и подумаем, что мы действительно можем сделать?

C:\> $client = New-Object System.Net.WebClient
C:\> $client.DownloadString("http://google.com")

А вот это уже другое дело. Только что мы из подручных средств собрали себе wget на коленке. Как вам такой поворот событий?

Что же, в этот момент можно идти в MSDN и подряд перебирать все классы, смотреть, что в них есть интересного. Всё это позволяет создавать очень гибкие скрипты.

Кстати, о скриптах

PS позволяет выполнять скрипты. Ура! Делает он это с волшебного пендаля. Неура. По умолчанию в PS запрещён запуск скриптов, которые не были подписаны цифровой подписью. Для запуска скрипта вы должны его либо подписать (для этого используйте help about_signing) либо, просто понизить уровень безопасности, и выполнить

set-executionpolicy remotesigned

обычно я делаю второе. Ибо первый вариант требует скачивания многотонных SDK и долгого колдовства. Хотя, напомню о безопасности, и скажу, что второй вариант не канает для супер-сервера-всея-руси.

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

New-Item -type file $PROFILE

Переменная $PROFILE содержит в себе адрес файла с вашим профилем в PS. Этот файл будет запускаться в тот момент, когда вы стартуете PS. Плюс заключается в том, что вы можете нашпиговать свой профиль разными мелкими и полезными скриптами, которые помогут вам автоматизировать производство.

Теперь вы можете начать редактирование своего профиля:

vim $PROFILE

(О, кстати, я вам не сказал, но в PS, на мой взгляд, лучше всего смотрится текстовый редактор vim. Возможно кто-то назовёт меня настоящим извращенцем, но на самом деле, я уже не раз пытался использовать что-то другое, но всегда возвращался к виму. Попробуйте и вы. Его не просто изучить с нуля, но если вы поймёте основы, то сможете очень быстро и удобно редактировать тексты.)

Ладно, теперь повторим эту команду без того, чтобы умничать:

notepad $PROFILE

Ну, вот, например, то, что лежит у меня в профиле

$webClient =  New-Object System.Net.WebClient
$cred = New-Object System.Net.NetworkCredential("login", "Pass")
$webClient.Proxy = New-Object System.Net.WebProxy("www.proxy.adrress", $true, $null, $cred)

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

Что ещё можно запихнуть в профиль?

Всё что угодно. Настройки цвета окна, ваши любимые функции и алиасы. Алиасы на ваши излюбленные программы и скрипты автоматизации…

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

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

Написать скрипт, который сортирует изображения по папкам, исходя из их размера (для получения размера файла можно использовать дотнет объекты или ком объекты, предоставляемые эксплорером)

Для выполнения этого, вам уж точно понадобиться хорошо изучить Where-Object или Foreach-Object.

Написать простой NMAP

Что будет, если запустить команду Пинг в цикле? А теперь, возьмите выход от этой команды и пропарсите его как строку. Вам однозначно придётся прочитать мануал по -le -ge и том, как работать со строками.

Написать парсер для башорга.

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

Поиграться с переменной $host и сделать из синего экрана Матрицу!

Что ещё можно делать? Матёрые COM программисты найдут для себя отличный способ повеселиться, когда обнаружат, что new-object имеет ключ -comObject. Фактически, это открывает вам ворота к полному управлению практически любой функцией локального и удалённого компьютера.

Ещё хочу заметить, что последние версии программного обеспечения от Microsoft поддерживают работу в PowerShell. Например, есть SQL PowerShell, который поставляется с 2008 сиквелом и позволяет сделать ls по записям в любой таблице. Это даёт ещё больший простор для фантазий.

Так же, хочу заметить, что комьюнити по разработке на PS очень сильно растёт и ширится. В частности, вы можете найти скрипты, готовые для чего угодно — например, вы можете нагуглить себе способ управления ITunes через PowerShell или способ использования Google Desktop Search в PS.

Что же, мой неинтересующийся друг, надеюсь, я дал тебе что-то интересное, и ты теперь возьмёшься за покорение интерпретатора, который действительно поможет тебе упростить твою нелёгкую программерскую жизнь и даст тебе возможность автоматизировать больше и быстрее. Очень приятно, что ты прочитал мою статью. Спасибо большое, я могу продолжать конкретно описывать определённые области, если вдруг тебе станет очень интересно.

get help — с английского на русский

  • get — /get/ verb past tense got, past participle got especially BrE gotten especially AmE present participle getting RECEIVE/OBTAIN 1 RECEIVE (transitive not in passive) to be given or receive something: Sharon always seems to get loads of mail. | Why… …   Longman dictionary of contemporary English

  • help — help1 W1S1 [help] v [: Old English; Origin: helpan] 1.) [I and T] to make it possible or easier for someone to do something by doing part of their work or by giving them something they need ▪ If there s anything I can do to help, just give me a… …   Dictionary of contemporary English

  • help — 1 /help/ verb 1 MAKE POSSIBLE OR EASIER (I, T) to make it possible or easier for someone to do something by doing part of their work or by giving them something they need: If there s anything I can do to help, just give me a call. | She devoted… …   Longman dictionary of contemporary English

  • help — I UK [help] / US verb Word forms help : present tense I/you/we/they help he/she/it helps present participle helping past tense helped past participle helped *** Get it right: help: The verb help is not used with the ing form of another verb. It… …   English dictionary

  • help — {{Roman}}I.{{/Roman}} noun ADJECTIVE ▪ big, considerable, enormous, great, huge, immense, invaluable, real, substantial, tremendous …   Collocations dictionary

  • help — help1 [ help ] verb *** 1. ) intransitive or transitive to give someone support or information so that they can do something more easily: If you are finding that difficult I could help you. Mary was anxious to help. help someone (to) do something …   Usage of the words and phrases in modern English

  • get — I [[t]ge̱t[/t]] CHANGING, CAUSING, MOVING, OR REACHING ♦ gets, getting, got, gotten (past tense & past participle) (In most of its uses get is a fairly informal word. Gotten is an American form of the past tense and past participle.) 1) V LINK… …   English dictionary

  • Help (command) — In computing, help is a command in various command line shells such as COMMAND.COM, cmd.exe, 4DOS/4NT, Windows PowerShell, Python and GNU Octave. It provides online information about available commands and the shell environment. It is analogous… …   Wikipedia

  • Help (Website) — Infobox Website name = Help.com url = http://www.help.com/ type = Social Community Help registration = Optional (Must register to talk in the site s chatroom) owner = CBS Interactive author = Jeff Minard Yousef Ourabi [Cite web title = About |… …   Wikipedia

  • get — [ get ] (past tense got [ gat ] ; past participle gotten [ gatn ] ) verb *** ▸ 1 obtain/receive ▸ 2 become/start to be ▸ 3 do something/have something done ▸ 4 move to/from ▸ 5 progress in activity ▸ 6 fit/put something in a place ▸ 7 understand… …   Usage of the words and phrases in modern English

  • Help Yourself — Studioalbum von Julian Lennon Veröffentlichung 1991 Labels Atlantic Records Vi …   Deutsch Wikipedia

  • Get-Help — PowerShell — SS64.com

    Get-Help — PowerShell — SS64.com

    Отображение информации о командлетах и ​​концепциях Windows PowerShell.

     Синтаксис
          Get-Help [[-name]  строка ] [-компонент  строка  []]
             [-функция  строка  []]
                [-role  строка  []] [-category  строка  []]
                   [{-full | подробный | -примеры | -параметр  строка }]
                      [-Online] [-ShowWindow] [-Path  string ] [ CommonParameters ]
    Ключ
       -имя
           Запросить помощь по строке  
           Имя командлета, тема, псевдоним, имя сценария или функции.Подстановочные знаки разрешены.
           например -name Get-Member, -name "About_Object", -name "ls"
           «-Name» не является обязательным.
    
       -категория
           Вывести справку по элементам в указанной категории.
           Допустимые значения: Alias, Cmdlet, Provider, General, FAQ, Glossary, HelpFile, ScriptCommand, Function
                          Фильтр, Внешний сценарий, Все, DefaultHelp, Рабочий процесс, DscResource, Класс, Конфигурация
           Концептуальные темы находятся в категории HelpFile.-составная часть
           Вывести список командлетов с указанным значением компонента,
           типа «Обмен».
    
       -подробный
           Отображать дополнительную информацию о командлете, включая
           описание параметров и примеры использования
           командлет. Этот параметр не влияет на дисплеи
           концептуальной ("О_") помощи.
    
       -Примеры
           Отобразите примеры использования командлета.
           Чтобы отобразить только примеры, введите
             "(get-help  имя-командлета ).Примеры".
    
       -полный
           Отображение всего файла справки для командлета, включая
           техническая информация о параметрах.
           Этот параметр не влияет на отображение
           концептуальная ("About_") справка.
    
       -функциональность
           Отображение справки для командлетов с указанными функциями.
           Подстановочные знаки разрешены.
    
       -В сети
           Отображение онлайн-версии раздела справки в интернет-браузере по умолчанию.
           Этот параметр действителен только для разделов справки по командлетам, функциям и скриптам.см. справку about_Comment_Based_Help
    
       -параметр
           Вывести подробное описание указанного параметра.
           Эти описания включены в Полный обзор справки.
           Подстановочные знаки разрешены.
    
       -Path  string  
    Получите справку, объясняющую, как командлет работает в указанном пути поставщика. Введите путь к поставщику Windows PowerShell.

    Этот параметр действует только для справки о командлете поставщика и только в том случае, если поставщик включает настраиваемую версию раздела справки по командлету поставщика.

    Перейдите в расположение пути к поставщику и введите Get-Help или из любого расположения пути используйте Get-Help -Path. Для получения дополнительной информации см. About_Providers. -role Строка Отображение справки, настроенной для указанной роли пользователя. Роль, которую играет пользователь в организации. Этот параметр не влияет на основные командлеты. -Витрина Отобразите текст справки во всплывающем окне графического интерфейса. (PowerShell 3.0+)

    Примеры

    Список всех файлов справки в справочной системе PowerShell:

    PS C: \> get-help *

    Показать подробную справку для командлета Get-Childitem, указав один из его псевдонимов, ls:

    PS C: \> get-help ls -подробно

    Показать описания параметров командлета Get-Childitem, начинающиеся с «f» (фильтр и принудительное использование):

    PS C: \> get-help get-childitem -parameter f *

    Чтобы увидеть описание всех параметров, введите «get-help get-childitem parameter *»

    Показать только синтаксис командлета write-object:

    PS C: \> (получить-справку-объект записи).синтаксис

    Синтаксис — одно из многих свойств объектов справки; другие:
    описание, детали, примеры и параметры.

    Чтобы найти все свойства и методы объектов справки, введите «get-help <имя-командлета> | get-member», например, «get-help start-service | get-member»

    «Евангелизируйте, куда бы вы ни пошли, и, если необходимо, используйте слова» ~ Святой Франциск Ассизский

    Связанные командлеты PowerShell:

    Update-Help — Загрузите и установите на свой компьютер новейшие файлы справки.
    Get-Command — получить основную информацию о команде.
    Show-Command — создание команд PowerShell в графическом командном окне.
    Get-PSDrive — получить информацию о диске (DriveInfo)
    Get-Member — перечислить свойства объекта
    Эквивалентная команда bash: man — отображение полезной информации о командах.


    Авторские права © 1999-2020 SS64.com
    Некоторые права защищены.

    get help — это … Что такое get help?

  • получить — / get / глагол прошедшего времени получил, причастие прошедшего времени получил особенно BrE, особенно причастие настоящего времени AmE, получающее ПОЛУЧЕНИЕ / ПОЛУЧЕНИЕ 1 ПОЛУЧЕНИЕ (переходное не в пассивном), чтобы что-то отдать или получить: Шэрон, кажется, всегда получает нагрузки почты. | Почему…… Словарь современного английского языка Longman

  • help — help1 W1S1 [help] v [: староанглийский; Происхождение: helpan] 1.) [Я и Т], чтобы сделать возможным или более легким для кого-то что-то делать, выполняя часть своей работы или давая ему то, что им нужно ▪ Если я могу чем-то помочь, просто дайте мне а…… Словарь современного английского

  • help — 1 / help / verb 1 СДЕЛАТЬ ВОЗМОЖНОСТЬ ИЛИ ЛЕГКОСТЬ (I, T) сделать возможным или более легким для кого-то что-то делать, выполняя часть своей работы или давая ему то, что ему нужно: Если есть что-то Я могу помочь, просто позвоните мне.| Она посвятила…… словарь современного английского языка Longman

  • help — I UK [help] / US глагол Помощь в формах слова: настоящее время I / you / we / they help he / she / it помогает причастие настоящего времени помогает причастие прошедшего времени помогло причастие прошедшего времени помогло *** Правильно: help: глагол help не используется с формой ing другого глагола. Это…… Английский словарь

  • help — {{Roman}} I. {{/ Roman}} существительное ADJECTIVE ▪ большой, значительный, огромный, большой, огромный, огромный, бесценный, реальный, существенный, огромный… Словарь словосочетаний

  • help — help1 [help] глагол *** 1.) непереходный или транзитивный, чтобы оказать кому-то поддержку или информацию, чтобы он мог сделать что-то более легко: если вам это трудно, я могу вам помочь. Мэри очень хотелось помочь. помочь кому-то (сделать) что-то… Использование слов и фраз в современном английском

  • получить — Я [[t] ge̱t [/ t]] ИЗМЕНЕНИЕ, ПРИЧИНА, ПЕРЕМЕЩЕНИЕ ИЛИ ДОСТИЖЕНИЕ ♦ получает, получает, получил, получил (прошедшее время и причастие прошедшего времени) (в большинстве случаев неформальное слово Gotten — американская форма прошедшего времени и причастия прошедшего времени.) 1) V LINK…… Английский словарь

  • Справка (команда) — В вычислениях справка — это команда в различных оболочках командной строки, таких как COMMAND.COM, cmd.exe, 4DOS / 4NT, Windows PowerShell, Python и GNU Octave. Он предоставляет онлайн-информацию о доступных командах и среде оболочки. Аналогично…… Википедия

  • Справка (веб-сайт) — Infobox Website name = Help.com url = http://www.help.com/ type = Social Community Help registration = Необязательно (необходимо зарегистрироваться, чтобы общаться в чате сайта) owner = CBS Интерактивный автор = Джефф Минард Юсеф Ураби [Cite web title = About |…… Wikipedia

  • получить — [получить] (прошедшее время получено [gat]; причастие прошедшего времени получено [gatn]) глагол *** ▸ 1 получить / получить ▸ 2 стать / начать быть ▸ 3 сделать что-то / сделать что-то ▸ 4 перейти к / от ▸ 5 прогресс в деятельности ▸ 6 приспособить / поставить что-то на место ▸ 7 понять…… Использование слов и фраз в современном английском

  • Help Yourself — Studioalbum von Julian Lennon Veröffentlichung 1991 Лейблы Atlantic Records Vi… Deutsch Wikipedia

  • .

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *