134 lines
5.5 KiB
PowerShell
134 lines
5.5 KiB
PowerShell
Start-Transcript C:\itdscript\Logs\GetIPsAzureB.txt -Append
|
|
$VerbosePerfrence = "Continue"
|
|
|
|
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
|
$OutputPath = "C:\inetpub\wwwroot"
|
|
|
|
$WindowsIPs = ""
|
|
$LinuxIPs = ""
|
|
$OutFileWin = $OutputPath + "\AzureWin.txt"
|
|
$OutFileLin = $OutputPath + "\AzureLin.txt"
|
|
Remove-Item $OutFileWin
|
|
Remove-Item $OutFileLin
|
|
|
|
|
|
$username="svcitdazurescript@nd.gov"
|
|
$usernameg="svcitdazurescript@ndstate.onmicrosoft.com"
|
|
#Read-Host -AsSecureString | ConvertFrom-SecureString | Out-File C:\Users\svcitdazurescript\AppData\Local\Microsoft\sac.bat
|
|
$password=Get-Content C:\Users\svcitdazurescript\AppData\Local\Microsoft\sac.bat | ConvertTo-SecureString
|
|
$passwordg=Get-Content C:\Users\svcitdazurescript\AppData\Local\Microsoft\sacg.bat | ConvertTo-SecureString
|
|
$AdminCred=New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username,$password
|
|
$AdminCredg=New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $usernameg,$passwordg
|
|
|
|
Login-AzureRMAccount -Credential $AdminCred -Environment AzureCloud -Verbose
|
|
|
|
$Subscriptions = Get-AzureRMSubscription | Where-Object {$_.Name -ne "sandbox"}
|
|
foreach($subscription in $subscriptions)
|
|
{
|
|
Set-AzureRMContext -SubscriptionObject $subscription
|
|
$WindowsVMs = Get-AzureRMVM | Where-Object {$_.StorageProfile.osdisk.ostype -match "Windows"}
|
|
$LinuxVMs = Get-AzureRMVM | Where-Object {$_.StorageProfile.osdisk.ostype -match "Linux" -and $_.StorageProfile.ImageReference.Publisher -ne "infoblox" -and $_.StorageProfile.ImageReference.Publisher -ne "paloaltonetworks" -and $_.StorageProfile.ImageReference.Publisher -ne "juniper-networks"}
|
|
$nics = Get-AzureRMNetworkInterface | Where-Object {$_.VirtualMachine -NE $null}
|
|
|
|
foreach($vm in $WindowsVMs)
|
|
{
|
|
$vmnicinterfaces = $vm.Networkprofile.NetworkInterfaces.id
|
|
foreach($vmnicinterface in $vmnicinterfaces)
|
|
{
|
|
$nic = $nics | Where-Object {$_.Id -eq $vmnicinterface}
|
|
$privateip = $nic.IpConfigurations | Select PrivateIPAddress
|
|
|
|
If($privateip.count -gt 1)
|
|
{
|
|
foreach($private in $privateip)
|
|
{
|
|
$WindowsIPs += $private.privateIPAddress + "`n"
|
|
}
|
|
}
|
|
elseIf($privateip.privateIPAddress -ne $null)
|
|
{
|
|
$WindowsIPs += $privateip.privateIPAddress + "`n"
|
|
}
|
|
}
|
|
}
|
|
|
|
foreach($vm in $LinuxVMs)
|
|
{
|
|
$vmnicinterfaces = $vm.Networkprofile.NetworkInterfaces.id
|
|
foreach($vmnicinterface in $vmnicinterfaces)
|
|
{
|
|
$nic = $nics | Where-Object {$_.Id -eq $vmnicinterface}
|
|
$privateip = $nic.IpConfigurations | Select PrivateIPAddress
|
|
|
|
If($privateip.count -gt 1)
|
|
{
|
|
foreach($private in $privateip)
|
|
{
|
|
$LinuxIPs += $private.privateIPAddress + "`n"
|
|
}
|
|
}
|
|
elseif($privateip.privateIPAddress -ne $null)
|
|
{
|
|
$LinuxIps += $privateip.privateIPAddress + "`n"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Login-AzureRMAccount -EnvironmentName AzureUSGovernment -Credential $AdminCredg
|
|
|
|
$Subscriptions = Get-AzureRMSubscription | Where-Object {$_.Name -ne "sandbox"}
|
|
foreach($subscription in $subscriptions)
|
|
{
|
|
Set-AzureRMContext -SubscriptionObject $subscription
|
|
$WindowsVMs = Get-AzureRMVM | Where-Object {$_.StorageProfile.osdisk.ostype -match "Windows"}
|
|
$LinuxVMs = Get-AzureRMVM | Where-Object {$_.StorageProfile.osdisk.ostype -match "Linux" -and $_.StorageProfile.ImageReference.Publisher -ne "infoblox" -and $_.StorageProfile.ImageReference.Publisher -ne "paloaltonetworks" -and $_.StorageProfile.ImageReference.Publisher -ne "juniper-networks"}
|
|
$nics = Get-AzureRMNetworkInterface | Where-Object {$_.VirtualMachine -NE $null}
|
|
|
|
foreach($vm in $WindowsVMs)
|
|
{
|
|
$vmnicinterfaces = $vm.Networkprofile.NetworkInterfaces.id
|
|
foreach($vmnicinterface in $vmnicinterfaces)
|
|
{
|
|
$nic = $nics | Where-Object {$_.Id -eq $vmnicinterface}
|
|
$privateip = $nic.IpConfigurations | Select PrivateIPAddress
|
|
If($privateip.count -gt 1)
|
|
{
|
|
foreach($private in $privateip)
|
|
{
|
|
$WindowsIPs += $private.privateIPAddress + "`n"
|
|
}
|
|
}
|
|
elseIf($privateip.privateIPAddress -ne $null)
|
|
{
|
|
$WindowsIPs += $privateip.privateIPAddress + "`n"
|
|
}
|
|
}
|
|
}
|
|
|
|
foreach($vm in $LinuxVMs)
|
|
{
|
|
$vmnicinterfaces = $vm.Networkprofile.NetworkInterfaces.id
|
|
foreach($vmnicinterface in $vmnicinterfaces)
|
|
{
|
|
$nic = $nics | Where-Object {$_.Id -eq $vmnicinterface}
|
|
$privateip = $nic.IpConfigurations | Select PrivateIPAddress
|
|
|
|
If($privateip.count -gt 1)
|
|
{
|
|
foreach($private in $privateip)
|
|
{
|
|
$LinuxIPs += $private.privateIPAddress + "`n"
|
|
}
|
|
}
|
|
elseif($privateip.privateIPAddress -ne $null)
|
|
{
|
|
$LinuxIps += $privateip.privateIPAddress + "`n"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
If ($WindowsIPs -ne "" -and $WindowsIPs.Length -gt 150) {$WindowsIPs | Out-File $OutFileWin -Encoding ASCII -NoNewline -Force}
|
|
If ($LinuxIPs -ne ""-and $LinuxIPs.Length -gt 150) {$LinuxIPs | Out-File $OutFileLin -Encoding ASCII -NoNewline -Force}
|