【发布时间】:2021-12-17 00:51:48
【问题描述】:
首先抱歉,如果我的英语不是最好的。但我会尽可能详细地解释我的问题
我遇到了一个问题,我无法让Format-Table 影响我给它的输出。
下面是我遇到 atm 问题的部分。
cls
$TotalSize = $($mailboxes. @{name = ”TotalItemSize (GB)”; expression = { [math]::Round((($_.TotalItemSize.Value.ToString()).Split(“(“)[1].Split(” “)[0].Replace(“,”, ””) / 1GB), 2) } });
$UserN = $($mailboxes.DisplayName)
$itemCount = $($mailboxes.ItemCount)
$LastLogonTime = $($mailboxes.ItemCount)
$allMailboxinfo = @(
#lager dataen som skal inn i et objekt
@{Username= $UserN; ItemCount = $itemCount; LastLogonTime = $($mailboxes.ItemCount); Size = $TotalSize}) | % { New-Object object | Add-Member -NotePropertyMembers $_ -PassThru }
$Table = $allMailboxinfo | Format-Table | Out-String
$Table
这个输出在表格的每个标题下方给了我几乎看起来像 json 语法的内容。
Username LastLogonTime ItemCount Size
-------- ------------- --------- ----
{username1, username2,username3,userna...} {$null, $null, $null, $null...} {$null, $null, $null, $null...} {$null, $null, $null, $null...}
自己运行命令似乎可以工作。像$mailboxes.DisplayName 给出了我想要的显示名称的确切数据。即使是表格格式。
我以这种方式制作表格而不是仅使用select-object 的原因是因为我稍后将合并几个表格。使用下面脚本中的逻辑。
cls
$someData = @(
@{Name = "Bill"; email = "email@domain.com"; phone = "12345678"; id = "043546" }) | % { New-Object object | Add-Member -NotePropertyMembers $_ -PassThru }
$moreData = @(
@{Name = "Bill"; company = "company 04"}) | % { New-Object object | Add-Member -NotePropertyMembers $_ -PassThru }
$Merge = @(
#plots the data into a new table
@{Name = $($someData.Name); e_mail = $($someData.email); phone = $($someData.phone); id = $($someData.id); merged = $($moreData.company) }) | % { New-Object object | Add-Member -NotePropertyMembers $_ -PassThru }
#formatting table
$Table = $Merge | Format-Table | Out-String
#print table
$Table
如果你想知道我在做什么。 我的目标,总而言之。是一张使用 Exchange 信息的表格;
DisplayName、TotalItemSize(GB)、ItemCount、LastLogonTime、E-mail 地址、归档 + Maxquoata、邮箱配额。
【问题讨论】:
标签: powershell exchange-server