远程桌面服务器连接用户数统计及按执行时间命名导出CSV需求
远程桌面连接用户统计脚本改造
以下是满足需求的PowerShell脚本改造版本:
# 确保日志目录存在,不存在则自动创建 if (-not (Test-Path C:\ConnectedUsersLog)) { New-Item -ItemType Directory -Path C:\ConnectedUsersLog | Out-Null } # 获取当前远程桌面连接用户总数 $connectedUserCount = (Get-QUser).Count # 生成带执行时间的文件名(格式:年月日_时分秒) $executionTime = Get-Date -Format "yyyyMMdd_HHmmss" $outputPath = "C:\ConnectedUsersLog\ConnectedUsers_$executionTime.csv" # 将统计结果包装为对象并导出到CSV [PSCustomObject]@{ 统计时间 = Get-Date -Format "yyyy-MM-dd HH:mm:ss" 在线用户总数 = $connectedUserCount } | Export-Csv -Path $outputPath -NoTypeInformation -Encoding UTF8
关键改造点说明:
- 用
(Get-QUser).Count直接提取连接用户总数,替代原脚本导出全量用户详情的逻辑 - 生成包含时间戳的文件名,避免覆盖历史统计文件,时间格式采用无特殊字符的
yyyyMMdd_HHmmss,确保文件路径合法 - 将统计结果封装为自定义对象导出,CSV会自动生成表头(
统计时间、在线用户总数),便于后续计算每日平均用户数 - 新增目录检查逻辑,避免因目标目录不存在导致脚本执行失败
- 指定
-Encoding UTF8确保CSV文件在不同工具中打开时无乱码问题
内容的提问来源于stack exchange,提问作者sanjacob
相关产品推荐
相关产品推荐

