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

PowerShell导出CSV时如何新增并绑定非活跃用户(Inactive Users)列

解决方案

你可以在try块中给Active列赋值、Inactive列留空,catch块中给Inactive列赋值、Active列留空,同时将每次生成的对象追加到$Output数组中即可,修正后的代码如下:

# 初始化存储结果的空数组
$Output = @()
foreach($sca in $scaColl)
{
    if($sca.Email -ne "")
    { 
        # 初始化每行的两个字段默认值为空
        $rowProperties = @{
            Active = ""
            Inactive = ""
        }
        try{
            $ActiveUser = Get-AzureADUser -ObjectId $sca.Email | Select-Object -Property DisplayName
            $rowProperties.Active = $ActiveUser.DisplayName
        }
        catch
        {
            write-host "Error: User Not Found $($sca.Email)" -foregroundcolor Red
            $rowProperties.Inactive = $sca.Email
        }
        # 将当前行对象追加到结果数组
        $Output += New-Object -TypeName PSObject -Property $rowProperties | Select-Object Active,Inactive
     }
}
$Output | Export-Csv -Path D:\CSV\myVar.csv -NoTypeInformation -Encoding UTF8

修改说明

  • 新增空的$Output数组存储所有导出行数据,避免导出时为空
  • 每行对象统一包含Active、Inactive两个字段,符合导出CSV的列要求
  • try块查询到有效用户时,给Active字段赋值,Inactive字段保留空值
  • catch块触发用户不存在逻辑时,给Inactive字段赋值为对应用户邮箱,Active字段保留空值
  • 导出CSV新增-Encoding UTF8参数避免中文乱码(如果不需要可以删除)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:24:08