You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Get-Mailbox结果正确导入PowerShell DataTable?

问题解决:将Get-Mailbox数据导入DataTable

你代码的核心问题是:创建了DataRow对象后,没有将其添加到DataTable的行集合中,所以最终$v_Rooms是空表。

只需在ForEach-Object循环里添加一行$v_Rooms.Rows.Add($row),就能把创建好的行存入DataTable。

修正后的完整代码:

Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline -UserPrincipalName blabla@blabla.com
#Define data table and columns
$v_Rooms = New-Object System.Data.Datatable 'VehicleDataTable'
$newcol = New-Object system.Data.DataColumn VehicleName,([string]); $v_Rooms.Columns.Add($newcol)
$newcol = New-Object system.Data.DataColumn VehicleType,([string]); $v_Rooms.Columns.Add($newcol)
$newcol = New-Object system.Data.DataColumn VehicleLocation,([string]); $v_Rooms.Columns.Add($newcol)


#Add data
$mailboxes = Get-Mailbox -ResultSize unlimited -Filter "(RecipientTypeDetails -eq 'RoomMailbox') -and (CustomAttribute1 -eq 'Vehicle')" | select name,customattribute2, Office
$mailboxes | ForEach-Object {
    $row = $v_Rooms.NewRow()
    $row.VehicleName= ($_.Name)
    $row.VehicleType= ($_.CustomAttribute2)
    $row.VehicleLocation= ($_.Office)
    # 新增:将创建好的行添加到DataTable
    $v_Rooms.Rows.Add($row)
}
$v_Rooms

补充说明:NewRow()方法只是生成一个与DataTable结构匹配的空行对象,必须通过Rows.Add()将其加入到表的行集合中,数据才会被持久化到DataTable里。

内容的提问来源于stack exchange,提问作者sibeyzoran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 20:57:21