我在寻找一个非常基本的脚本来算使用PowerShell在AWS上运行的EC2实例的数量。 我已经找到了几种方法,但由于某种原因,当我尝试一下,我没有得到我期望的结果。
我最接近的是这样的:
$instancestate = (get-ec2instance).instances.state.name
$instancestate
返回:
stopped
running
stopped
stopped
running
(这样的例子不胜枚举约80实例)
我希望有一个统计那些正在运行的响应。
我不知道别人,但我更喜欢明确分配我的EC2过滤器变量,然后调用类似,当列出他们Get-EC2Instance
。 这使得它更容易与滤波器如果您需要在多条件筛选工作。
下面是你以后,我在那里有6个正在运行的实例的工作示例:
# Create the filter
PS C:\> $filterRunning = New-Object Amazon.EC2.Model.Filter -Property @{Name = "instance-state-name"; Value = "running"}
# Force output of Get-EC2Instance into a collection.
PS C:\> $runningInstances = @(Get-EC2Instance -Filter $filterRunning)
# Count the running instances (more literally, count the collection iterates)
PS C:\> $runningInstances.Count
6
http://docs.aws.amazon.com/powershell/latest/reference/Index.html?page=Get-EC2Instance.html&tocid=Get-EC2Instance
从这个它看起来像下面将工作(我不知道有关过滤器语法):
$i = Get-EC2Instance -Filter @{Name = "instance-state-name"; Value = "running"}
$i.Count