标签: aws-powershell

如何访问Get-EC2Instance的RunningInstance方法中的列表值?

我正在尝试从返回的对象中检索instanceid,公共DNS名称和"Name"标记get-ec2instance.

$instances = foreach($i in (get-ec2instance)) '
{ $i.RunningInstance | Select-Object InstanceId, PublicDnsName, Tag }
Run Code Online (Sandbox Code Playgroud)

这是输出:

InstanceId                              PublicDnsName                     Tag
----------                              -------------                     ---
myInstanceIdHere                        myPublicDnsName                   {Name}
...                                     ...                               {Name}
Run Code Online (Sandbox Code Playgroud)

我希望能够{Name}使用上面的代码行访问并在此输出中打印其值.自最初发布以来,我做了一些研究,发现......

PS C:\Users\aneace\Documents> $instances[0].Tag.GetType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     List`1                                   System.Object
Run Code Online (Sandbox Code Playgroud)

在这个和AWS文档之间,我认为Tag引用了这个列表,但我不确定.我可以访问一个通过调用打印键和值列的表$instances[0].Tag,但我现在的问题是我希望它Value是我的第一个表而不是{Name}对象的输出.有什么建议?

powershell amazon-ec2 amazon-web-services aws-powershell

4
推荐指数
1
解决办法
8526
查看次数

如何在 PowerShell 中使用公共 IP 地址将 EC2 实例启动到 VPC 中?

我一直在尝试使用以下脚本,但没有成功:

$Ami=Get-EC2ImageByName WINDOWS_2012_BASE

New-EC2Instance -ImageId $Ami[0].ImageId -MinCount 1 -MaxCount 1 -KeyName uckey -InstanceType `
t1.micro -SubnetId subnet-56738b33 -AssociatePublicIp $true
Run Code Online (Sandbox Code Playgroud)

错误是:

New-EC2Instance : Object reference not set to an instance of an object.
At line:1 char:1
+ New-EC2Instance -ImageId $Ami[0].ImageId -MinCount 1 -MaxCount 1 -KeyName uckey  ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (Amazon.PowerShe...2InstanceCmdlet:NewEC2InstanceCmdlet)  
   [New-EC2Instance], InvalidOperationException
    + FullyQualifiedErrorId : System.NullReferenceException,Amazon.PowerShell.Cmdlets.EC2.NewEC2InstanceC 
   mdlet
Run Code Online (Sandbox Code Playgroud)

问题在于-AssociatePublicIp没有它的参数,脚本可以工作。

谢谢阅读

powershell amazon-ec2 aws-cli aws-powershell

4
推荐指数
1
解决办法
1779
查看次数

如何使用 PowerShell 在 S3 存储桶之间复制大于 5GB 的文件

如何使用 PowerShell 在 S3 存储桶之间复制大于 5GB 的文件?

有几个使用 PowerShell 在 AWS S3 存储桶之间复制文件的示例,但它们使用 Copy-S3Object 命令,该命令仅限于小于 5GB 的文件

powershell amazon-s3 amazon-web-services aws-powershell

4
推荐指数
1
解决办法
1321
查看次数

使用aws cli获取最新的Windows 2012R2基本AMI ID?

有没有办法使用aws cli获取最新的Windows 2012R2基础AMI ID?

类似Get-EC2ImageByName -Names WINDOWS_2012R2_BASEPowershell的东西.我想在Linux中使用它.

我尝试过使用AMI id, aws ec2 describe-images --owners amazon --filters "Name=name,Values=Windows_Server-2012-R2_RTM-English-64Bit-Base-*"但感觉就像是黑客.在Powershell中有更好的方法吗?

amazon-web-services aws-cli aws-powershell amazon-ami

4
推荐指数
1
解决办法
730
查看次数

3
推荐指数
1
解决办法
2万
查看次数

power shell将文件移动到亚马逊s3

我有下面的PowerShell脚本,可以将文件移动到我的亚马逊桶中,所有这些都适用于一些小文件,但是当复制较大的文件时,for循环继续循环并开始复制,然后其他人完成并且不需要很长时间在我有100个文件全部一次转移之前.

我想要的是能够将同时文件传输的数量限制为5或10?

