Есть ли способ использовать больше элементов, чем отображать в массиве Out-GridView - PullRequest
1 голос
/ 27 марта 2019

Я пытаюсь разрешить пользователю многократный выбор из списка результатов, возвращаемых командой, используя Out-GridView.

Однако, мне кажется, мне нужно позже запросить элементы, которые мне нужны, и отобразитьих в Out-GridView.Но там становится хаотично!

Могу ли я показать меньше из них в Out-GridView?

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

Например:

$Global:delboxes = Get-Mailbox -SoftDeletedMailbox | Select-Object Name,Alias,PrimarySmtpAddress,WhenSoftDeleted,ArchiveName,guid,Emailaddresses | Sort-Object -property Name | Out-GridView -Title "Please select mailbox(es)" -PassThru

Возвращает:

PS> $delboxes | ft
Name            Alias           PrimarySmtpAddress                  WhenSoftDeleted     ArchiveName Guid                                 EmailAddresses
----            -----           ------------------                  ---------------     ----------- ----                                 -------------- 
person1         person.one      person.one@mycompany.com            25/09/2016 20:53:56 {archive}   d25cb74b-46cf-4582-9c32-6c146f59f013 {X500:/o=mycompany/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/...
person2         person.two      person.two@mycompany.com            25/09/2016 20:53:56 {}          1670a21e-a00b-461e-ae84-2ff646e2a434 {SMTP:person.two@mycompany.com, smtp:person.2@mycompany, X500:/o=mycompany/ou=Exchan...

Хотя$ delboxes вернет все, что я просил в Get-Mailbox |Часть Select-Object, слишком много, чтобы отобразить на экране, когда есть много адресов электронной почты.Таким образом, Имя и Псевдоним сокращаются до нескольких символов

Поэтому я хочу, чтобы только некоторые элементы отображались в Out-GridView, но позже я смог использовать их все в моем сценарии.

Если я только добавлю это в скрипт

$Global:delboxes = Get-Mailbox -SoftDeletedMailbox | Select-Object Name,Alias | Sort-Object -property Name | Out-GridView -Title "Please select mailbox(es)" -PassThru

Я не могу использовать элемент ArchiveName без запроса команды Get-Mailbox

PS> $delboxes | ft
Name            Alias
----            -----
person1         person.one
person2         person.two

PS> $delboxes.ArchiveName | ft

Ничего нет: -(

И использование набора отображения по умолчанию дает мне непригодный Out-GridView, а не элементы, которые мне требуются

$Global:delboxes = Get-Mailbox -SoftDeletedMailbox | Sort-Object -property WhenSoftDeleted | Out-GridView -Title "Please select mailbox(es)" -PassThru

PS> $delboxes | ft
RunspaceId                           Database           MailboxProvisioningConstraint IsMonitoringMailbox MailboxRegion MailboxRegionLastUpdateTime MessageRecallProcessingEnabled MessageCopyForSentAsEnabled MessageCopyForSendOnBehalfEnabled
----------                           --------           ----------------------------- ------------------- ------------- --------------------------- ------------------------------ --------------------------- ------
20edeed1-036f-4832-8463-486827c61405 EURP195DG024-db030                                             False                                                                     True                       False  False
20edeed1-036f-4832-8463-486827c61405 EURP195DG013-db099                                             False                                                                     True                       False  False
20edeed1-036f-4832-8463-486827c61405 EURP195DG007-db072                                             False                                                                     True                       False  False

1 Ответ

0 голосов
/ 27 марта 2019

Чтобы иметь Out-Gridview только с уменьшенными свойствами и, тем не менее, впоследствии иметь доступ ко всем свойствам,
вы можете сохранить выделение и использовать Compare-Object с -IncludeEqual -ExcludeDifferent

## Q:\Test\2019\03\27\SO_55377562.ps1
$Global:delboxes = Get-Mailbox -SoftDeletedMailbox | 
    Select-Object Name,Alias,PrimarySmtpAddress,WhenSoftDeleted,ArchiveName,guid,Emailaddresses | 
    Sort-Object -Property Name 

$Selection = $delboxes | Select-Object Name,Alias | 
    Out-GridView -Title "Please select mailbox(es)" -PassThru

$SelectedDelboxes = Compare-Object -Ref $delboxes -Diff $Selection -Property Name,Alias `
               -IncludeEqual -ExcludeDifferent -PassThru |
    Select-Object * -Exclude SideIndicator
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...