【问题标题】:How to get user count on a EC2 Windows Instance AWS如何获取 EC2 Windows 实例 AWS 上的用户数
【发布时间】:2020-02-24 19:36:00
【问题描述】:

我正在尝试将一些 AWS 功能整合到我的 JSF 应用程序中。我有多个运行 windows 服务器的 EC2 实例,我想知道每个实例连接了多少 windows 用户,以及他们是否正在积极使用系统。

该信息将进一步用于动态创建和终止实例。我尝试过使用 ELB,但没有衡量连接的用户数量以及他们是否处于活动状态的指标。

由于某些应用程序限制,目前我正在使用 Java AWS SDK 1.11.657。鉴于我有一个实例列表以及创建和终止它们的能力,我将如何查找连接到每个实例的用户数量?没有使用 Java SDK 在线找到任何东西。谢谢。

【问题讨论】:

  • 连接到Windows实例是什么意思?您是在谈论活动 RDP 会话的计数吗?为此,您可以使用远程桌面服务 API/SDK 或 PowerShell cmdlet。
  • 是的,我说的是活动 RDP 会话。但是,只有手头的 EC2 实例,没有通过 RDP 实际连接到每个实例,我能够执行 cmdlet 吗?谢谢。
  • 您应该能够使用 SSM 运行命令针对由实例 ID 或标签标识的 EC2 实例集合运行给定的 PS1 脚本。
  • 太棒了,我不知道。如果您可以将其发布为答案,我将很乐意接受。谢谢。

标签: java amazon-web-services amazon-ec2 aws-sdk


【解决方案1】:

您可以使用远程桌面服务 API/SDK 或 PowerShell cmdlet (Get-RDUserSession) 来确定活动 RDP 会话的计数。据称,还有一个更复杂的cross-server PowerShell script

要在 Windows 实例上远程调用 PowerShell 脚本,您可以使用 SSM 运行命令。这是使用awscli 执行此操作的示例:

aws ssm send-command \
    --document-name "AWS-RunShellScript" \
    --comment "List Windows services" \
    --instance-ids "i-1234567890,i-0987654321" \
    --parameters commands="service --status-all" \
    --output text

请注意,您的 Windows 实例需要提前设置以支持此功能,请参阅tutorial。它可能是面向 Linux 的,但希望这能让您朝着正确的方向开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-09
    • 2018-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    相关资源
    最近更新 更多