Работа со службами и процессами
PowerShell, конечно же, умеет управлять службами и процессами в Windows, для этого существуют такие командлеты как:
- Get-Process – выводит информацию о запущенных процессах на компьютере;
- Start-Process – запускает один или несколько процессов на компьютере;
- Stop-Process — останавливает один или несколько запущенных процессов;
- Get-Service – выводит информацию о службах;
- Restart-Service – перезапускает службу;
- Start-Service – запускает службу;
- Stop-Service — останавливает службу;
- Suspend-Service – приостанавливает работу службы;
- Set-Service – с помощью данного командлета можно изменить свойства службы, например, описание, отображаемое имя и режим запуска. Также его можно использовать для запуска, остановки или приостановки службы.
Identify Column Names
Headings to be used from Get-member functions are:Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id SI ProcessName
Data to populate the tables arrives in the following form:Handles AliasProperty Handles = HandlecountName AliasProperty Name = ProcessNameNPM AliasProperty NPM = NonpagedSystemMemorySize64PM AliasProperty PM = PagedMemorySize64SI AliasProperty SI = SessionIdVM AliasProperty VM = VirtualMemorySize64WS AliasProperty WS = WorkingSet64Id Property int Id {get;}CPU ScriptProperty System.Object CPU {get=$this.TotalProcessorTime.TotalSeconds;}
Running get-help get-process -full returns information about Get-Process.
This shows what the values are for column headings. SessionID does not appear in the help file. ( there is a lot more information then what I’ve displayed)
Now that I’ve shown where the fields are for the headers that will be used for reporting lets build the Report-Header object.
Create an object to hold header values
Срезы
Программа Microsoft Excel позволяет прикрепить к таблицам интерактивные элементы для сортировки и фильтрации – срезы. После выхода версии 2013-о года появилась возможность подключать срезы к обычным таблицам, а не только к сводным отчетам. Разберемся, как создать и настроить эти опции.
Создание срезов
- Кликаем по одной из ячеек таблицы – на панели инструментов появится вкладка «Конструктор», которую нужно открыть.
- На вкладке следует найти кнопку «Вставить срез» — кликаем по ней и переходим к новому открывшемуся окну.
22
- Отмечаем галочками все поля, которые следует добавить в срез, и кликаем по кнопке «ОК».
23
Срезы выглядят, как диалоговые окна со списками кнопок. Названия пунктов зависят от того, какие элементы таблицы были выбраны при создании среза. Чтобы отфильтровать данные, нужно кликнуть по кнопке в одном из списков. Фильтрация по нескольким диапазонам данных возможна, если нажать кнопки в нескольких срезах.
Форматирование срезов
Редактирование внешнего вида срезов и их взаимодействия с другими элементами возможно с помощью специальных инструментов. Попробуем изменить цветовую схему.
- Открываем вкладку «Параметры» и находим раздел «Стили срезов». В нем находятся темы для срезов разных цветов. Выбираем любую из них – цвет не повлияет на эффективность работы элемента. Сразу после клика по стилю срез приобретет указанные цвета.
24
- Также возможно изменить положение срезов на экране. Воспользуемся кнопками «Переместить вперед» и «Переместить назад» в разделе «Упорядочить». Необходимо выбрать один из срезов и нажать кнопку на панели инструментов. Теперь при перемещении по экрану срез будет оказываться поверх всех срезов или попадет под них.
- Удаление срезов – несложная операция. Выберите лишнее окно и нажмите клавишу «Delete» на клавиатуре. Срез исчезнет с экрана и перестанет влиять на фильтрацию данных в таблице.
Using PowerShell to Get (and Set) Excel Cell Values
You now know how to read an entire worksheet with PowerShell and Excel but what if you only need a single cell value? You technically could use Import-Excel and filter out the value you need with Where-Object but that wouldn’t be too efficient.
Instead, using the Open-ExcelPackage cmdlet, you can “convert” an Excel workbook into a PowerShell object which can then be read and manipulated. To find a cell value, first, open up the Excel workbook to bring it into memory.
Next, pick the worksheet inside of the workbook.
Once you have the worksheet assigned to a variable, you can now drill down to individual rows, columns, and cells. Perhaps you need to find all cell values in the A1 row. You simply need to reference the Cells property providing an index of A1 as shown below.
Once in memory, it’s important to release the Excel package using the Close-ExcelPackage cmdlet.
Как получить данные из Active Directory и сохранить их в книге Excel?
Для получения информации об атрибутах пользователя в AD мы будем использовать командлет Get-ADUser из модуля AD PowerShell.
В результате в Excel файле для каждого пользователя были добавлены столбцы с информацией из AD.
На сайте есть статья, в которой показывается как получить данные из AD из vba макроса Excel. На мой взгляд метод с обращением к AD из Excel намного проще и гибче.
Рассмотрим еще один пример построения отчета с помощью PowerShell и Excel. Допустим, вам нужно построить Excel отчет о состоянии службы Print Spooler на всех серверах домена.
Для получения списка серверов в AD используется командлет Get-ADComputer, а для удаленной проверки статуса службы на серверах командлет WinRM Invoke-Command.
Область применения возможностей доступа из PowerShell в Excel очень широка. Начиная от простого построения отчетов, например, из Active Directory, и заканчивая возможностью создания PowerShell скриптов для актуализации данных в AD из Excel.
Например, вы можете поручить сотруднику отдела кадров вести реестр пользователей в Excel. Затем с помощью PowerShell скрипта через Set-ADUser сотрудник может автоматически обновлять данные пользователей в AD (достаточно делегировать пользователю права на изменение этих атрибутов пользователей AD и показать как запускать PS скрипт). Таким образом можно вести актуальную адресную книгу с актуальными номерами телефонами и должностями.
Converts objects into a series of comma-separated value (CSV) strings and saves the strings to a file.
Другие командлеты Windows PowerShell
Также хотелось бы выделить следующие командлеты Windows PowerShell, которые наверняка Вам понадобятся и будут полезны.
- Get-ExecutionPolicy – с помощью данного командлета можно узнать действующую политику выполнения Windows PowerShell для текущего сеанса;
- Set-ExecutionPolicy – командлет изменяет политику выполнения Windows PowerShell;
- Write-Host – выводит информацию на экран (пишет текст);
- Read-Host – считывает строку ввода из консоли;
- Write-Warning – выводит предупреждающее сообщение;
- Write-Error – командлет объявляет ошибку и выводит ее в поток ошибок;
- Get-Date – возвращает текущую дату и время;
- Set-Date – командлет изменяет системную дату и время на компьютере.
Возможно вам будет интересно:
Вариант третий
Шаг 1
Добавим модели Person к самой себе и геттер для нового атрибута ParentName:
/* Связь */ public function getParent() { return $this->hasOne(self::classname(), )-> from(self::tableName() . ' AS parent'); } /* Геттер для полного имени */ public function getFullName() { return $this->first_name . ' ' . $this->last_name; } /* Геттер для имени родителя */ public function getParentName() { return $this->parent->fullName; } /* Название атрибута для вывода на экран */ public function attributeLabels() { return [ /* Другие названия атрибутов */ 'parentName' => 'Parent Name', 'fullName' => 'Full Name', ]; }
Шаг 2
Добавим атрибут parentName в класс PersonSearch и настроим правила:
/* Вычисляемое поле */
public $parentName;
/* Настройка правил */
public function rules() {
return [
/* Другие правила */
, ‘safe’]
];
}
/**
* Настройка сортировки по полю parentName
*/
public function search($params) {
$query = Person::find();
$dataProvider = new ActiveDataProvider();
/**
* Настройка параметров сортировки
* Важно: должна быть выполнена раньше $this->load($params)
*/
$dataProvider->setSort(,
‘desc’ => ,
‘label’ => ‘Parent Name’,
‘default’ => SORT_ASC
],
‘fullName’ => ,
‘desc’ => ,
‘label’ => ‘Full Name’,
‘default’ => SORT_ASC
],
‘country_id’
]
]);
if (!($this->load($params) && $this->validate())) {
/**
* Жадная загрузка данных модели Страны
* для работы сортировки.
*/
$query->joinWith();
return $dataProvider;
}
$this->addCondition($query, ‘id’);
$this->addCondition($query, ‘first_name’, true);
$this->addCondition($query, ‘last_name’, true);
$this->addCondition($query, ‘country_id’);
$this->addCondition($query, ‘parent_id’);
// Фильтр по родительской записи
$query->joinWith([‘parent’ => function ($q) {
$q->where(‘parent.first_name LIKE «%’. $this->parentName
‘%» ‘ .
‘OR parent.last_name LIKE «%’ . $this->parentName . ‘%»‘);
}]);
return $dataProvider;
}
Шаг 3
Добавим в класс PersonSearch метод addCondition:
protected function addCondition($query, $attribute, $partialMatch = false) { if (($pos = strrpos($attribute, '.')) !== false) { $modelAttribute = substr($attribute, $pos + 1); } else { $modelAttribute = $attribute; } $value = $this->$modelAttribute; if (trim($value) === '') { return; } /* * Для корректной работы фильтра со связью со * свой же моделью делаем: */ $attribute = "tbl_person.$attribute"; if ($partialMatch) { $query->andWhere(); } else { $query->andWhere(); } }
Шаг 4
Добавим столбец для отображения поля parentName в gridview:
echo GridView::widget(, 'id', 'fullName', 'parentName', , ] ]);
Готово! Мы получили дополнительный столбец для поля, ссылающегося на связанную запись в этой же таблице с возможностью с работающим фильтром и сортировкой по этому полю.
Comboboxes
Now that we have our form laid out, I’ll explain what the goal is here. We’d like to have a list of naming conventions for the username to auto-generate. The options we will have are:
- First Initial, Last Name
- Full Name
- First Name, last 4 of phone
- None
To begin working with this, we’ll need to add these options to the Combobox. If you haven’t already, convert your design to a .ps1 using Convert-Form. (Don’t forget to rename your old Form1.ps1.)
Below is all that is needed to populate the combobox. I included the combobox code for context.
# # CMconvention # $CMconvention.FormattingEnabled = $true $CMconvention.Location = New-Object System.Drawing.Point(9, 41) $CMconvention.Name = "CMconvention" $CMconvention.Size = New-Object System.Drawing.Size(183, 21) $CMconvention.TabIndex = 1 # I added this: $ConventionList = "First Initial, Last Name","Full Name","First Name, last 4 of Phone","None" $CMconvention.Items.AddRange($ConventionList) $CMconvention.SelectedItem = "None"
I set the $CMconvention.SelectedItem property to “None”. All this does is select that item when the form loads. If you don’t select anything, it will be blank on startup. If you don’t have a preference for the default item but want it to be populated, I suggest using the first index:
$CMconvention.SelectedIndex = 0
This alone is a powerful tool, since you can use any object as the source. Say if you wanted a combobox filled with all the running services, you could do something like this:
$ComboboxList = (get-service | where status -eq 'Running').name $CMcombobox.Items.AddRange($ComboboxList)
Дополнительные сведения о фильтрах и режимах фильтрации
Фильтры и режимы фильтрации обеспечивают более удобную работу с данными таблицы.
Что позволяют делать фильтры:
- показывать другим пользователям, открывающим таблицу, отфильтрованные данные;
- выполнять сортировку данных.
Что позволяют делать режимы фильтрации:
- сохранять группы фильтров;
- давать фильтрам названия;
- давать другим пользователям возможность одновременно работать с разными режимами фильтрации;
- делиться фильтрами с другими пользователями;
- копировать режимы фильтрации и создавать новые с похожими критериями;
- фильтровать и сортировать данные в таблице при отсутствии прав на редактирование (в этом случае создается временный режим фильтрации).
Работа с компьютером
Windows PowerShell позволяет выполнять административные задачи для операционной системы и компьютера в целом, например, перезапустить операционную систему или переименовать компьютер.
- Restart-Computer – командлет перезапускает операционную систему (перезагружает компьютер);
- Stop-Computer – выключает компьютер;
- Rename-Computer – переименовывает компьютер;
- Checkpoint-Computer — создает точку восстановления системы на локальном компьютере;
- Restore-Computer — запускает восстановление системы на локальном компьютере;
- Disable-ComputerRestore — отключает функцию восстановления системы на указанном диске файловой системы;
- Enable-ComputerRestore — включает функцию восстановления системы на указанном диске файловой системы;
- Remove-Computer — удаляет локальный компьютер из домена;
- Get-EventLog – выводит информацию о событиях в журнале событий, или список журналов событий на локальном или удаленном компьютере;
- Clear-EventLog — удаляет записи из указанных журналов событий.
Доступ к системному журналу
При попытке обнаружения причин сбоев мы часто обращаемся к системному журналу, в котором хранится множество полезной информации о событиях, происходивших в системе. Обычно для исследования системного журнала применяется утилита Event Viewer (eventvwr.exe). В PowerShell мы можем воспользоваться встроенными командами, например командой get-eventlog
, для быстрого исследования содержимого системного журнала (рис. 16).
Наша первая команда загружает ключевую информацию из системного журнала:
PS C:\> get-eventlog –list
Без использования опции –list
PowerShell запросит точное указание названия системного журнала. В нашем примере мы видим несколько точек входа в системном журнале: Application, Internet Explorer, System, Windows Power Shell и т.п. Наша следующая команда извлекает записи из системного журнала, которые имеют тип “Error”
:
PS C:\> $bad = get-eventlog “System” | where-object { $_.EntryType –eq “Error” }
Мы используем команду get-eventlog
, которой указываем параметр “System”
для извлечения только системных записей, — мы могли бы более четко задать это, применив параметр logName
. Содержимое переменной $bad
передается на вход команде where-object
для фильтрации только интересующих нас записей. В качестве аргументов команды where-object
мы указываем на то, что ищем только записи, у которых свойство EntryType
равно “Error”
.
Мы завершаем исследование системного журнала выводом на экран пяти последних записей об ошибках, используя для этого команду select-object
с параметром –last
:
PS C:\> $bad | select-object –last 5
Выбор количества записей на страницу
Для удобства сделаем выпадающий список с выбором количества записей на страницу. Для этого действие контроллера добавим следующий код:
if (isset($_GET)) { Yii::app()->user->setState('pageSize', (int) $_GET); unset($_GET); }
В метод модели :
public function search() { //... return new CActiveDataProvider($this, array( 'pagination' => array( 'pageSize' => Yii::app()->user->getState('pageSize', 5), ), 'criteria' => $criteria, )); }
В представлении перед виджетом CGridView:
$pageSize = Yii::app()->user->getState('pageSize', 5);
И в виджет CGridView, например, вместо заголовка колонок с кнопками добавим код выпадающего списка с выбором количества элементов на страницу:
'header' => CHtml::dropDownList( 'pageSize', $pageSize, array( 5 => 5, 10 => 10, 20 => 20, 50 => 50, 100 => 100 ), array( 'onchange' => "$.fn.yiiGridView.update('posts-grid',{ data:{pageSize: $(this).val() }})" ) ),
Не забудьте проверить совпадает ли идентификатор () виджета (строка 7) с идентификатором () в строке 10 ().
Сортировка по нескольким столбцам в Excel
Когда говорят о сортировке по нескольким столбцам, подразумевается, что для упорядочивания таблицы применяют усложненные настройки с указанием двух или более столбцов.
- Выбираем любую ячейку в таблице, которую нужно подвергнуть сортировке.
- Находим на вкладке «Данные» кнопку «Сортировка» и кликаем по ней.
- Нажимаем кнопку «Добавить уровень» в меню открывшегося окна, чтобы добавить дополнительную строку для условий.
- Нажимаем кнопку «Параметры». В появившемся окошке нужно выбрать пункт «Столбцы таблицы», потом кликаем по кнопке «ОК».
- Заполняем несколько форм для постановки условий и жмем кнопку «ОК». Столбцы таблицы построятся в указанном порядке.
GridView Layouts
Расположение элементов в GridView можно контролировать с помощью этих свойств:
- — управляет перемещением элементов слева направо (в виде ряда строк) или сверху вниз (в виде ряда столбцов). Это значение может быть либо GridView.FlowLeftToRight, либо GridView.FlowTopToBottom.
- — управляет горизонтальным направлением макета: то есть, элементы располагаются слева направо или наоборот. Это значение может быть либо Qt.LeftToRight, либо Qt.RightToLeft.
- — управляет вертикальным направлением макета: т. е. располагаются ли элементы от верхней части представления вниз к нижней части представления или наоборот. Это значение может быть либо GridView.TopToBottom, либо GridView.BottomToTop.
По умолчанию GridView работает слева направо,и элементы располагаются слева направо по горизонтали и сверху вниз по вертикали.
Эти свойства можно комбинировать для создания различных макетов, как показано в таблице ниже. Все элементы GridView в первой строке имеют значение GridView.FlowLeftToRight, но используют разные комбинации горизонтального и вертикального направлений макета (задаются и соответственно). Точно так же GridViews во второй строке ниже всех имеют значение GridView.FlowTopToBottom, но используют разные комбинации горизонтального и вертикального направлений макета для размещения своих элементов по-разному.
GridViews с потоком GridView.FlowLeftToRight | |||
---|---|---|---|
(H) Слева направо (V) Сверху вниз | (H) Справа налево (V) Сверху вниз | (H) Слева направо (V) Снизу вверх | (H) Справа налево (V) Снизу вверх |
GridViews с потоком GridView.FlowTopToBottom | |||
(H) Слева направо (V) Сверху вниз | (H) Справа налево (V) Сверху вниз | (H) Слева направо (V) Снизу вверх | (H) Справа налево (V) Снизу вверх |
См. также , ListView , PathView и Qt Quick Examples — Views .
Out-GridView cmdlet with PassThru Switch
However, the most powerful Out-Gridview feature is the –PassThru option, which provides a new level of user-friendly GUI for your PowerShell scripts.
The option is available in PowerShell 3.0 or higher, allows a user to select one or more objects in the table, and passes them using the standard pipe to the next cmdlets in your PowerShell script.
For example, the following PowerShell script displays a list of running Windows services. A user selects a service in the list and clicks OK.
The script will restart only the service selected by the user.
You can save the objects selected by the user into a variable:
Or you can save only the values of a property. To do it, add the following pipe to the previous command:
You can allow a user to select only one item or multiple items in the table using the following options:
Press and hold Ctrl to select multiple rows in the table.
Работа с компьютером
Windows PowerShell позволяет выполнять административные задачи для операционной системы и компьютера в целом, например, перезапустить операционную систему или переименовать компьютер.
- Restart-Computer – командлет перезапускает операционную систему (перезагружает компьютер
); - Stop-Computer – выключает компьютер;
- Rename-Computer – переименовывает компьютер;
- Checkpoint-Computer — создает точку восстановления системы на локальном компьютере;
- Restore-Computer — запускает восстановление системы на локальном компьютере;
- Disable-ComputerRestore — отключает функцию восстановления системы на указанном диске файловой системы;
- Enable-ComputerRestore — включает функцию восстановления системы на указанном диске файловой системы;
- Remove-Computer — удаляет локальный компьютер из домена;
- Get-EventLog – выводит информацию о событиях в журнале событий, или список журналов событий на локальном или удаленном компьютере;
- Clear-EventLog — удаляет записи из указанных журналов событий.
Отображение групп объектов в представлении списка
Можно разделить объекты, отображаемые представлением списка, на группы. это не означает, что вы определяете группу, а только это Windows PowerShell запускает новую группу всякий раз, когда изменяется значение определенного свойства или сценария. В следующем примере новая группа запускается всякий раз, когда изменяется свойство System. ServiceProcess. ServiceController. serviceType .
Следующие XML-элементы используются для определения времени запуска группы:
-
Элемент GroupBy определяет свойство или скрипт, который запускает новую группу и определяет, как будет отображаться группа.
-
Элемент PropertyName указывает свойство, которое запускает новую группу при изменении ее значения. Необходимо указать свойство или скрипт для запуска группы, но нельзя указать и то, и другое.
-
Элемент ScriptBlock указывает скрипт, который запускает новую группу при изменении ее значения. Необходимо указать скрипт или свойство для запуска группы, но нельзя указать и то, и другое.
-
Элемент Label определяет метку, которая отображается в начале каждой группы. в дополнение к тексту, указанному этим элементом, Windows PowerShell отображает значение, вызвавшее новую группу, и добавляет пустую строку до и после метки. Этот элемент является необязательным.
-
Элемент Ошибка customcontrol определяет элемент управления, используемый для вывода данных. Этот элемент является необязательным.
-
Элемент кустомконтролнаме указывает общий элемент управления или представление, которое используется для отображения данных. Этот элемент является необязательным.
Пример полного файла форматирования, определяющего группы, см. в разделе представление списка (GroupBy).
Работа с элементами
В Windows PowerShell есть командлеты, которые умеют работать с элементами, под элементами здесь можно понимать: файлы, папки, ключи реестра и так далее.
- Clear-Item — очищает содержимое элемента, но не удаляет сам элемент;
- Copy-Item – копирует элемент;
- Get-Item — получает элемент в указанном месте;
- Invoke-Item — выполняет действие по умолчанию над указанным элементом;
- Move-Item – перемещает элемент;
- New-Item – создает новый элемент;
- Remove-Item – удаляет указанные элементы;
- Rename-Item — переименовывает элемент в пространстве имен поставщика Windows PowerShell;
- Set-Item — изменяет элемент;
- Get-ChildItem — возвращает элементы и дочерние элементы в одном или нескольких определенных местах;
- Get-Location – выводит информацию о текущем местонахождении.
5 ответов
Лучший ответ
Да, то, что вы делаете, похоже, должно работать, хотя я не уверен, для чего вы используете , поскольку он не используется в приведенном выше коде. Раньше я программно заполнял , создавая объект :
Определение его столбцов:
Создание s:
Добавление в :
И, наконец, установите как , как вы:
Примечание: если столбцы не определены так же, как столбцы , тогда все будет работать неправильно.
1
Andrew
17 Июн 2016 в 19:28
Если у вас уже есть список объектов, вы можете просто установить его в качестве источника данных для GridView, не нужно преобразовывать или создавать новую таблицу данных.
ArturoAP
17 Июн 2016 в 19:28
Почему вы не можете использовать ObjectDataSource? Укажите класс и метод в свойствах ObjectDatasource, и все готово. Привяжите ObjectDatasource к представлению сетки.
Arshad Mohammad
17 Июн 2016 в 20:33
Nipoon Patel
24 Май 2018 в 16:28
Изменить: другие люди говорили, что ваши данные должны быть источником в gridview. Я считаю, что это сработает и будет намного быстрее. Мое решение будет работать для создания новых данных с итерацией (например, вы хотите, чтобы идентификатор совпадал с местом в gridview). Однако может быть удобно создать новую модель для вашего элемента списка и создать несколько геттеров ради модульное ООП.
В этом случае я бы создал новую модель для вашего элемента gridview (в данном случае выглядит как пользователи). Итак, я сделал что-то подобное в UWP, и в итоге все выглядело так:
Затем класс ButtonModel содержал параметры, относящиеся к каждой кнопке, и получатели соответствующей информации, которую я хотел отобразить на этой кнопке.
Это может быть намного чище и модульнее. Пример для представления списка, но он должен работать аналогично для представления сетки. Поскольку вы уже работаете с заполненным списком, я бы предложил использовать цикл for-in для вашей итерации вместо стандартного цикла for. Это позволит сделать так, чтобы каждый раз, когда вы добавляете элемент в список, он будет добавляться в сетку.
Надеюсь это поможет!
Josh Abrams
17 Июн 2016 в 19:24
Как создать «умную таблицу»
Подключение опций сортировки и фильтрации к таблице можно совместить с выбором цветовой темы для нее. Такие таблицы называют «умными». Выясним, как сделать «умным» обычный диапазон ячеек.
- Выделяем всю таблицу целиком с помощью курсора.
- Выбираем пункт «Форматировать как таблицу» на главной вкладке.
- На экране появится меню стилей. Нужно выбрать любой из них – выбор не повлияет на результат.
12
- Откроется окно для выбора координат. Поскольку таблица была выделена изначально, можно пропустить этот шаг и нажать кнопку «ОК».
13
- Стиль будет применен к диапазону ячеек, в шапке появятся кнопки со стрелками для настройки фильтров.
Существует еще один метод создания «умной» таблицы:
- Переходим во вкладку «Вставка» после выделения диапазона ячеек и нажимаем кнопку «Таблица».
14
- Проверяем правильность координат в появившемся окне и нажимаем «ОК».
15
- К таблице будет применен стандартный стиль, кнопки для настройки фильтрации и сортировки появятся в заголовках столбцов.
Форматирование в Windows PowerShell
В Windows PowerShell существует набор командлетов, которые предназначены для форматирования вывода результата работы командлета. Они позволяют пользователю отобразить результат в том виде, в котором ему удобно просматривать данный результат.
- Format-List – вывод результата команды в формате списка свойств, где на каждой новой строке отдельное свойство;
- Format-Table — вывод результата команды в виде таблицы;
- Format-Wide — вывод результата команды в виде широкой таблицы, в которой отображается только одно свойство каждого объекта;
- Format-Custom – в данном случае форматирование вывода происходит с использованием пользовательского представления.