Wednesday, April 24, 2019

Azure List of vNets, Address space and subnets under each vNet

#Author : Neeraj Kumar Jha
#SCRIPT_START
clear
$rsname = Get-AzureRmResourceGroup | select ResourceGroupName
foreach($rsitem in $rsname)
{
    $rs_name=Get-AzureRmResourceGroup -Name $rsitem.ResourceGroupName | Get-AzureRmVirtualNetwork -WarningAction Ignore | select name -WarningAction Ignore
    foreach($IN_RS_item in $rs_name)
    {
        $vnets = Get-AzureRmVirtualNetwork -Name $IN_RS_item.name -ResourceGroupName $rsitem.ResourceGroupName -WarningAction Ignore
                   foreach($vnet in $vnets)
                     {
                       $add_count= $vnet.AddressSpace.AddressPrefixes.count
                            if($add_count -gt 0)
                            {
                                $addr_list=$vnet.AddressSpace.AddressPrefixes
                                $addrcnt=0
                                echo "........................................................................................."
                                write-host "Resource group name: " $rsitem.ResourceGroupName  " vNet Name: " $vnet.name
                                    foreach($add_pref in $addr_list)
                                    {
                                        #echo $add_pref
                                        write-host  " Address range: "$vnet.AddressSpace.AddressPrefixes.Item($addrcnt)
                                        $addrcnt=$addrcnt+1
                                     }
                             }
                            else
                            {
                                echo ""
                                write-host "Resource group name: " $rsitem.ResourceGroupName  " vNet Name: " $vnet.name
                                write-host  " Address range: "$vnet.AddressSpace.AddressPrefixes.Item($addrcnt)
                             }
                     }
    }
     
}

Friday, April 19, 2019

Create Azure Resource group and prevent any duplicate object creation

#Author : Neeraj

clear
$RsGrp_name=read-host "Enter resource group name:"
write-host "select location like" -BackgroundColor yellow -ForegroundColor blue
write-host "==============" -BackgroundColor yellow -ForegroundColor red
write-host "East US" -BackgroundColor yellow -ForegroundColor black
write-host "Central US" -BackgroundColor yellow -ForegroundColor black
write-host "Central India" -BackgroundColor yellow -ForegroundColor black
write-host "etc..." -BackgroundColor yellow -ForegroundColor black
write-host "==============" -BackgroundColor yellow -ForegroundColor red
write-host ""
$RsGrp_location =read-host "Enter resource group location:"
$rsn=Get-AzureRmResourceGroup |select ResourceGroupName
$flag=0

foreach($rsname in $rsn)
{
   if($RsGrp_name -eq $rsname.ResourceGroupName)
       {
        $flag=1
        break
        }
       else
       {
       $flag=0
       }
}
       if($flag -eq 1)
       {
           write-host "This Resource group already exist, please select another name" -BackgroundColor red -ForegroundColor yellow
         
       }
       else
       {
       write-host "Creating ResourceGroup..." $RsGrp_name -BackgroundColor green -ForegroundColor white
       echo "Please wait..."
       New-AzureRmResourceGroup -name $RsGrp_name -location $RsGrp_location -Confirm:$false
     
       sleep 10
     
       echo "Generating output"
       Get-AzureRmResourceGroup -Name $RsGrp_name
       }

Azure VM listing, start , stop, wild card search

#Author: Neeraj
clear
echo "1.List VMs "  "2.Stop VM" "3.Start vm" "4.Wildcard Search"
$VMMch=read-host "Enter your choice:"
    if($VMMch -eq 1)
    {
        $vmlst=Get-AzureRmResource -ResourceType microsoft.compute/virtualmachines | select name |Sort-Object -Property name
        $ct=1
            foreach($item in $vmlst)
            {
                write-host $ct "."$item.name
                $ct++
            }

        $cp= Read-Host "Enter VM number"
            $ct=1
            $chh = $cp
            foreach($item in $vmlst)
            {
                if($ct -eq $chh)
                {
                    $vname=$item.name
                    Get-AzureRmResource -Name $vname
               
                }
            $ct++
            }

    }

    if($VMMch -eq 2)
    {

    $VMMn=Read-Host "Enter VM name"
    $VMMRSGRP = Get-AzureRmResource -name $vMMn -ResourceType microsoft.compute/virtualmachines | select name, resourcegroupname
    foreach($item in $VMMRSGRP)
    {
        echo $item.Name
        echo $item.resourcegroupname
        get-azurermvm -Name $item.Name -ResourceGroupName $item.resourcegroupname
        $vmstop=Read-host "Press 'Y' to shutdown the vm"
        if($vmstop -eq 'Y')
        {
        echo "Stopping the vm"
        stop-azurermvm -Name $item.Name -ResourceGroupName $item.resourcegroupname
         }

    }



    }

    if($VMMch -eq 3)
    {

    $VMMn=Read-Host "Enter VM name"
    $VMMRSGRP = Get-AzureRmResource -name $vMMn -ResourceType microsoft.compute/virtualmachines | select name, resourcegroupname
    foreach($item in $VMMRSGRP)
    {
        echo $item.Name
        echo $item.resourcegroupname
        get-azurermvm -Name $item.Name -ResourceGroupName $item.resourcegroupname
        $vmstop=Read-host "Press 'Y' to Start the vm"
        if($vmstop -eq 'Y')
        {
        echo "Starting the vm"
        start-azurermvm -Name $item.Name -ResourceGroupName $item.resourcegroupname
         }

    }



    }

    if($VMMch -eq 4)
    {
        $objname = Read-Host "Enter part of the vm name you want to search"
        $wcard = "*"+$objname+"*"
        $vmlst=Get-AzureRmResource -name $wcard -ResourceType microsoft.compute/virtualmachines
        foreach($obj in $vmlst)
        {
        echo "" "............................................................................." ""
        Write-Host "               Name :" $obj.name
        Write-Host "Resource Group Name :" $obj.ResourceGroupName
        Write-Host "      ResourceT ype :" $obj.ResourceType
        Write-Host "           Location :" $obj.Location
        Write-Host "        Resource Id :" $obj.ResourceId
        }
    }

Content of this blog has been moved to GITHUB

Looking at current trends and to make my content more reachable to people, I am moving all the content of my blog https://tech-jockey.blogsp...