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

如何修复PowerShell哈希字面量不允许空键错误并从CSV读取用户ID

错误原因

你触发报错的核心问题是误用了ForEach-Object的-Property参数,且在写哈希表时使用了$userId作为键(带$符号的变量作为哈希表键时如果变量为空就会触发空键报错),同时你也没有正确把CSV里的所有ID收集为数组传入接口。

修复后的完整代码

$Global:userPath = "C:\AuditLogSearch\Reference\User.csv"
function Log-Search {
    # 直接读取CSV提取所有Id列生成数组,和你硬编码的数组结构完全一致
    $userId = @(Import-Csv $userPath).Id
    # 若$sessionID是全局定义的,此处可改为$Global:sessionID避免作用域问题
    Search-UnifiedAuditLog -SessionId $sessionID -SessionCommand ReturnLargeSet -UserIds $userId
}

补充说明

  • 如果你的CSV文件存在空行或者Id列为空的记录,可以加过滤逻辑避免传空值:
    $userId = @(Import-Csv $userPath | Where-Object {$_.Id -notmatch '^\s*$'}).Id
    
  • 如果你需要保留循环逻辑做额外处理,正确的ForEach-Object写法如下:
    $userId = Import-Csv $userPath | ForEach-Object {
        $_.Id
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:24:01