Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 是否有一种方法可以使用比Out GridView数组中显示的元素更多的元素_Powershell - Fatal编程技术网

Powershell 是否有一种方法可以使用比Out GridView数组中显示的元素更多的元素

Powershell 是否有一种方法可以使用比Out GridView数组中显示的元素更多的元素,powershell,Powershell,我试图允许用户使用Out GridView从命令返回的结果列表中进行多重选择 但是,我似乎必须在以后请求所需的元素,并将它们显示在Out GridView中。但是那里变得很混乱 我可以在Out GridView中显示较少的内容吗 我尝试将命令拉入另一个变量,然后选择要在网格视图中显示的元素,但结果相同,或者我做得不对 例如: $Global:delboxes = Get-Mailbox -SoftDeletedMailbox | Select-Object Name,Alias,PrimaryS

我试图允许用户使用
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部分中要求的所有内容,但当有许多电子邮件地址时,屏幕上显示的内容太多了。因此,名称和别名将缩减为几个字符

所以我只想在OutGridView中显示一些元素,但以后在脚本中可以使用它们

如果我把这个写进剧本里

$Global:delboxes = Get-Mailbox -SoftDeletedMailbox | Select-Object Name,Alias | Sort-Object -property Name | Out-GridView -Title "Please select mailbox(es)" -PassThru
如果不重新查询
Get Mailbox
命令,我无法使用元素ArchiveName

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

PS> $delboxes.ArchiveName | ft
没有什么:-(

使用默认显示集可以提供一个无法使用的OutGridView,而不是我需要的元素

$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

要使Out Gridview仅具有减少的属性,并且之后可以访问所有属性,
您可以保存所选内容,并使用-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

要使Out Gridview仅具有减少的属性,并且之后可以访问所有属性,
您可以保存所选内容,并使用-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

ft
Format Table
)还有一个
-Property
参数-如果您只想查看这些属性的表,可以执行
$delboxes | ft Name,Alias
操作:)管道的
选择对象名称,Alias
部分正在创建仅包含名称和别名属性的对象副本,放弃其余部分,因此ArchiveName属性稍后不可用。如果只将
get Mailbox-SoftDeletedMailbox
的输出发送到GridView(没有任何
Select Object
),您会得到什么?它应该尊重默认属性集。谢谢Mathias,但问题恰恰相反。正是在
Out GridView
中,我想减少显示的元素,但是以后能够看到/使用它们,
$delboxes | ft
只是为了显示在
-passthru
之后变量中可用的内容。谢谢boxdog,我也尝试了这个方法。默认属性集造成了巨大的混乱,并且也没有包括我以后需要的所有元素。(例如,请参见相关更新)
ft
Format Table
)还有一个
-Property
参数-如果您只想查看包含这些属性的表,可以执行
$delboxes | ft Name,Alias
选择对象名称,管道的Alias
部分正在创建仅包含Name和Alias属性的对象副本,放弃其余属性,因此ArchiveName属性稍后不可用。如果只将
get Mailbox-SoftDeletedMailbox
的输出发送到GridView(没有任何
Select Object
),您会得到什么?它应该尊重默认属性集。谢谢Mathias,但问题恰恰相反。正是在
Out GridView
中,我想减少显示的元素,但是以后能够看到/使用它们,
$delboxes | ft
只是为了显示在
-passthru
之后变量中可用的内容。谢谢boxdog,我也尝试了这个方法。默认属性集造成了巨大的混乱,并且也没有包括我以后需要的所有元素。(参见相关更新示例)现场-就是这样非常好用,非常感谢您的LotPings感谢您的反馈,
$SelectedDelboxes
现在包括
比较对象中的属性
侧指示器
,您可以使用
选择对象-属性*-排除属性侧指示器
Hi LotPings删除该属性,我将把这个
-ExcludeProperty SideIndicator
部分放在哪里?它不喜欢将其作为
比较对象的一部分,并且在此之前,侧指示器不在其中。请参见更改的答案。现场-就是这样!:-)非常好用,非常感谢您的LotPings感谢您的反馈,
$SelectedDelboxes
现在包括
比较对象中的属性
侧指示器
,您可以使用
选择对象-属性*-排除属性侧指示器
Hi LotPings删除该属性,我将把这个
-ExcludeProperty SideIndicator
部分放在哪里?它不喜欢将其作为
比较对象的一部分,并且在此之前,侧指示器不在此处。请参见更改的答案。