Advertisement
Guest User

Untitled

a guest
Aug 21st, 2019
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.59 KB | None | 0 0
  1. #Requires -Module @{ModuleName="AWSPowerShell";ModuleVersion="3.3.450.0"}
  2.  
  3. Write-Output -InputObject 'Delete all Default VPCs'
  4. $AllRegions = Get-EC2Region
  5. ForEach ($region in $AllRegions.RegionName) {
  6. Write-Output -InputObject "Searching $region"
  7. $defaultVpc = Get-EC2VPC -Filter @{name='isDefault'; Value='true'} -Region $region
  8. if ($defaultVpc) {
  9. Write-Output -InputObject "Found default VPC $($defaultVPC.VpcId) $($defaultVPC.CidrBlock) ... deleting"
  10. $VPCFilter = New-Object -TypeName Amazon.EC2.Model.Filter
  11. $VPCFilter.Value = $($defaultVPC.VpcId)
  12.  
  13. $VPCFilter.Name = 'attachment.vpc-id'
  14. $igw = Get-EC2InternetGateway -Filter $VPCFilter -Region $region
  15. if ($igw) { Dismount-EC2InternetGateway -VpcId $($defaultVPC.VpcId) -InternetGatewayId $igw.InternetGatewayId -Region $region }
  16. if ($igw) { Remove-EC2InternetGateway -InternetGatewayId $igw.InternetGatewayId -Region $region -Force }
  17.  
  18. $egw = Get-EC2EgressOnlyInternetGatewayList -Region $region
  19. if ($egw) { Remove-EC2EgressOnlyInternetGateway -EgressOnlyInternetGatewayId $egw.EgressOnlyInternetGatewayId -Region $region -Force }
  20.  
  21. $VPCFilter.Name = 'vpc-id'
  22. $neti = Get-EC2NetworkInterface -Filter $VPCFilter -Region $region
  23. foreach ($eni in $neti) {
  24. #if ($eni.Attachment) { Dismount-EC2NetworkInterface -AttachmentId $eni.Attachment.AttachmentId -ForceDismount $true -Region $region }
  25. Remove-EC2NetworkInterface -NetworkInterfaceId $eni.NetworkInterfaceId -Region $region -Force
  26. }
  27.  
  28. $VPCFilter.Name = 'requester-vpc-info.vpc-id'
  29. Get-EC2VpcPeeringConnection -Filter $VPCFilter -Region $region | Remove-EC2VpcPeeringConnection -Region $region
  30.  
  31. $VPCFilter.Name = 'accepter-vpc-info.vpc-id'
  32. Get-EC2VpcPeeringConnection -Filter $VPCFilter -Region $region | Remove-EC2VpcPeeringConnection -Region $region
  33.  
  34. $VPCFilter.Name = 'vpc-id'
  35. Get-EC2Subnet -Filter $VPCFilter -Region $region | Remove-EC2Subnet -Region $region -Force
  36.  
  37. Remove-EC2VPC -VpcId $($defaultVPC.VpcId) -Region $region -Force
  38. Write-Output -InputObject "VPC $($defaultVPC.VpcId) $($defaultVPC.CidrBlock) ... DELETED"
  39.  
  40. Get-EC2SecurityGroup -Filter $VPCFilter -Region $region | Remove-EC2SecurityGroup -Region $region -Force
  41.  
  42. Get-EC2NetworkACL -Filter $VPCFilter -Region $region | Remove-EC2NetworkACL -Region $region -Force
  43.  
  44. $VPCFilter.Name = 'vpc-id'
  45. $rtb = Get-EC2RouteTable -Filter $VPCFilter -Region $region
  46. if ($rtb) { Unregister-EC2RouteTable -AssociationId $rtb.Associations.RouteTableAssociationId -Region $region }
  47. if ($rtb) { Remove-EC2RouteTable -RouteTableId $rtb.RouteTableId -Region $region -Force }
  48. }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement