Skip to main content

Register/Deregister ADO agents using PowerShell

 here is the script you can use to register/deregister ADO agents


PARAM(  
   [int] $NoofAgents,  
   [string] $vsts_url = "https://dev.azure.com/name",  
   [string] $vsts_pat,  
   [string] $svcUserName = "domain\user",  
   [string] $svcPassword,  
   [string] $agentAction  
 )  
 $agent_pool = 'Poolname';  
 $ErrorActionPreference="Stop";  
 If(-NOT (Test-Path $env:SystemDrive\'agents'))  
 {mkdir $env:SystemDrive\'agents'};  
 Cd $env:SystemDrive\'agents';  
 if($agentAction -eq "register"){  
   Write-Host "Download Agent Zip from ADO..." -NoNewline  
   $agentZip="$PWD\agent.zip";  
   $DefaultProxy=[System.Net.WebRequest]::DefaultWebProxy;  
   $securityProtocol=@();  
   $securityProtocol+=[Net.ServicePointManager]::SecurityProtocol;  
   $securityProtocol+=[Net.SecurityProtocolType]::Tls12;  
   [Net.ServicePointManager]::SecurityProtocol=$securityProtocol;  
   $WebClient=New-Object Net.WebClient;  
   $Uri='https://vstsagentpackage.azureedge.net/agent/2.185.1/vsts-agent-win-x64-2.185.1.zip';  
   if($DefaultProxy -and (-not $DefaultProxy.IsBypassed($Uri)))  
   {  
     $WebClient.Proxy= New-Object Net.WebProxy($DefaultProxy.GetProxy($Uri).OriginalString, $True);  
   };  
   #$WebClient.DownloadFile($Uri, $agentZip);  
   Write-Host "Done"  
   for($i=1; $i -le $NoofAgents; $i++)  
   {  
     $destFolder="Agent_"+$('{0:d3}' -f [int]$i)  
     Write-Host "$destFolder Operations..."  
     if(-NOT (Test-Path ($destFolder)))  
     {  
       mkdir $destFolder | Out-null;  
       Write-Host "`tExtracting Files...." -NoNewline  
       Add-Type -AssemblyName System.IO.Compression.FileSystem;  
       [System.IO.Compression.ZipFile]::ExtractToDirectory( $agentZip, "$PWD\$destFolder");  
       Write-Host "Installation......" -NoNewline  
       $agentName = ("$($env:computername)_$($destFolder)_win").ToLower()  
       Set-Location "$PWD\$destFolder"  
       & .\config.cmd --unattended --url $vsts_url --auth pat --token $vsts_pat --pool $agent_pool --agent $agentName --windowsLogonAccount $svcUserName --windowsLogonPassword """$svcPassword""" --runAsService  
     }  
     Set-Location "c:\agents"  
   };  
 }  
 elseif ($agentAction -eq "deregister") {  
   $agentList = Get-ChildItem -filter "agent*" -Directory | % {$_.Fullname}  
   $agentList | %{  
     $path = $_  
     $destFolder = (Split-Path $path -Leaf )  
     Write-Host "Unregistering $($destFolder) ..." -NoNewline  
     & $path\config.cmd remove --unattended --url $vsts_url --auth pat --token $vsts_pat --pool $agent_pool --agent "$($env:computername)_$($destFolder)_win"  
     Remove-Item $Path -Recurse -Force  
     Write-Host "Done"  
   }  
 }  

Comments

Popular posts from this blog

PowerShell: Get Actual Error

I was having hard time to find the reason why I was not able to find a custom method in a .Net DLL. Find your Assembly: PS C:\vstsagent\A1\_work\r1\a\_DevOps_CI\Scripts > [appdomain]::currentdomain . getassemblies() | Where - Object FullName - Match "MyAssembly" GAC Version Location --- ------- -------- False v4 . 0.30319 C:\vstsagent\A1\_work\r1\a\_DevOps_CI\Scripts\Tools\MyAssembly . dll PS C:\vstsagent\A1\_work\r1\a\_DevOps_CI\Scripts & gt; $ a = [appdomain]::currentdomain . getassemblies() | Where - Object FullName - Match "MyAssembly" PS C:\vstsagent\A1\_work\r1\a\_DevOps_CI\Scripts & gt; $ a GAC Version Location --- ------- -------- False v4 . 0.30319 C:\vstsagent\A1\_work\r1\a\_DevOps_CI\Scripts\Tools\MyAssembly . dll When I was trying to get the Types in the assembly, I was getting the exception: PS C:\vstsagent\A1\_work\r1\a\_DevOps_CI\Scripts > ...

Notepad++ Error for 64bit - ShellExecute failed (2): Is this command correct?

Cause : It happens when you set Notepad++ to "run as" administrator on Windows 7. Fix:  To fix this, you need to manually edit the registry of your system to create a new option in pop-up menu to open files with Notepad++ Step 1 : Delete existing  Edit with Notepad++  entry from registry Go into your registry as an administrator (Run -> regedit) and search for notepad++.exe. Find the key under  HKEY_CLASSES_ROOT  that has an entry with the  Edit with Notepad++  (or maybe  Edit with &Notepad++ ) and delete the entire key. Right click and you should see that you no longer have that option. Step 2 : Create new entry Open with Notepad++ Go to: HKEY_CLASSES_ROOT\*\shell Create a new key under shell called  OpenWithNotepad  and create a subkey under that called  command . In the  OpenWithNotepad  key the default string is what you want the context menu item to be called. I set it to  Open with Not...

fastboot device not deleted in Windows 10? Here is the fix

I was cleaning my closet and found my HTC Incredible S (which I had bought in 2011). I gave the phone some juice for few hours and booted it, surprisingly it was working :) I thought about rooting it and flashing with new rom in market. I searched xda fourm and found this  (Cynogen 13 based Rom for Incredible S). I started to flash it. but, my bootloader was still locked. I went to HTCDev to unlock the bootloader. but Fastboot was not able to detect my phone. After 3 hrs of internet searching I found this simple fix. I think this can work with all the android phones. you need to create a registry entry (below) and reboot the system(PC). [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\0BB40FF00100] "SkipBOSDescriptorQuery"=hex:01,00,00,00 after the registry fix, it worked liked a charm. Thanks