我需要從我的環境中的所有EC2實例中獲取instanceId和PrivateIpAddress,並將其插入到表中。我有這個,但似乎沒有工作。我似乎得到的不僅僅是IP和ID。Powershell獲取AWS-EC2實例的foreach循環中的多個變量信息
$instancestate = (get-ec2instance).RunningInstance
foreach ($instances in $instancestate)
{
$query = "INSERT INTO prodinstances (Idinstance, IPAddress)
VALUES ('$instances.InstanceId','$instances.PrivateIpAddress')"
$Rows = Execute-MySQLNonQuery $conn $query
}
如果我更改代碼
$instancestate = (get-ec2instance).RunningInstance.InstanceId
我得到的ID,並可以在數據庫中插入。我也可以把它改成
$instancestate = (get-ec2instance).RunningInstance.PrivateIpAddress
,並獲得ip地址,並插入到數據庫中,但是當我將它們結合起來,我得到的所有信息對其中確實有.instanceId和.PrivateIpAddress在列表中時,EC2實例我將鼠標懸停在變量$實例上。任何想法如何獲得這兩個參數。我的代碼似乎是正確的,但可惜它不是......
謝謝,我昨晚想通了通過分配輸出到這樣一個變量,但你的方式@TessellatingHecker更多雄辯... $ MyID = $ instances.InstanceId $ MyIP = $ instances.PrivateIpAddress $ query =「INSERT INTO prodinstances(Idinstance,IPAddress)VALUES('$ MyID','$ MyIP ')「 $ Rows = Execute-MySQLNonQuery $ conn $ query } – tmac
我不得不改變代碼,並插入只有當不存在,但這似乎並沒有工作,它插入無論'$ instancestate =(get-ec2instance).RunningInstance foreach($ instancestate中的$實例) { (Idinstance,IPAddress)SELECT Idinstance,IPAddress FROM prodinstances WHERE NOT EXISTS(SELECT Idinstance,IPAddress FROM prodinstances WHERE Idinstance ='$($ instances.InstanceId)'and IPAddress ='$($ instances .PrivateIpAddress)')「 $ Rows = Execute-MySQLNonQuery $ conn $ query }' – tmac