Улучшаем взаимодействие с кавычками и скобками при помощи PSReadline

В этой статье мы продолжим исследование содержимого файла SamplePSReadLineProfile.ps1 из модуля PSReadline.

Во многих редакторах кода взаимодействие со скобками — () {} [] — и кавычками — "" '' — построено следующим образом — вы вводите первую из них, и вторая добавляется автоматически, если тут же при помощи клавиши Backspace вы стираете первую, то вторая также удаляется. Закончив ввод содержимого, вы вводите правую скобку или кавычку, и редактор кода не добавляет еще одну, а перешагивает через существующую.

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

Читать далее

Добавляем пользовательские типы данных к объектам PowerShell

Каждый объект PowerShell принадлежит к какому-либо типу данных. Например, объект процесса — это экземпляр типа System.Diagnostics.Process.

Get-Process | Get-Member
   TypeName: System.Diagnostics.Process
...

Объекты, являющиеся результатом выполнения команд PowerShell, уже принадлежат к определенному типу данных, однако это не мешает нам добавить к ним нужный нам собственный тип.

Еще более полезной эта возможность становится при работе с пользовательскими объектами — System.Management.Automation.PSCustomObject.

[PSCustomObject]@{
    Name = 'Object'
    Description = 'Object Description'
}

Читать далее

Сохранение введенной команды PowerShell для последующего использования

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

Знакомо?

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

Читать далее

История команд в PowerShell

PowerShell сохраняет историю выполненных команд.

Сам по себе PowerShell сохраняет введенные команды в оперативной памяти. Модуль PSReadline дополнительно сохраняет их в файле на жестком диске, что позволяет нам возвращаться к командам, введенным не только в текущей сессии, но и к тем, что были выполнены некоторое время назад и, возможно, в иной версии PowerShell.

Читать далее

ForEach-Object и его скриптблоки

Командлет ForEach-Object предназначен для выполнения указанных нами действий с каждым из элементов массива.

Этот массив может быть указан в качестве значения параметра -InputObject, однако в подавляющем большинстве случаев элементы передаются командлету ему по конвейеру.

Читать далее

Тип PSPropertyExpression

Тип Microsoft.PowerShell.Commands.PSPropertyExpression (его акселератор — [pspropertyexpression]) присутствует в PowerShell с самого начала, но в версии 6.1 он стал публичным (public), что делает его доступным и для нас, как авторов скриптов и модулей.

Читать далее

Использование делегатов в PowerShell

Что такое делегат (delegate)? Это тип объекта, который при инициализации ассоциируется с неким методом и позволяет нам, обращаясь к делегату, вызывать этот самый метод.

Для чего это нужно? Один из вариантов использования делегатов — это возможность передачи ассоциированного с делегатом метода в качестве параметра другому методу.

PowerShell это поддерживает? Начиная с версии 6.1 — да.

Читать далее

Получение и изменение списка администраторов сайта SharePoint Server при помощи PowerShell

В предыдущем посте мы рассматривали облачный сервис SharePoint Online. Теперь давайте поговорим о ферме SharePoint, развернутой локально.

Мы можем указать первичного (Primary) и вторичного (Secondary) администраторов коллекции сайтов SharePoint в портале SharePoint Central Administration, выбрав в меню пункт Application Management и перейдя по ссылке Change site collection administrators, расположенной в разделе Site Collections.

Первичный и вторичный администраторы — это те, кто, кроме всего прочего, получает уведомления по электронной почте о различных событиях, происходящих в SharePoint, например, о достижении коллекцией сайтов лимита объема хранения.

Список остальных администраторов коллекции сайтов вы можете указать в свойствах сайта (Site Settings). Для этого, находясь на нужном вам сайте, в правой верхней части страницы нажмите на значок шестеренки и выберите Site Settings. Если Site Settings в меню отсутствует, выберите Site information и в открывшемся окне нажмите на View all site settings. Затем в разделе Users and Permissions выберите Site collection administrators.

Теперь давайте сделаем то же самое при помощи PowerShell.

Читать далее