foreach ($line in $csv) {  

#--------------------Transfer files Put in a for each loop here---------------------------
$SourceFolder  =$line.destination
$sourceFile = $line.name

if(test-Path -path $SourceFolder){
    Write-S3Object -BucketName $BucketName  -Key $sourceFile  -File  $SourceFolder 
    #check fro missing files
        $S3GetRequest = New-Object Amazon.S3.Model.S3Object  #get-S3Object  -BucketName   $BucketName  -Key $sourceFile
        $S3GetRequest = get-S3Object  -BucketName $BucketName  -Key $sourceFile

        if($S3GetRequest -eq $null){
            Write-Error "ERROR: Amazon S3 get requrest failed. Script halted."
            $sourceFile + ",Transfer Error" |out-file $log_loc -append
    }
}else {$SourceFolder + ",Missing File Error" |out-file $log_loc -append} …
Run Code Online (Sandbox Code Playgroud)

powershell amazon-s3 amazon-web-services aws-powershell

3
推荐指数
1
解决办法
1万
查看次数

如何在用户数据中获取AWS Instance标签?

我使用aws ec2 userdata和windows powershell脚本.我需要实例引导.我的想法是:

  • EC2实例标签adds.It的关键名称"Version",它的值为"1.0.0.158-branchname"

我试图在userdata中获取版本标记值.我检查了aws http api.它无法返回标签.我写了简单的PowerShell脚本:

$instanceId = (New-Object System.Net.WebClient).DownloadString("http://169.254.169.254/latest/meta-data/instance-id")
aws ec2 describe-tags --filters $filter --query 'Tags[*]'
Run Code Online (Sandbox Code Playgroud)

我可以使用aws http api获取实例ID.我无法获取实例标签,因为AWS ec2 userdata无法启动"aws.exe".

此脚本是正确的 - 它在实例启动之前手动运行.

注意:"aws"是"aws.exe"(https://aws.amazon.com/cli/)

powershell amazon-ec2 amazon-web-services user-data aws-powershell

3
推荐指数
1
解决办法
8834
查看次数

使用INI文件时出现奇怪的Powershell`Set-AWSCredentials`错误

我正在开发一个无人参与的PowerShell脚本,并希望以正确的方式存储AWS凭据.

根据文档,我应该能够将凭证存储在像这样的.ini文件中

\ myAWSCredentials.ini

[default]
aws_access_key_id = XXXXXXXXXXXXXXX
aws_secret_access_key = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

[namedProfile]
aws_access_key_id = XXXXXXXXXXXXXXX
aws_secret_access_key = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
Run Code Online (Sandbox Code Playgroud)

并将其加载到我的环境中

Set-AWSCredentials -ProfilesLocation .\myAWSCredentials.ini

要么

Set-AWSCredentials -ProfileName namedProfile -ProfilesLocation .\myAWSCredentials.ini

但是我得到一个没有意义的错误 - PowerShell与App.config文件有什么关系?

Set-AWSCredentials:加载存储的凭据时出错,(profile location ='.\ myAWSCredentials.ini').错误:App.config不包含凭据信息.添加AWSAccessKey和AWSSecretKey或AWSProfileName.在行:1 char:1 + Set-AWSCredentials -ProfilesLocation.\ myAWSCredentials.ini + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified :( :) [Set-AWSCredentials],ArgumentException + FullyQualifiedErrorId:System.ArgumentException, Amazon.PowerShell.Common.SetCredentialsCmdlet

powershell amazon-s3 amazon-web-services aws-powershell

3
推荐指数
1
解决办法
692
查看次数

AWS powershell:获取ec2实例中Tag的值

我可以使用powershell获取Tag的一个实例的键值对.

我有一个对象,$instance$instance.Tags产生以下列表:

Key                                     Value                                  
---                                     -----                                  
abc                                     cde
mnp                                     mju

如何检索任何特定密钥的值?

powershell amazon-ec2 amazon-web-services aws-powershell

2
推荐指数
1
解决办法
6069
查看次数

使用 powershell 按 TAG 值列出 AWS 实例

我们正在标记我们的 AWS 实例,我想通过 TAG 引用检索我们所有实例(ELB、S3、EC2、安全组)的列表。例如,我们始终使用以下内容标记我们的资源:{ "Key": "Project", "Value": "bananas" },

我们如何通过 power-shell 获取包含 TAG Project 值“bananas”的所有资源的列表?

我能够使用以下脚本获取我所有的 EC2:

$instance = Get-EC2Instance -Filter @( @{name='tag:Project'; values="bananas"}; @{name='instance-state-code'; values = 16} ) | Select-Object -ExpandProperty instances #Get instance ID 忽略任何终止的实例 $instance | 导出-CSV "C:\ec2.csv"

但我不确定如何使用一个脚本获取我所有的标记资源。

powershell amazon-web-services aws-powershell aws-resource-group

2
推荐指数
1
解决办法
1661
查看次数

如何使用Powershell获取AWS Auto Scaling组中实例的IP地址?

我试图通过.NET Amazon API将powershell脚本连接到Auto Scaling组.

我在这里检查了文档,但是我很难获得一个包含属于Auto Scaling Group的实例的IP地址的对象.

我不确定使用哪个类,或者哪个类包含我的对象.

我目前正在使用:

$request = New-Object -TypeName Amazon.AutoScaling.Model.DescribeAutoScalingInstancesRequest
Run Code Online (Sandbox Code Playgroud)

有没有人遇到过同样的情况?哪个类/对象包含AutoScaling组中运行的实例的IP地址?

powershell amazon-ec2 amazon-web-services aws-powershell

1
推荐指数
2
解决办法
4525
查看次数

如何使用 AWS PowerShell 在 S3 中创建新文件夹

我已经创建了一个存储桶,但我想在此存储桶中创建新文件夹,而不是上传数据或其他任何内容,只需创建新文件夹。我怎样才能做到这一点 ?

谢谢

amazon-s3 amazon-web-services aws-powershell

1
推荐指数
1
解决办法
2215
查看次数