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

PowerShell获取Qlik会话列表后循环向UserID批量发送邮件的实现方法

实现方案

你现有的脚本已经将所有会话对应的用户信息存储在了$sessions数组中,直接遍历该数组即可逐个获取用户ID实现批量发邮件。建议先对用户ID做去重处理,避免同一用户存在多个活跃会话时重复收到邮件。

以下是修改后的完整脚本示例,你可以根据自己实际的SMTP配置、邮箱后缀规则、邮件内容调整对应参数:

Connect-Qlik|Out-Null 
[System.Collections.ArrayList]$sessions = @()

foreach ($vp in Get-QlikVirtualProxy) { 
    foreach ($session in Get-QlikSession -virtualProxyPrefix $vp.prefix) { 

        $s = [PSCustomObject]@{
            Index              = "[$($sessions.Count+1)]" 
            UserId             = $session.UserId
            VirtualProxy       = $vp.description        
            SessionId          = $session.SessionId
            VirtualProxyPrefix = $vp.prefix
        }

        $sessions.Add($s)|Out-Null
    }
}

# 输出原有的会话表格
$sessions | Format-Table 

##### 以下为新增的批量发邮件逻辑 #####
# 1. 对用户ID去重,避免重复发邮件
$uniqueUserIds = $sessions.UserId | Select-Object -Unique

# 2. 配置发邮件通用参数(替换为你实际的配置)
$smtpServer = "你的SMTP服务器地址" # 例如 smtp.xxx.com
$smtpPort = 25 # 常用端口25、587、465,根据你的SMTP配置调整
$sender = "发件人邮箱地址" # 例如 admin@xxx.com
$mailSubject = "Qlik会话通知"
$mailBody = "您好,检测到您当前存在活跃的Qlik会话,请知悉。"
# 如果你的SMTP需要认证,取消注释下面两行填写认证信息
# $smtpPwd = ConvertTo-SecureString "你的发件人邮箱密码/授权码" -AsPlainText -Force
# $smtpCredential = New-Object System.Management.Automation.PSCredential($sender, $smtpPwd)

# 3. 遍历所有唯一用户ID发邮件
foreach ($userId in $uniqueUserIds) {
    # 拼接用户完整邮箱,根据你司邮箱规则调整,比如UserID是名字.姓的前缀,就加@xxx.com后缀
    $receiver = "$userId@你司的邮箱后缀" # 例如 Mike.Milbur@xxx.com
    # 发送邮件
    Send-MailMessage -From $sender -To $receiver -Subject $mailSubject -Body $mailBody -SmtpServer $smtpServer -Port $smtpPort
    # 如果需要SMTP认证,上面的命令加上 -Credential $smtpCredential 参数,需要SSL的话再加 -UseSsl 参数
}

注意事项

  • 如果你已经有自己封装好的发邮件方法,直接替换上面Send-MailMessage的部分即可,只需要保留遍历$uniqueUserIds的逻辑
  • 如果你拿到的UserId本身就是完整的邮箱地址,不需要额外拼接后缀,直接把$receiver赋值为$userId即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:18:02