Forum Discussion

Brahmaiah's avatar
Brahmaiah
Brass Contributor
Feb 21, 2020

How to run Powershell command in Loop

Hi,

 

I am new to Powershell script and Need your help on below requirement.

 

I am have powershell script displaying last last 3 commands and output of my powershell script.

 

Below last 3 command lines:

 

$FinalResource=$FinalResource1 | Where-Object{$_.ResourceType -ne $MetricType}

Write-Output $FinalResource

New-AzResourceLock -LockLevel CanNotDelete -LockName Delete_Lock -ResourceName $FinalResource.Name -ResourceType $FinalResource.ResourceType -ResourceGroupName xxxxxx

 

Below is Output of my powershell script:

 

 

I am getting list of resources which are not having LOCKS on Azure after that I am applying lock on each resource by using above command.

 

Script is running fine when I am passing single resource but script is failing when I am passing all resources.

 

How to run last command in loop by passing one by one resource so that lock command will apply on all resources.

 

Thanks,

Brahma

  • Brahmaiah You can use Foreach and set the lock for each member. Let me know if you have any questions. 

    $FinalResource = $FinalResource1 | Where-Object{$_.ResourceType -ne $MetricType}
    
    Write-Output $FinalResource
    $Counter = $FinalResource.count
    
    Foreach($Item in $FinalResource)
     {
      Write-Host "($Counter) Locking Resource: $($Item.Name)"
      New-AzResourceLock -LockLevel CanNotDelete -LockName Delete_Lock -ResourceName $Item.Name -ResourceType $Item.ResourceType -ResourceGroupName $Item.ResourceGroupName
      $Counter--
     }


     

  • Brahmaiah You can use Foreach and set the lock for each member. Let me know if you have any questions. 

    $FinalResource = $FinalResource1 | Where-Object{$_.ResourceType -ne $MetricType}
    
    Write-Output $FinalResource
    $Counter = $FinalResource.count
    
    Foreach($Item in $FinalResource)
     {
      Write-Host "($Counter) Locking Resource: $($Item.Name)"
      New-AzResourceLock -LockLevel CanNotDelete -LockName Delete_Lock -ResourceName $Item.Name -ResourceType $Item.ResourceType -ResourceGroupName $Item.ResourceGroupName
      $Counter--
     }


     

    • Brahmaiah's avatar
      Brahmaiah
      Brass Contributor

      Erick A. Moreno R.  Thank you so much Sir. It is working perfectly.

       

      Can you also help me how to avoid confirm option while running the script, I have to click Yes for each resource to execute command.

       

      Below is screen shot.

       

      Thanks

Resources