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

在AWS Windows EC2实例上用PowerShell获取IMDSv2元数据的等效命令

Windows EC2实例获取IMDSv2元数据的PowerShell等效命令

你已拥有Linux服务器上通过Bash获取IMDSv2实例元数据的代码:

TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>&1 null)

instance_id=$(curl -H "X-aws-ec2-metadata-token: $TOKEN" -s http://169.254.169.254/latest/meta-data/instance-id)

该代码参考自AWS官方文档,但文档未提及Windows EC2实例使用PowerShell获取IMDSv2元数据的方法,对应的等效PowerShell命令是什么?


等效PowerShell命令

以下是对应获取IMDSv2令牌及实例ID的PowerShell命令:

1. 获取IMDSv2令牌

$token = Invoke-RestMethod -Method Put -Uri "http://169.254.169.254/latest/api/token" -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"}

2. 使用令牌获取实例ID

$instanceId = Invoke-RestMethod -Uri "http://169.254.169.254/latest/meta-data/instance-id" -Headers @{"X-aws-ec2-metadata-token" = $token}

补充说明

  • Invoke-RestMethod是PowerShell中处理REST请求的标准工具,对应Bash里的curl
  • 令牌有效期设置为21600秒(6小时),和原Bash代码保持一致
  • 若需要静默执行(类似curl -s的效果),可添加-ErrorAction SilentlyContinue参数,例如:
$token = Invoke-RestMethod -Method Put -Uri "http://169.254.169.254/latest/api/token" -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -ErrorAction SilentlyContinue

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 06:16:02