<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-193702957057822281</id><updated>2026-07-26T04:31:13.007+10:00</updated><category term="Powershell"/><category term="SCCM"/><category term="Application Virtualization"/><category term="SCCM 2012"/><category term="Task Sequence"/><category term="App-V"/><category term="Azure"/><category term="Recipe"/><category term="Script"/><category term="Hyper-V"/><category term="AppV"/><category term="Install"/><category term="MDT"/><category term="System Center Configuration Manager"/><category term="Sequencing"/><category term="BitLocker"/><category term="WSUS"/><category term="Windows 7"/><category term="error"/><category term="MED-V"/><category term="OSD"/><category term="VM"/><category term="build"/><category term="report"/><category term="step-by-step"/><category term="2.0"/><category term="2012"/><category term="Azure Sentinel"/><category term="Configuration"/><category term="DevOps"/><category term="Forms"/><category term="GPO"/><category term="Lotus Notes"/><category term="MEDV"/><category term="MSI"/><category term="SCCM client"/><category term="Updates"/><category term="Windows 8"/><category term="application"/><category term="automation"/><category term="bginfo"/><category term="boot"/><category term="boundaries"/><category term="office"/><category term="proxy"/><category term="setup"/><category term="sp1"/><category term="windows server 2012"/><category term="2010"/><category term="32-bit"/><category term="64-bit"/><category term="AD"/><category term="Admin"/><category term="Adobe Acrobat 9 Pro"/><category term="Application Incompatibility"/><category term="Azure AD"/><category term="Buttons"/><category term="Delete"/><category term="Deployment"/><category term="LDAP"/><category term="Microsoft"/><category term="Microsoft Office 2010"/><category term="Package"/><category term="Pipeline"/><category term="Release"/><category term="Runas"/><category term="SIEM"/><category term="SQL Server"/><category term="SUP"/><category term="Security"/><category term="TS"/><category term="UE-V"/><category term="UEV"/><category term="VMware"/><category term="VSTS"/><category term="WDS"/><category term="access runtime"/><category term="administrator"/><category term="boundary"/><category term="capture"/><category term="ccm"/><category term="collation"/><category term="dialog"/><category term="dns"/><category term="dropdown"/><category term="greyed out"/><category term="group policy"/><category term="iis"/><category term="installation"/><category term="license"/><category term="licensing protocol"/><category term="migration"/><category term="notifyicon"/><category term="pin"/><category term="printer"/><category term="remote desktop"/><category term="remotefx"/><category term="requirements"/><category term="step by step"/><category term="uninstall"/><category term="user state virtualization"/><category term="0x80004005"/><category term="10.11"/><category term="2008"/><category term="2008 r2"/><category term="8"/><category term="800706BE"/><category term="ADSI"/><category term="AGPM"/><category term="ARM"/><category term="Access denied"/><category term="Active Directory"/><category term="Add group"/><category term="Adobe Acrobat"/><category term="Adobe PDF Printer"/><category term="Adobe Photoshop CS4"/><category term="Advanced Group Policy Management"/><category term="Application Deployment"/><category term="Application Gateway"/><category term="Applications"/><category term="Automatically detect settings"/><category term="Azure ARM"/><category term="Azure Stack"/><category term="Azure Templates"/><category term="BI"/><category term="BSOD"/><category term="Background"/><category term="Bicep"/><category term="COM objects"/><category term="Cache Size"/><category term="Change Control"/><category term="Convertto-HTML"/><category term="Copy file"/><category term="Effects"/><category term="Embedded"/><category term="Excel"/><category term="Functions"/><category term="GPMC"/><category term="GPP"/><category term="Graph API"/><category term="HTML"/><category term="IE"/><category term="IaC"/><category term="Infrastructure"/><category term="Internet Explorer"/><category term="Intune"/><category term="Lenovo"/><category term="Log Analytics"/><category term="MMC"/><category term="Managed Service Identity"/><category term="ManagedBy"/><category term="Microsoft Graph API"/><category term="Microsoft OneNote"/><category term="Mousehover"/><category term="Move OU"/><category term="Multi"/><category term="Netdom"/><category term="New features"/><category term="OS versioning"/><category term="OWASP"/><category term="Office 2010"/><category term="PAC"/><category term="POC"/><category term="PS1 to EXE"/><category term="PSCX"/><category term="PXE"/><category term="Parallel"/><category term="Pending Reboot"/><category term="Pin start menu"/><category term="Powershell V3"/><category term="Program"/><category term="RAM"/><category term="RTM"/><category term="Refresh"/><category term="Register-ScheduledJob"/><category term="Remote Uninstall"/><category term="Rollback"/><category term="SAML"/><category term="SAP"/><category term="SCCMTools"/><category term="SCOM"/><category term="SMSCacheSize"/><category term="SMS_Advertisement"/><category term="SMS_CollectToSubCollect"/><category term="SMS_Collection"/><category term="SMS_DistributionPoint"/><category term="SMS_OS_Details"/><category term="SMS_Package"/><category term="SMS_Program"/><category term="SMS_ProviderLocation"/><category term="SMTP"/><category term="SOE"/><category term="SQL Server 2008 R2"/><category term="SQL_Backup"/><category term="SSD"/><category term="SSO"/><category term="Scale Set"/><category term="Screen Resolution"/><category term="Sentinel"/><category term="Show-Command"/><category term="Snap-in"/><category term="Software Catalog"/><category term="Software Center"/><category term="Sofware Distribution"/><category term="Suspend-Job"/><category term="Sysprep"/><category term="System.DirectoryServices.ActiveDirectory"/><category term="T510"/><category term="TP3"/><category term="Teched"/><category term="Themes"/><category term="UAC"/><category term="UDA"/><category term="User Device Affinity"/><category term="VMware vSphere"/><category term="Vbscript"/><category term="Version Control"/><category term="Virtual PC"/><category term="Visio"/><category term="WOL"/><category term="Win 7"/><category term="Windows"/><category term="Workflow"/><category term="Workpace"/><category term="Workspace"/><category term="Wrapper"/><category term="ZTIWindowsUpdate"/><category term="active setup"/><category term="add printer"/><category term="adobe acrobat x"/><category term="adobe photoshop elements"/><category term="agent"/><category term="amd-v"/><category term="arraylist"/><category term="automatic deployment rules"/><category term="automatic push"/><category term="backlog"/><category term="balloon"/><category term="bcdedit"/><category term="beta 2"/><category term="biometrics"/><category term="bios"/><category term="bits"/><category term="black screen"/><category term="boot failure"/><category term="broker history"/><category term="bug"/><category term="button"/><category term="central"/><category term="change prerequisites"/><category term="change primary"/><category term="classic control panel"/><category term="client"/><category term="client.msi"/><category term="clone"/><category term="collection"/><category term="collection migration"/><category term="combobox"/><category term="complex objects"/><category term="conditional logic"/><category term="config"/><category term="configure"/><category term="configuring"/><category term="copy"/><category term="corrupttemplatedatabaseexception"/><category term="countdown"/><category term="credentials"/><category term="custom"/><category term="customization"/><category term="customize"/><category term="dart"/><category term="ddm.box"/><category term="decrypt"/><category term="default user profile"/><category term="dependencies"/><category term="deploy"/><category term="deployment packages"/><category term="desktop"/><category term="digital signature"/><category term="directaccess"/><category term="discovery"/><category term="distribution point"/><category term="domain"/><category term="domain profile"/><category term="domino"/><category term="drawing"/><category term="driver"/><category term="drivers"/><category term="elevated privilege"/><category term="email"/><category term="encrypt"/><category term="encryption"/><category term="error 1603"/><category term="esx"/><category term="exchange"/><category term="exchange 2013. step by step"/><category term="external"/><category term="external adapter forwarding state"/><category term="fail"/><category term="fine tune"/><category term="fingerprint"/><category term="first look"/><category term="form"/><category term="generic failure"/><category term="hard-coded path"/><category term="http request"/><category term="hyperlink"/><category term="hyperv"/><category term="hypervisor"/><category term="image"/><category term="import"/><category term="initialize"/><category term="install.map"/><category term="installation package"/><category term="integration services"/><category term="intel-vt"/><category term="internal"/><category term="irql_not_less_or_equal"/><category term="iss"/><category term="jump list"/><category term="layout"/><category term="list printers"/><category term="litetouch"/><category term="locked"/><category term="loop"/><category term="management server"/><category term="map"/><category term="mapped drive"/><category term="migrate"/><category term="mslicensing"/><category term="mstscax"/><category term="multiple NIC"/><category term="multiple VM"/><category term="multiple disks"/><category term="multiple msi"/><category term="mx"/><category term="network"/><category term="network drive"/><category term="new-scv2v"/><category term="notification"/><category term="object migration"/><category term="operations manager"/><category term="outlook"/><category term="password"/><category term="picture password"/><category term="pin shortcut"/><category term="position"/><category term="primary"/><category term="pro"/><category term="publish"/><category term="pwoershell"/><category term="pxe boot"/><category term="query"/><category term="rdp"/><category term="rds"/><category term="register-objectevent"/><category term="remote desktop services"/><category term="remote install"/><category term="repair"/><category term="replacement"/><category term="reports"/><category term="rest API"/><category term="revoke"/><category term="row"/><category term="sccm 2007"/><category term="sccm. mdt"/><category term="schema"/><category term="scvmm"/><category term="secure"/><category term="sendconnector"/><category term="server"/><category term="session 0"/><category term="settings"/><category term="sfttray"/><category term="shortcut"/><category term="side by side"/><category term="side-by-side"/><category term="silent"/><category term="silent installation"/><category term="site signing certificate"/><category term="smbus"/><category term="sms_def.mof"/><category term="software"/><category term="software update groups"/><category term="sound"/><category term="sql"/><category term="sqlncli.msi"/><category term="start"/><category term="start menu"/><category term="start-process"/><category term="streaming"/><category term="subnet"/><category term="system.windows.form"/><category term="taskbar"/><category term="template"/><category term="theme"/><category term="there was a problem sending the command to the program"/><category term="token"/><category term="tool"/><category term="troubleshoot"/><category term="ubuntu"/><category term="unable to delete aplication"/><category term="unable to edit task sequence"/><category term="unable to log on"/><category term="unregister-event"/><category term="unused"/><category term="update"/><category term="use it or lose it"/><category term="user state virtualisation"/><category term="user tile"/><category term="variables"/><category term="virtual machine"/><category term="virtualization"/><category term="vmware view client"/><category term="waf"/><category term="wait-event"/><category term="winpe"/><category term="wmi"/><category term="word"/><title type='text'>Felipe Binotto&#39;s Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>140</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-489489356495118716</id><published>2021-11-09T15:44:00.001+10:00</published><updated>2021-11-09T15:44:30.298+10:00</updated><title type='text'>Building a hub between your lab and your internet devices using Azure</title><content type='html'>&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;I decided to make this post for a couple reasons. The first reason is to demonstrate how you can quickly build a hub between your own lab and your internet devices using Azure and how easy it is. No more port forwaring in your router, public IP addresses in your VMs, everything will route through the Azure gateway and you will get an any-to-any type of connectivity. The second reason is to demonstrate some important concepts such as:&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Site-to-Site VPN&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Point-to-Site VPN&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;BGP&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Azure AD authentication for VPN&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;Note that everything I will demonstrate here can also be done using Azure vWAN. However, this is cheaper and fit for lab and demonstration purposes.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;The following is the architecture overview of what we are trying to achieve.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2021-11-07/594bdc6c-2ef3-4d8d-8542-1eab85dc0acc.png&quot; style=&quot;border-radius: 4px; border: 1px solid rgb(235, 232, 232); box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 8px 0px, rgba(0, 0, 0, 0.19) 0px 6px 20px 0px; box-sizing: border-box; padding: 5px; vertical-align: middle; width: 623px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;The following are the prerequisites which I will not cover in this post and you should already have in place before you start:&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Azure subscription&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;On-premises Windows Server 2016 or higher VM with 2 network cards and internet access (the 2 network cards are only required if you want to route traffic to different subnets otherwise 1 network card should do)&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Enable Azure AD authentication on the VPN gateway. Instructions are documented&amp;nbsp;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/vpn-gateway/openvpn-azure-ad-tenant&quot; style=&quot;box-sizing: border-box; color: #007bff; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;HERE&lt;/a&gt;. This will create a new Enterprise Application in your Azure tenant&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;The following are the high-level steps on what we will do and the order we will do it:&lt;/p&gt;&lt;ol style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Install required modules&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Connect to Azure&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Create a Resource Group&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Create VNet and subnets&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Create a Local Network Gateway&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Create a Virtual Network Gateway&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Create a Connection&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Set up the on-premises VM as a router&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Create a Site-to-Site interface&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Set up BGP Router&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Configure BGP Peering&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Start the VPN connection&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Download the P2S VPN configuration from Azure&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Create a VM for testing&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Demonstrate any-to-any connectivity&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;Now we will start to take a look on how you can fully automate that deployment. The full script can be downloaded from&amp;nbsp;&lt;a href=&quot;https://github.com/fbinotto/RRAS-Azure-P2S-S2S&quot; style=&quot;box-sizing: border-box; color: #007bff; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;HERE&lt;/a&gt;&amp;nbsp;but I will break it down in this post so you understand what is happening. You must run this script from your on-premises VM if you don&#39;t want to make any modifications. However, once you understand it, you should be able to split the commands and play around.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Note:&amp;nbsp;&lt;/span&gt;in the scripts I defined the Subscription Name and Tenand Id as parameters. Here I will use them as variables.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Note:&amp;nbsp;&lt;/span&gt;disable Internet Enhanced Security Configuration (IEESC) for the administrator or you will have issues when authenticating to Azure. You can do that from Server Manager or using the following script. Restart your PowerShell session after running it.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;/p&gt;&lt;div style=&quot;background-color: #1e1e1e; box-sizing: border-box; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; height: auto !important; line-height: 19px; white-space: pre;&quot;&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #569cd6;&quot;&gt;function&lt;/span&gt; &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Disable-IEESC&lt;/span&gt; {&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$AdminKey&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&quot;HKLM:\SOFTWARE\Microsoft\Active Setup\ &lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #569cd6;&quot;&gt;`&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&amp;nbsp; &amp;nbsp; Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}&quot;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;google-auto-placed ap_container&quot; style=&quot;box-sizing: border-box; clear: both; height: auto; text-align: center; width: 688px;&quot;&gt;&lt;ins class=&quot;adsbygoogle adsbygoogle-noablate&quot; data-ad-client=&quot;ca-pub-3350438835020653&quot; data-ad-format=&quot;auto&quot; data-ad-status=&quot;filled&quot; data-adsbygoogle-status=&quot;done&quot; style=&quot;background-color: transparent; box-sizing: border-box; display: block; height: 280px; margin: auto;&quot;&gt;&lt;ins aria-label=&quot;Advertisement&quot; id=&quot;aswift_1_expand&quot; style=&quot;background-color: transparent; border: none; box-sizing: border-box; display: inline-table; height: 280px; margin: 0px; padding: 0px; position: relative; visibility: visible; width: 688px;&quot; tabindex=&quot;0&quot; title=&quot;Advertisement&quot;&gt;&lt;ins id=&quot;aswift_1_anchor&quot; style=&quot;background-color: transparent; border: none; box-sizing: border-box; display: block; height: 280px; margin: 0px; overflow: visible; padding: 0px; position: relative; visibility: visible; width: 688px;&quot;&gt;&lt;iframe allowfullscreen=&quot;true&quot; allowtransparency=&quot;true&quot; data-google-container-id=&quot;a!2&quot; data-google-query-id=&quot;CIv7tOi2ivQCFQjfaAod1TUCng&quot; data-load-complete=&quot;true&quot; frameborder=&quot;0&quot; height=&quot;280&quot; hspace=&quot;0&quot; id=&quot;aswift_1&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; name=&quot;aswift_1&quot; sandbox=&quot;allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation&quot; scrolling=&quot;no&quot; src=&quot;https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-3350438835020653&amp;amp;output=html&amp;amp;h=280&amp;amp;adk=3534276742&amp;amp;adf=1872610742&amp;amp;pi=t.aa~a.1290318371~i.2~rp.4&amp;amp;w=688&amp;amp;fwrn=4&amp;amp;fwrnh=100&amp;amp;lmt=1636431614&amp;amp;num_ads=1&amp;amp;rafmt=1&amp;amp;armr=3&amp;amp;sem=mc&amp;amp;pwprc=5547636647&amp;amp;psa=1&amp;amp;ad_type=text_image&amp;amp;format=688x280&amp;amp;url=https%3A%2F%2Fazuregear.com%2Fbuilding-hub-between-your-lab-and-your-internet-devices-using-azure%2F&amp;amp;flash=0&amp;amp;fwr=0&amp;amp;pra=3&amp;amp;rh=172&amp;amp;rw=688&amp;amp;rpe=1&amp;amp;resp_fmts=3&amp;amp;wgl=1&amp;amp;fa=27&amp;amp;adsid=ChAIgLKjjAYQn5vB_5vPlvQ9EkwAF3DfVk01yahUUnltscEgpjv4avpPNPmYsAoSyGbepH4cLPjdbswzMtUw1ZLvGi5C7ekhWColMLYLBJt8uCLOaIdZPwpAn8bux5fv&amp;amp;uach=WyJXaW5kb3dzIiwiMTQuMC4wIiwieDg2IiwiIiwiOTUuMC40NjM4LjY5IixbXSxudWxsLG51bGwsIjY0Il0.&amp;amp;dt=1636431614463&amp;amp;bpp=1&amp;amp;bdt=1168&amp;amp;idt=1&amp;amp;shv=r20211103&amp;amp;mjsv=m202111040101&amp;amp;ptt=9&amp;amp;saldr=aa&amp;amp;abxe=1&amp;amp;cookie=ID%3D3ea37f8c82223898-22745dee69c70094%3AT%3D1618642151%3ART%3D1618642151%3AS%3DALNI_MbdEPsPwbgs8yrDvopDgCO7elAt5w&amp;amp;prev_fmts=0x0&amp;amp;nras=2&amp;amp;correlator=4384140076794&amp;amp;frm=20&amp;amp;pv=1&amp;amp;ga_vid=1344258239.1636431614&amp;amp;ga_sid=1636431614&amp;amp;ga_hid=1908605752&amp;amp;ga_fc=0&amp;amp;u_tz=600&amp;amp;u_his=23&amp;amp;u_h=1080&amp;amp;u_w=1920&amp;amp;u_ah=1080&amp;amp;u_aw=1920&amp;amp;u_cd=24&amp;amp;adx=418&amp;amp;ady=2027&amp;amp;biw=1903&amp;amp;bih=952&amp;amp;scr_x=0&amp;amp;scr_y=0&amp;amp;eid=31062422%2C31062944%2C31063246%2C21067496&amp;amp;oid=2&amp;amp;pvsid=2789821156910234&amp;amp;pem=491&amp;amp;ref=https%3A%2F%2Fazuregear.com%2F&amp;amp;eae=0&amp;amp;fc=1408&amp;amp;brdim=3440%2C341%2C3440%2C341%2C1920%2C341%2C1920%2C1080%2C1920%2C952&amp;amp;vis=1&amp;amp;rsz=%7C%7Cs%7C&amp;amp;abl=NS&amp;amp;fu=128&amp;amp;bc=31&amp;amp;jar=2021-11-09-03&amp;amp;ifi=2&amp;amp;uci=a!2&amp;amp;btvi=1&amp;amp;fsb=1&amp;amp;xpc=M2e9LiiFLD&amp;amp;p=https%3A//azuregear.com&amp;amp;dtd=22&quot; style=&quot;border-style: initial; border-width: 0px; box-sizing: border-box; height: 280px; left: 0px; position: absolute; top: 0px; width: 688px;&quot; vspace=&quot;0&quot; width=&quot;688&quot;&gt;&lt;/iframe&gt;&lt;/ins&gt;&lt;/ins&gt;&lt;/ins&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Set-ItemProperty&lt;/span&gt; -Path &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$AdminKey&lt;/span&gt; -Name &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&quot;IsInstalled&quot;&lt;/span&gt; -Value &lt;span style=&quot;box-sizing: border-box; color: #b5cea8;&quot;&gt;0&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Stop-Process&lt;/span&gt; -Name Explorer&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;}&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;OK, let&#39;s get started. Let&#39;s start with the basics. The following lines of code will:&lt;/p&gt;&lt;ol style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Install the required modules&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Set some variables which I will explain when we are looking at the commands which use them. You are welcome to change their values as long as you do what your doing. You&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;must&amp;nbsp;&lt;/span&gt;provide values for $subName and $tenantId&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Prompt you for credentials to connect to your Azure subscription&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;/p&gt;&lt;div style=&quot;background-color: #1e1e1e; box-sizing: border-box; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; line-height: 19px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #6a9955;&quot;&gt;# Install required modules&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Install-PackageProvider&lt;/span&gt; -Name NuGet -Force&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Install-Module&lt;/span&gt; Az.Resources,Az.Compute,Az.Network -Force -Confirm:&lt;span style=&quot;box-sizing: border-box; color: #569cd6;&quot;&gt;$false&lt;/span&gt;&lt;/div&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #6a9955;&quot;&gt;# Set variables&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; line-height: 19px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$subName&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$tenantId&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$rgName&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;Connectivity&#39;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$location&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;AustraliaEast&#39;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vnetName&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;Global-Connect&#39;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$subnetName&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;IaaS&#39;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$subnetPrefix&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;172.16.0.0/24&#39;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$gatewaySubnetPrefix&lt;/span&gt; &amp;nbsp; &amp;nbsp;= &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;172.16.255.0/27&#39;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$myPIP&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= (&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Invoke-WebRequest&lt;/span&gt; &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;myexternalip.com&lt;/span&gt;/raw).content&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vnetAddressRange&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; = &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;172.16.0.0/16&#39;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vpnAddressPool&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;172.17.0.0/24&#39;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$sharedKey&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;mySuperS3cr3t123&#39;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; line-height: 19px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vmPassword&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;myC0mplexP@ssword&#39;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$localASN&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = &lt;span style=&quot;box-sizing: border-box; color: #b5cea8;&quot;&gt;64512&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$remoteASN&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= &lt;span style=&quot;box-sizing: border-box; color: #b5cea8;&quot;&gt;65515&lt;/span&gt;&lt;/div&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #6a9955;&quot;&gt;# Connect to Azure subscription&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Connect-AzAccount&lt;/span&gt; -Subscription &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$subName&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;Next we will start creating the foundation resources in this order:&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Create Resource Group&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Define Azure subnets&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Create VNet&lt;/li&gt;&lt;/span&gt;&lt;/ol&gt;&lt;div style=&quot;background-color: #1e1e1e; box-sizing: border-box; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; line-height: 19px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #6a9955;&quot;&gt;# Create Resource Group&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$rg&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #569cd6;&quot;&gt;@&lt;/span&gt;{&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;Name&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$rgName&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;Location&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$location&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;}&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;New-AzResourceGroup&lt;/span&gt; &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;@rg&lt;/span&gt;&lt;/div&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #6a9955;&quot;&gt;# Define subnets&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$subnet1&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;New-AzVirtualNetworkSubnetConfig&lt;/span&gt; -Name &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;GatewaySubnet&#39;&lt;/span&gt; `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-AddressPrefix &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$gatewaySubnetPrefix&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$subnet2&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;New-AzVirtualNetworkSubnetConfig&lt;/span&gt; -Name &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$subnetName&lt;/span&gt; `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-AddressPrefix &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$subnetPrefix&lt;/span&gt;&lt;/div&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #6a9955;&quot;&gt;# Create Virtual Network&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vnet&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;New-AzVirtualNetwork&lt;/span&gt; -Name &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vnetName&lt;/span&gt; -ResourceGroupName &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$rgName&lt;/span&gt; `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-Location &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$location&lt;/span&gt; -AddressPrefix &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vnetAddressRange&lt;/span&gt; -Subnet &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$subnet1&lt;/span&gt;, &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$subnet2&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;So far so good, nothing special.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;Now we are going to create the Local Network Gateway. This resource represents your on-premises router configuration. Note how we are not specifying our on-premises subnets. This is because they will be known to Azure via BGP peer route exchange.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;background-color: #1e1e1e; box-sizing: border-box; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; line-height: 19px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; line-height: 19px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #6a9955;&quot;&gt;# Create Local Network Gateway&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$localIP&lt;/span&gt; = (&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Get-NetIPAddress&lt;/span&gt; | &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Where-Object&lt;/span&gt; {&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$_&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;.InterfaceAlias&lt;/span&gt; -eq &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;Ethernet&#39;&lt;/span&gt; `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-and &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$_&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;.AddressFamily&lt;/span&gt; -eq &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;ipv4&#39;&lt;/span&gt;}).IpAddress&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$localGW&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;New-AzLocalNetworkGateway&lt;/span&gt; -Name HomeLab -ResourceGroupName &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$rgName&lt;/span&gt; `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-Location &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$location&lt;/span&gt; -GatewayIpAddress &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$myPIP&lt;/span&gt; -Asn &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$localASN&lt;/span&gt; `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-BgpPeeringAddress &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$localIP&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;Let&#39;s break down the important parameters being used in this command:&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;GatewayIpAddress:&lt;/span&gt;&amp;nbsp;this is your on-premises public IP address. Notice that when we define the variables in the beginning we are dynamically retrieving it using a HTTP request&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Asn:&lt;/span&gt;&amp;nbsp;ASN stands for Autonomous System Number. This is key for BGP routing. ASNs are assigned to organisations but if you don&#39;t have one like I don&#39;t, you can use one from the private range&amp;nbsp;64512 - 65534&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;BgpPeeringAddress:&lt;/span&gt;&amp;nbsp;this is your local IP address used for BGP.&amp;nbsp;BGP peers exchange routing information between them via BGP sessions. We will use the IP address of your first Ethernet device. You can also use APIPA addresses. By the way, BGP stands for Border Gateway Protocol&lt;/li&gt;&lt;/span&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;Next we create the Virtual Network Gateway. This is the Router representation in the Azure side.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;background-color: #1e1e1e; box-sizing: border-box; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; height: auto !important; line-height: 19px; white-space: pre;&quot;&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #6a9955;&quot;&gt;# Create Virtual Network Gateway&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$gwpip&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;New-AzPublicIpAddress&lt;/span&gt; -Name &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vnetName&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;-GWIP&quot;&lt;/span&gt; -ResourceGroupName &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$rgName&lt;/span&gt; `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-Location &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$location&lt;/span&gt; -AllocationMethod Dynamic&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vnet&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Get-AzVirtualNetwork&lt;/span&gt; -Name &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vnetName&lt;/span&gt; -ResourceGroupName &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$rgName&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$subnet&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Get-AzVirtualNetworkSubnetConfig&lt;/span&gt; -Name &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;GatewaySubnet&#39;&lt;/span&gt; -VirtualNetwork &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vnet&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;google-auto-placed ap_container&quot; style=&quot;box-sizing: border-box; clear: both; height: auto; text-align: center; width: 688px;&quot;&gt;&lt;ins class=&quot;adsbygoogle adsbygoogle-noablate&quot; data-ad-client=&quot;ca-pub-3350438835020653&quot; data-ad-format=&quot;auto&quot; data-ad-status=&quot;filled&quot; data-adsbygoogle-status=&quot;done&quot; style=&quot;background-color: transparent; box-sizing: border-box; display: block; height: 280px; margin: auto;&quot;&gt;&lt;ins aria-label=&quot;Advertisement&quot; id=&quot;aswift_2_expand&quot; style=&quot;background-color: transparent; border: none; box-sizing: border-box; display: inline-table; height: 280px; margin: 0px; padding: 0px; position: relative; visibility: visible; width: 688px;&quot; tabindex=&quot;0&quot; title=&quot;Advertisement&quot;&gt;&lt;ins id=&quot;aswift_2_anchor&quot; style=&quot;background-color: transparent; border: none; box-sizing: border-box; display: block; height: 280px; margin: 0px; overflow: visible; padding: 0px; position: relative; visibility: visible; width: 688px;&quot;&gt;&lt;iframe allowfullscreen=&quot;true&quot; allowtransparency=&quot;true&quot; data-google-container-id=&quot;a!3&quot; data-google-query-id=&quot;COm5p--2ivQCFRsnaAodpbcCxA&quot; data-load-complete=&quot;true&quot; frameborder=&quot;0&quot; height=&quot;280&quot; hspace=&quot;0&quot; id=&quot;aswift_2&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; name=&quot;aswift_2&quot; sandbox=&quot;allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation&quot; scrolling=&quot;no&quot; src=&quot;https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-3350438835020653&amp;amp;output=html&amp;amp;h=280&amp;amp;adk=3534276742&amp;amp;adf=2441746688&amp;amp;pi=t.aa~a.4186902421~i.4~rp.4&amp;amp;w=688&amp;amp;fwrn=4&amp;amp;fwrnh=100&amp;amp;lmt=1636431628&amp;amp;num_ads=1&amp;amp;rafmt=1&amp;amp;armr=3&amp;amp;sem=mc&amp;amp;pwprc=5547636647&amp;amp;psa=1&amp;amp;ad_type=text_image&amp;amp;format=688x280&amp;amp;url=https%3A%2F%2Fazuregear.com%2Fbuilding-hub-between-your-lab-and-your-internet-devices-using-azure%2F&amp;amp;flash=0&amp;amp;fwr=0&amp;amp;pra=3&amp;amp;rh=172&amp;amp;rw=688&amp;amp;rpe=1&amp;amp;resp_fmts=3&amp;amp;wgl=1&amp;amp;fa=27&amp;amp;adsid=ChAIgLKjjAYQn5vB_5vPlvQ9EkwAF3DfVk01yahUUnltscEgpjv4avpPNPmYsAoSyGbepH4cLPjdbswzMtUw1ZLvGi5C7ekhWColMLYLBJt8uCLOaIdZPwpAn8bux5fv&amp;amp;uach=WyJXaW5kb3dzIiwiMTQuMC4wIiwieDg2IiwiIiwiOTUuMC40NjM4LjY5IixbXSxudWxsLG51bGwsIjY0Il0.&amp;amp;dt=1636431614467&amp;amp;bpp=1&amp;amp;bdt=1171&amp;amp;idt=1&amp;amp;shv=r20211103&amp;amp;mjsv=m202111040101&amp;amp;ptt=9&amp;amp;saldr=aa&amp;amp;abxe=1&amp;amp;cookie=ID%3D3ea37f8c82223898-22745dee69c70094%3AT%3D1618642151%3ART%3D1618642151%3AS%3DALNI_MbdEPsPwbgs8yrDvopDgCO7elAt5w&amp;amp;prev_fmts=0x0%2C688x280&amp;amp;nras=3&amp;amp;correlator=4384140076794&amp;amp;frm=20&amp;amp;pv=1&amp;amp;ga_vid=1344258239.1636431614&amp;amp;ga_sid=1636431614&amp;amp;ga_hid=1908605752&amp;amp;ga_fc=0&amp;amp;u_tz=600&amp;amp;u_his=23&amp;amp;u_h=1080&amp;amp;u_w=1920&amp;amp;u_ah=1080&amp;amp;u_aw=1920&amp;amp;u_cd=24&amp;amp;adx=418&amp;amp;ady=4215&amp;amp;biw=1903&amp;amp;bih=952&amp;amp;scr_x=0&amp;amp;scr_y=413&amp;amp;eid=31062422%2C31062944%2C31063246%2C21067496&amp;amp;oid=2&amp;amp;psts=AGkb-H9XxEY5uBqKCwFMYawDK8qLsfK5w12AB4CgfRnpl-G2Ys0I96Ob06NmJ3nszTExJdIWzyhe1aeRurI&amp;amp;pvsid=2789821156910234&amp;amp;pem=491&amp;amp;ref=https%3A%2F%2Fazuregear.com%2F&amp;amp;eae=0&amp;amp;fc=1408&amp;amp;brdim=3440%2C341%2C3440%2C341%2C1920%2C341%2C1920%2C1080%2C1920%2C952&amp;amp;vis=1&amp;amp;rsz=%7C%7Cs%7C&amp;amp;abl=NS&amp;amp;fu=128&amp;amp;bc=31&amp;amp;jar=2021-11-09-03&amp;amp;ifi=3&amp;amp;uci=a!3&amp;amp;btvi=2&amp;amp;fsb=1&amp;amp;xpc=BsaTUMTV1Y&amp;amp;p=https%3A//azuregear.com&amp;amp;dtd=14464&quot; style=&quot;border-style: initial; border-width: 0px; box-sizing: border-box; height: 280px; left: 0px; position: absolute; top: 0px; width: 688px;&quot; vspace=&quot;0&quot; width=&quot;688&quot;&gt;&lt;/iframe&gt;&lt;/ins&gt;&lt;/ins&gt;&lt;/ins&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$gwipconfig&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;New-AzVirtualNetworkGatewayIpConfig&lt;/span&gt; -Name gwipconfig1 -SubnetId &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$subnet&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;.Id&lt;/span&gt; `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-PublicIpAddressId &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$gwpip&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;.Id&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vnetGW&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;New-AzVirtualNetworkGateway&lt;/span&gt; -Name &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vnetName&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;-GW&quot;&lt;/span&gt; -ResourceGroupName &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$rgName&lt;/span&gt; `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-Location &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$location&lt;/span&gt; -IpConfigurations &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$gwipconfig&lt;/span&gt; -GatewayType Vpn -EnableBGP &lt;span style=&quot;box-sizing: border-box; color: #569cd6;&quot;&gt;$true&lt;/span&gt; `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-VpnType RouteBased -GatewaySku VpnGw1 -Asn &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$remoteASN&lt;/span&gt; `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-VpnClientProtocol OpenVPN -VpnClientAddressPool &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vpnAddressPool&lt;/span&gt; `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; line-height: 19px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-AadTenantUri &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&quot;https://login.microsoftonline.com/&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$tenantId&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&quot;&lt;/span&gt; `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-AadIssuerUri &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&quot;https://sts.windows.net/&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$tenantId&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;/&quot;&lt;/span&gt; `&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-AadAudienceId &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;41b23e61-6c1e-4545-b367-cd054e0ed4b4&#39;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;Let&#39;s focus on the creation of the Virtual Network Gateway because there is where the important bits are.&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-size: 1rem;&quot;&gt;The following is the break down of the important parameters being used in this command:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 1rem;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;GatewayType:&lt;/span&gt;&amp;nbsp;here we are specifying this will be a Site-to-Site VPN gateway as opposed to an Express Route gateway&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 1rem;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;EnableBGP:&lt;/span&gt;&amp;nbsp;here we specify we will be using BGP&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;VpnType:&amp;nbsp;&lt;/span&gt;RouteBased as PolicyBased doesn&#39;t support P2S or BGP&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;GatewaySku:&amp;nbsp;&lt;/span&gt;you cannot use the Basic SKU as it doesn&#39;t support the OpenVPN or IKEv2 protocols for Azure AD authentication as well as BGP&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Asn:&amp;nbsp;&lt;/span&gt;this is the ASN in the Azure side&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;VpnClientProtocol:&amp;nbsp;&lt;/span&gt;we are going to use OpenVPN as it uses TLS and can penetrate firewalls, and it is the protocol that supports most Operating Systems such as Windows, Linux, MacOS, iOS and Android&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;VpnClientAddressPool:&amp;nbsp;&lt;/span&gt;this is the pool of addresses that will be used by the VPN clients&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;AadTenantUri:&amp;nbsp;&lt;/span&gt;this is the URI which contains your tenant details&lt;/li&gt;&lt;/span&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;Next, let&#39;s create a connection between our on-prem router and the Azure VPN gateway. Note that at this point the connection won&#39;t be established as we haven&#39;t yet configured the on-prem router.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;background-color: #1e1e1e; box-sizing: border-box; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; line-height: 19px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; line-height: 19px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; line-height: 19px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #6a9955;&quot;&gt;# Create Virtual Network Gateway Connection&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;New-AzVirtualNetworkGatewayConnection&lt;/span&gt; -Name &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #569cd6;&quot;&gt;$(&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vnetGW&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;.Name&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #569cd6;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #569cd6;&quot;&gt;$(&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$localGW&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;.Name&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #569cd6;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&quot;&lt;/span&gt; `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-ResourceGroupName &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$rgName&lt;/span&gt; -Location &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$location&lt;/span&gt; -VirtualNetworkGateway1 &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vnetGW&lt;/span&gt; `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-LocalNetworkGateway2 &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$localGW&lt;/span&gt; -ConnectionType IPsec -RoutingWeight &lt;span style=&quot;box-sizing: border-box; color: #b5cea8;&quot;&gt;10&lt;/span&gt; `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-SharedKey &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$sharedKey&lt;/span&gt; -EnableBgp &lt;span style=&quot;box-sizing: border-box; color: #569cd6;&quot;&gt;$true&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;Everything above is pretty self explanatory, just worth mentioning that we are enabling BGP in the connection.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;Now it is time to configure the local server. We first install the required Windows Features and then install site-site VPN and BGP Routing. The script sleeps for 3 seconds to allow the service to start before we run the next command.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;background-color: #1e1e1e; box-sizing: border-box; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #6a9955;&quot;&gt;# Install the required Windows Features and Install Remote Access&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Install-WindowsFeature&lt;/span&gt; -Name RemoteAccess, Routing, RSAT, RSAT-Role-Tools, `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;RSAT-RemoteAccess, RSAT-RemoteAccess-PowerShell&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Install-RemoteAccess&lt;/span&gt; -VpnType VpnS2S&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Start-Sleep&lt;/span&gt; &lt;span style=&quot;box-sizing: border-box; color: #b5cea8;&quot;&gt;3&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;Once we have those prerequisites in place, we can create the S2S connection from the on-premises side. Remember we have already created one in Azure and it is waiting for a connection from the other side.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;background-color: #1e1e1e; box-sizing: border-box; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; line-height: 19px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #6a9955;&quot;&gt;# Create S2S Connection&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$gwpip&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Get-AzPublicIpAddress&lt;/span&gt; -Name &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vnetName&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;-GWIP&quot;&lt;/span&gt; -ResourceGroupName &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$rgName&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Add-VpnS2SInterface&lt;/span&gt; -Name &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;Azure&#39;&lt;/span&gt; &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$gwpip&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;.IpAddress&lt;/span&gt; -Protocol IKEv2 `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-AuthenticationMethod PSKOnly -SharedSecret &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$sharedKey&lt;/span&gt; `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-IPv4Subnet &lt;span style=&quot;box-sizing: border-box; color: #569cd6;&quot;&gt;@&lt;/span&gt;(&lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #569cd6;&quot;&gt;$(&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vnetAddressRange&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #569cd6;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;:100&quot;&lt;/span&gt; ,&lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #569cd6;&quot;&gt;$(&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vpnAddressPool&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #569cd6;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;:100&quot;&lt;/span&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;Let&#39;s take a look in the important parameters from the command above:&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;$gwpip.IpAddress:&amp;nbsp;&lt;/span&gt;this is the public IP address of the Azure VPN Gateway&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;IPv4Subnet:&amp;nbsp;&lt;/span&gt;these are the Azure subnets which will be routed through that interface&lt;/li&gt;&lt;/span&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;Now it is time for the on-prem BGP configuration. We first create a BPG Router followed by a BGP Peer.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;background-color: #1e1e1e; box-sizing: border-box; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; line-height: 19px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #6a9955;&quot;&gt;# Create BGP Router and Peer&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Add-BgpRouter&lt;/span&gt; -BgpIdentifier &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$localIP&lt;/span&gt; -LocalASN &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$localASN&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Add-BgpPeer&lt;/span&gt; -Name AzureS2S -LocalIPAddress &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$localIP&lt;/span&gt; `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-PeerIPAddress &lt;span style=&quot;box-sizing: border-box; color: #569cd6;&quot;&gt;$&lt;/span&gt;(&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vnetGW&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;.BgpSettings.BgpPeeringAddress&lt;/span&gt;) `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-LocalASN &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$localASN&lt;/span&gt; -PeerASN &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$remoteASN&lt;/span&gt; -PeeringMode Automatic&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;Let&#39;s take a look in the important parameters from the command above:&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;BgpIdentifier:&amp;nbsp;&lt;/span&gt;this is the local on-prem IP, the same we have configured as the BGP Peer in the Azure Local Network Gateway&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;LocalASN:&amp;nbsp;&lt;/span&gt;this is the on-prem ASN, the same we have configured as the BGP Peer in the Azure Local Network Gateway&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;LocalIPAddress:&amp;nbsp;&lt;/span&gt;this is the local on-prem IP, the same we have configured as the BGP Peer in the Azure Local Network Gateway&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;PeerIPAddress:&amp;nbsp;&lt;/span&gt;this is the Azure BGP Peering address which we retrieve from the Virtual Network Gateway&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;RemoteASN:&amp;nbsp;&lt;/span&gt;this is the Azure ASN that we set when creating the Virtual Network Gateway&lt;/li&gt;&lt;/span&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;And finally, we can establish the connection.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;background-color: #1e1e1e; box-sizing: border-box; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Connect-VpnS2SInterface&lt;/span&gt; -Name &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;Azure&#39;&lt;/span&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;You can run the following commands to check everything is working:&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;background-color: #1e1e1e; box-sizing: border-box; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Get-VpnS2SInterface&lt;/span&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;The output will be similar to the following:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2021-11-05/e11302f8-ee8c-43a4-b911-227fe186f2ee.png&quot; style=&quot;border-radius: 4px; border: 1px solid rgb(235, 232, 232); box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 8px 0px, rgba(0, 0, 0, 0.19) 0px 6px 20px 0px; box-sizing: border-box; padding: 5px; vertical-align: middle; width: 698px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;div style=&quot;background-color: #1e1e1e; box-sizing: border-box; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Get-BgpPeer&lt;/span&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;The output will be similar to the following:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2021-11-05/79e433ff-84d2-4dc9-a445-fe7765aa8b32.png&quot; style=&quot;border-radius: 4px; border: 1px solid rgb(235, 232, 232); box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 8px 0px, rgba(0, 0, 0, 0.19) 0px 6px 20px 0px; box-sizing: border-box; padding: 5px; vertical-align: middle; width: 557px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;Now let&#39;s deploy an Azure VM so we can test connectivity between your router and the Azure VM.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;background-color: #1e1e1e; box-sizing: border-box; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; line-height: 19px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #6a9955;&quot;&gt;# Deploy Azure VM&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vmAdminUser&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&quot;LocalAdminUser&quot;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vmSecurePassword&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;ConvertTo-SecureString&lt;/span&gt; &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vmPassword&lt;/span&gt; -AsPlainText -Force&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$nic&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;New-AzNetworkInterface&lt;/span&gt; -Name &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;VM01-nic&#39;&lt;/span&gt; -ResourceGroupName &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$rgName&lt;/span&gt; `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-Location &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$location&lt;/span&gt; -SubnetId &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vnet&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;.Subnets&lt;/span&gt;[&lt;span style=&quot;box-sizing: border-box; color: #b5cea8;&quot;&gt;1&lt;/span&gt;].Id&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$credential&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;New-Object&lt;/span&gt; System.Management.Automation.PSCredential `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;(&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vmAdminUser&lt;/span&gt;, &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vmSecurePassword&lt;/span&gt;)&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vm&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;New-AzVMConfig&lt;/span&gt; -VMName &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;VM01&#39;&lt;/span&gt; -VMSize &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;Standard_DS1_v2&#39;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vm&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Set-AzVMOperatingSystem&lt;/span&gt; -VM &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vm&lt;/span&gt; -Windows -ComputerName &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;VM01&#39;&lt;/span&gt; `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-Credential &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$credential&lt;/span&gt; -ProvisionVMAgent -EnableAutoUpdate&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vm&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Add-AzVMNetworkInterface&lt;/span&gt; -VM &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vm&lt;/span&gt; -Id &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$nic&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;.Id&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vm&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Set-AzVMSourceImage&lt;/span&gt; -VM &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vm&lt;/span&gt; -PublisherName &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;MicrosoftWindowsServer&#39;&lt;/span&gt; `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-Offer &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;WindowsServer&#39;&lt;/span&gt; -Skus &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&#39;2016-Datacenter&#39;&lt;/span&gt; -Version latest&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;From the router VM you should be able to RDP to the Azure VM and vice-versa.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;From the router VM:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2021-11-05/0654e031-099a-4c2b-9376-e5a1d1d501c0.png&quot; style=&quot;border-radius: 4px; border: 1px solid rgb(235, 232, 232); box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 8px 0px, rgba(0, 0, 0, 0.19) 0px 6px 20px 0px; box-sizing: border-box; padding: 5px; vertical-align: middle; width: 451px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;From the Azure VM (make sure RDP is enabled in your router VM):&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2021-11-05/14838be0-95f6-4878-8581-4286351f0b53.png&quot; style=&quot;border-radius: 4px; border: 1px solid rgb(235, 232, 232); box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 8px 0px, rgba(0, 0, 0, 0.19) 0px 6px 20px 0px; box-sizing: border-box; padding: 5px; vertical-align: middle; width: 444px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;Cool, S2S is working. Now we need to download and configure the Azure VPN client to test P2S using Azure Authentication. First let&#39;s download the configuration file using our current authenticated session in the server.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;background-color: #1e1e1e; box-sizing: border-box; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #6a9955;&quot;&gt;# Downloads VPN Client Config&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vpnClient&lt;/span&gt; = &lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;New-AzVpnClientConfiguration&lt;/span&gt; -ResourceGroupName Connectivity `&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;-ResourceName &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vnetGW&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;.Name&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Invoke-WebRequest&lt;/span&gt; -Uri &lt;span style=&quot;box-sizing: border-box; color: #9cdcfe;&quot;&gt;$vpnClient&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;.VpnProfileSASUrl&lt;/span&gt; -OutFile .\vpnclientconfig.zip&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;Note that a ZIP file has been download to the current directory.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;Next you need to download the Azure VPN client from&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.microsoft.com/en-au/p/azure-vpn-client/9np355qt2sqb?activetab=pivot:overviewtab&quot; style=&quot;box-sizing: border-box; color: #007bff; font-size: 1rem; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;HERE&lt;/a&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;. Install it in a desktop, laptop or any device which is not connected to the router you have just configured. Copy and extract the ZIP file to this device.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;We can now configure the VPN Client as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2021-11-05/84750f62-b90a-4f7c-95de-313dea7d57a2.png&quot; style=&quot;border-radius: 4px; border: 1px solid rgb(235, 232, 232); box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 8px 0px, rgba(0, 0, 0, 0.19) 0px 6px 20px 0px; box-sizing: border-box; padding: 5px; vertical-align: middle; width: 392px;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 1rem;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2021-11-05/02bf9e16-4cb3-45c4-af24-017cf7a14d37.png&quot; style=&quot;border-radius: 4px; border: 1px solid rgb(235, 232, 232); box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 8px 0px, rgba(0, 0, 0, 0.19) 0px 6px 20px 0px; box-sizing: border-box; padding: 5px; vertical-align: middle; width: 663px;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 1rem;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2021-11-05/61c6a852-2cc1-46ed-96a0-d525e1dff49f.png&quot; style=&quot;border-radius: 4px; border: 1px solid rgb(235, 232, 232); box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 8px 0px, rgba(0, 0, 0, 0.19) 0px 6px 20px 0px; box-sizing: border-box; padding: 5px; vertical-align: middle; width: 392px;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 1rem;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;And finally, you should be able to connect using your Azure AD credentials (Conditional Access and MFA will apply if applicable).&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;You can also see you got an IP from the pool we have configured before and you got the default routes.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2021-11-05/278262b5-176a-4292-b1ec-c1637bb7c762.png&quot; style=&quot;border-radius: 4px; border: 1px solid rgb(235, 232, 232); box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 8px 0px, rgba(0, 0, 0, 0.19) 0px 6px 20px 0px; box-sizing: border-box; padding: 5px; vertical-align: middle; width: 698px;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;Now from your internet VPN client device you should be able to RDP to both the Router and the Azure VM. But what if you want to route to other devices on-premises which are in different subnets?&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;No problem. We just need to advertise the new routes and the BGP Router will let Azure know about them. In this example, I have a second network card (Ethernet 2) which routes traffic to the 10.0.2.0/24 subnet. So we can advertise the route with the following command.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;background-color: #1e1e1e; box-sizing: border-box; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #6a9955;&quot;&gt;# Add custom route&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #dcdcaa;&quot;&gt;Add-BgpCustomRoute&lt;/span&gt; -Interface &lt;span style=&quot;box-sizing: border-box; color: #ce9178;&quot;&gt;&quot;Ethernet 2&quot;&lt;/span&gt; -Network &lt;span style=&quot;box-sizing: border-box; color: #b5cea8;&quot;&gt;10.0&lt;/span&gt;.&lt;span style=&quot;box-sizing: border-box; color: #b5cea8;&quot;&gt;2.0&lt;/span&gt;/&lt;span style=&quot;box-sizing: border-box; color: #b5cea8;&quot;&gt;24&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;Once you reconnect the VPN, you will notice you have new routes as per below.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2021-11-08/c2fc2fff-11a3-4e3f-af37-e8e5b86ae65d.png&quot; style=&quot;border-radius: 4px; border: 1px solid rgb(235, 232, 232); box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 8px 0px, rgba(0, 0, 0, 0.19) 0px 6px 20px 0px; box-sizing: border-box; padding: 5px; vertical-align: middle; width: 369px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;You have the 10.0.2.0/24 route and you also get the gateway (10.0.2.45/32) and broadcast (10.0.2.255/32) addresses.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;From this point you can RDP from any-to-any as long as you have RDP enabled.&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;google-auto-placed ap_container&quot; style=&quot;background-color: white; box-sizing: border-box; clear: both; color: #212529; font-family: Oswald-Medium; font-size: 17px; height: auto; text-align: center; width: 688px;&quot;&gt;&lt;ins class=&quot;adsbygoogle adsbygoogle-noablate&quot; data-ad-client=&quot;ca-pub-3350438835020653&quot; data-ad-format=&quot;auto&quot; data-ad-status=&quot;filled&quot; data-adsbygoogle-status=&quot;done&quot; style=&quot;background-color: transparent; box-sizing: border-box; display: block; height: 280px; margin: auto;&quot;&gt;&lt;ins aria-label=&quot;Advertisement&quot; id=&quot;aswift_3_expand&quot; style=&quot;background-color: transparent; border: none; box-sizing: border-box; display: inline-table; height: 280px; margin: 0px; padding: 0px; position: relative; visibility: visible; width: 688px;&quot; tabindex=&quot;0&quot; title=&quot;Advertisement&quot;&gt;&lt;ins id=&quot;aswift_3_anchor&quot; style=&quot;background-color: transparent; border: none; box-sizing: border-box; display: block; height: 280px; margin: 0px; overflow: visible; padding: 0px; position: relative; visibility: visible; width: 688px;&quot;&gt;&lt;iframe allowfullscreen=&quot;true&quot; allowtransparency=&quot;true&quot; data-google-container-id=&quot;a!4&quot; data-google-query-id=&quot;CP6tlvS2ivQCFcSkaAodbPkKXw&quot; data-load-complete=&quot;true&quot; frameborder=&quot;0&quot; height=&quot;280&quot; hspace=&quot;0&quot; id=&quot;aswift_3&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; name=&quot;aswift_3&quot; sandbox=&quot;allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation&quot; scrolling=&quot;no&quot; src=&quot;https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-3350438835020653&amp;amp;output=html&amp;amp;h=280&amp;amp;adk=1692940168&amp;amp;adf=2424296669&amp;amp;pi=t.aa~a.787953945~i.84~rp.4&amp;amp;w=688&amp;amp;fwrn=4&amp;amp;fwrnh=100&amp;amp;lmt=1636431639&amp;amp;num_ads=1&amp;amp;rafmt=1&amp;amp;armr=3&amp;amp;sem=mc&amp;amp;pwprc=5547636647&amp;amp;psa=1&amp;amp;ad_type=text_image&amp;amp;format=688x280&amp;amp;url=https%3A%2F%2Fazuregear.com%2Fbuilding-hub-between-your-lab-and-your-internet-devices-using-azure%2F&amp;amp;flash=0&amp;amp;fwr=0&amp;amp;pra=3&amp;amp;rh=172&amp;amp;rw=688&amp;amp;rpe=1&amp;amp;resp_fmts=3&amp;amp;wgl=1&amp;amp;fa=27&amp;amp;adsid=ChAIgLKjjAYQn5vB_5vPlvQ9EkwAF3DfVk01yahUUnltscEgpjv4avpPNPmYsAoSyGbepH4cLPjdbswzMtUw1ZLvGi5C7ekhWColMLYLBJt8uCLOaIdZPwpAn8bux5fv&amp;amp;uach=WyJXaW5kb3dzIiwiMTQuMC4wIiwieDg2IiwiIiwiOTUuMC40NjM4LjY5IixbXSxudWxsLG51bGwsIjY0Il0.&amp;amp;dt=1636431614470&amp;amp;bpp=1&amp;amp;bdt=1173&amp;amp;idt=1&amp;amp;shv=r20211103&amp;amp;mjsv=m202111040101&amp;amp;ptt=9&amp;amp;saldr=aa&amp;amp;abxe=1&amp;amp;cookie=ID%3D3ea37f8c82223898-22745dee69c70094%3AT%3D1618642151%3ART%3D1618642151%3AS%3DALNI_MbdEPsPwbgs8yrDvopDgCO7elAt5w&amp;amp;prev_fmts=0x0%2C688x280%2C688x280&amp;amp;nras=4&amp;amp;correlator=4384140076794&amp;amp;frm=20&amp;amp;pv=1&amp;amp;ga_vid=1344258239.1636431614&amp;amp;ga_sid=1636431614&amp;amp;ga_hid=1908605752&amp;amp;ga_fc=0&amp;amp;u_tz=600&amp;amp;u_his=23&amp;amp;u_h=1080&amp;amp;u_w=1920&amp;amp;u_ah=1080&amp;amp;u_aw=1920&amp;amp;u_cd=24&amp;amp;adx=418&amp;amp;ady=11415&amp;amp;biw=1903&amp;amp;bih=952&amp;amp;scr_x=0&amp;amp;scr_y=7732&amp;amp;eid=31062422%2C31062944%2C31063246%2C21067496&amp;amp;oid=2&amp;amp;psts=AGkb-H9XxEY5uBqKCwFMYawDK8qLsfK5w12AB4CgfRnpl-G2Ys0I96Ob06NmJ3nszTExJdIWzyhe1aeRurI%2CAGkb-H8Amhj4pu58ANZ3mCBmn_wEj3pPAlcO6cgZLjBMgzjFAVsMLz-JcreZBm1eeneZPEww7Nmhu2Ev4sY&amp;amp;pvsid=2789821156910234&amp;amp;pem=491&amp;amp;ref=https%3A%2F%2Fazuregear.com%2F&amp;amp;eae=0&amp;amp;fc=1408&amp;amp;brdim=3440%2C341%2C3440%2C341%2C1920%2C341%2C1920%2C1080%2C1920%2C952&amp;amp;vis=1&amp;amp;rsz=%7C%7Cs%7C&amp;amp;abl=NS&amp;amp;fu=128&amp;amp;bc=31&amp;amp;jar=2021-11-09-03&amp;amp;ifi=4&amp;amp;uci=a!4&amp;amp;btvi=3&amp;amp;fsb=1&amp;amp;xpc=IiuOoEP82I&amp;amp;p=https%3A//azuregear.com&amp;amp;dtd=24666&quot; style=&quot;border-style: initial; border-width: 0px; box-sizing: border-box; height: 280px; left: 0px; position: absolute; top: 0px; width: 688px;&quot; vspace=&quot;0&quot; width=&quot;688&quot;&gt;&lt;/iframe&gt;&lt;/ins&gt;&lt;/ins&gt;&lt;/ins&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;I hope this was useful for you and that now you have a better understanding on how to use VPN S2S with BGP and P2S with Azure AD authentication.&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/489489356495118716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2021/11/building-hub-between-your-lab-and-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/489489356495118716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/489489356495118716'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2021/11/building-hub-between-your-lab-and-your.html' title='Building a hub between your lab and your internet devices using Azure'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-8099005935303153953</id><published>2020-09-17T17:07:00.004+10:00</published><updated>2020-09-17T17:07:16.842+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="automation"/><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="Log Analytics"/><category scheme="http://www.blogger.com/atom/ns#" term="Powershell"/><title type='text'>Log Analytics - Cross-workspace queries</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;span style=&quot;background-color: white; color: #212529; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 11pt;&quot;&gt;Log Analytics allows you to query up to 10 workspaces simultaneously as long as you have at least read permission on them. This is very handy in scenarios when you want to get the results from multiple workspaces at the same time, or when you want to correlate data living in different workspaces or in general when you are managing multiple workspaces even if they hosted in different subscriptions.&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;The way you do this from the Log Analytics workspace is using a query similar to the one below.&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;code style=&quot;background-color: white; box-sizing: border-box; color: #e83e8c; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.875px; word-break: break-word;&quot;&gt;union OfficeActivity, workspace(&#39;secondworkspace&#39;).OfficeActivity, workspace(&#39;thirdworkspace&#39;).OfficeActivity, workspace(&#39;ninethworkspace&#39;).OfficeActivity | where TimeGenerated &amp;gt; ago(1d)&lt;/code&gt;&lt;p lang=&quot;en-US&quot; style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;The problem with the query above is that you need to retype the workspace names every time and you have to specify the table name as well.&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;One possible solution would be to save the query to reuse it in the future but this is not the ideal solution considering the table is hardcoded in the query and most likely you will want to query different tables from time to time. Furthermore, if you add new workspaces, you will need to update the query.&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;google-auto-placed ap_container&quot; style=&quot;background-color: white; box-sizing: border-box; clear: both; color: #212529; font-family: Oswald-Medium; font-size: 17px; height: auto; text-align: center; width: 688px;&quot;&gt;&lt;ins class=&quot;adsbygoogle adsbygoogle-noablate&quot; data-ad-client=&quot;ca-pub-3350438835020653&quot; data-ad-format=&quot;auto&quot; data-adsbygoogle-status=&quot;done&quot; style=&quot;background-color: transparent; box-sizing: border-box; display: block; height: 0px; margin: auto;&quot;&gt;&lt;ins id=&quot;aswift_2_expand&quot; style=&quot;background-color: transparent; border: none; box-sizing: border-box; display: inline-table; height: 0px; margin: 0px; padding: 0px; position: relative; visibility: visible; width: 688px;&quot;&gt;&lt;ins id=&quot;aswift_2_anchor&quot; style=&quot;background-color: transparent; border: none; box-sizing: border-box; display: block; height: 0px; margin: 0px; opacity: 0; overflow: hidden; padding: 0px; position: relative; visibility: visible; width: 688px;&quot;&gt;&lt;iframe allowfullscreen=&quot;true&quot; allowtransparency=&quot;true&quot; data-google-container-id=&quot;a!2&quot; data-google-query-id=&quot;CPSZ3drP7-sCFXwerQYdI6oCpA&quot; data-load-complete=&quot;true&quot; frameborder=&quot;0&quot; height=&quot;280&quot; hspace=&quot;0&quot; id=&quot;aswift_2&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; name=&quot;aswift_2&quot; sandbox=&quot;allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation&quot; scrolling=&quot;no&quot; src=&quot;https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-3350438835020653&amp;amp;output=html&amp;amp;h=280&amp;amp;adk=1692940168&amp;amp;adf=1848691050&amp;amp;w=688&amp;amp;fwrn=4&amp;amp;fwrnh=100&amp;amp;lmt=1600326210&amp;amp;num_ads=1&amp;amp;rafmt=1&amp;amp;armr=3&amp;amp;sem=mc&amp;amp;pwprc=5547636647&amp;amp;psa=1&amp;amp;guci=2.2.0.0.2.2.0.0&amp;amp;ad_type=text_image&amp;amp;format=688x280&amp;amp;url=https%3A%2F%2Fazuregear.com%2Flog-analytics-cross-workspace-queries%2F&amp;amp;flash=0&amp;amp;fwr=0&amp;amp;pra=3&amp;amp;rh=172&amp;amp;rw=688&amp;amp;rpe=1&amp;amp;resp_fmts=3&amp;amp;wgl=1&amp;amp;fa=27&amp;amp;adsid=ChAI8JKM-wUQ0KzIhqWysqR2EkwA9rtQF7S-5_gHR_3-JOiwVZuiQQAvuZZfl75LDYRbFu8_KEC5grLdFKuVye70RH0ElAJm9B42cHUXMXmC4O2LPe8nB9EVHFz5OmR1&amp;amp;dt=1600326210814&amp;amp;bpp=3&amp;amp;bdt=617&amp;amp;idt=-M&amp;amp;shv=r20200914&amp;amp;cbv=r20190131&amp;amp;ptt=9&amp;amp;saldr=aa&amp;amp;abxe=1&amp;amp;cookie=ID%3D379b0ea72e1f7949%3AT%3D1597969753%3AS%3DALNI_MbkgupjQWfbE-OzPugI1a_Ae77o3g&amp;amp;prev_fmts=0x0%2C1200x280&amp;amp;nras=2&amp;amp;correlator=1654396412449&amp;amp;frm=20&amp;amp;pv=1&amp;amp;ga_vid=188684374.1600326210&amp;amp;ga_sid=1600326210&amp;amp;ga_hid=493481039&amp;amp;ga_fc=0&amp;amp;iag=0&amp;amp;icsg=139306&amp;amp;dssz=11&amp;amp;mdo=0&amp;amp;mso=0&amp;amp;u_tz=600&amp;amp;u_his=13&amp;amp;u_java=0&amp;amp;u_h=1080&amp;amp;u_w=1920&amp;amp;u_ah=1040&amp;amp;u_aw=1920&amp;amp;u_cd=24&amp;amp;u_nplug=3&amp;amp;u_nmime=4&amp;amp;adx=418&amp;amp;ady=896&amp;amp;biw=1903&amp;amp;bih=888&amp;amp;scr_x=0&amp;amp;scr_y=0&amp;amp;eid=42530671%2C21067054%2C21067347&amp;amp;oid=3&amp;amp;pvsid=1852103369565311&amp;amp;pem=851&amp;amp;ref=https%3A%2F%2Fazuregear.com%2F&amp;amp;rx=0&amp;amp;eae=0&amp;amp;fc=1408&amp;amp;brdim=-1919%2C285%2C-1919%2C285%2C1920%2C284%2C1918%2C1038%2C1920%2C888&amp;amp;vis=1&amp;amp;rsz=%7C%7Cs%7C&amp;amp;abl=NS&amp;amp;fu=8320&amp;amp;bc=31&amp;amp;jar=2020-09-17-06&amp;amp;ifi=2&amp;amp;uci=a!2&amp;amp;btvi=1&amp;amp;fsb=1&amp;amp;xpc=ArW0jPicUJ&amp;amp;p=https%3A//azuregear.com&amp;amp;dtd=19&quot; style=&quot;border-style: initial; border-width: 0px; box-sizing: border-box; height: 280px; left: 0px; position: absolute; top: 0px; width: 688px;&quot; vspace=&quot;0&quot; width=&quot;688&quot;&gt;&lt;/iframe&gt;&lt;/ins&gt;&lt;/ins&gt;&lt;/ins&gt;&lt;/div&gt;&lt;p lang=&quot;en-US&quot; style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Due to this existing limitation I have come up with the following PowerShell script which will retrieve all workspaces across all subscriptions you have access to and it will execute the query against the table you specify at runtime.&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;code style=&quot;background-color: white; box-sizing: border-box; color: #e83e8c; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.875px; word-break: break-word;&quot;&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;param (&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&amp;nbsp; &amp;nbsp; [Parameter(Mandatory)]$table,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&amp;nbsp; &amp;nbsp; [Parameter(Mandatory)]$inputQuery&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&amp;nbsp; &amp;nbsp; )&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;$subscriptions = Get-AzSubscription&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;$workspaces = @()&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;$buildQuery = $null&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;$workingWorkspaceId = &quot;Specify here the workspace id of the workspace you usually work from.&quot;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;foreach ($subscription in $subscriptions) {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&amp;nbsp; &amp;nbsp; Select-AzSubscription $subscription&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&amp;nbsp; &amp;nbsp; $workspace = Get-AzOperationalInsightsWorkspace | Select-Object -ExpandProperty Name&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&amp;nbsp; &amp;nbsp; $workspaces += $workspace&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&amp;nbsp; &amp;nbsp; $workspaces = $workspaces -notmatch &quot;specify here the name of the workspace you usually work from so that it is not queried twice&quot;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;foreach ($workspace in $workspaces) {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&amp;nbsp; &amp;nbsp; $buildQuery += &quot;,workspace(`&quot;$($workspace)`&quot;).$table&quot;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;$query = @&quot;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;union $table$buildQuery$inputQuery&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&quot;@&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;$output = (Invoke-AzOperationalInsightsQuery -WorkspaceId $workingWorkspaceId -Query $query).Results&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: Segoe UI;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;$output&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;box-sizing: border-box; font-family: Calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;/code&gt;&lt;p lang=&quot;en-US&quot; style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;The script is also available from my&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://github.com/fbinotto/PublicScripts/blob/master/Invoke-CrossQuery.ps1&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #007bff; text-decoration-line: none;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Github&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;To execute the script simply provide the table name and query you would like to use. For example:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p lang=&quot;en-US&quot; style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;.\Invoke-CrossQuery.ps1 -table &quot;OfficeActivity&quot; -inputQuery &quot;| where Time Generated &amp;gt; ago(1d)&quot;&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/8099005935303153953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2020/09/log-analytics-cross-workspace-queries.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/8099005935303153953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/8099005935303153953'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2020/09/log-analytics-cross-workspace-queries.html' title='Log Analytics - Cross-workspace queries'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-8895499831462123592</id><published>2020-09-11T23:12:00.006+10:00</published><updated>2020-09-11T23:12:56.063+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="Bicep"/><category scheme="http://www.blogger.com/atom/ns#" term="IaC"/><title type='text'>Azure Bicep</title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-family: Calibri; font-size: 11pt;&quot;&gt;Azure
Bicep is an open source project for deploying Azure resources declaratively. It
is an Azure Resource Manager (ARM) Domain Specific Language (DSL). Its main
purpose is to simplify the authoring of ARM templates with a cleaner syntax and
be easier to understand.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;border-width: 100%; direction: ltr;&quot;&gt;&lt;div style=&quot;direction: ltr; margin-left: 0in; margin-top: 0in; width: 7.6673in;&quot;&gt;&lt;div style=&quot;direction: ltr; margin-left: 0in; margin-top: 0in; width: 7.6673in;&quot;&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;The way
you compile Bicep code is by using the Bicep CLI. A Bicep VS Code extension is
also available to author the Bicep code. A Bicep file has a .bicep extension.&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;You can
install Bicep on Windows by running the following PowerShell script.&lt;/p&gt;

&lt;p style=&quot;color: #6a9955; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #72a1ba;&quot;&gt;$installPath&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;$env:USERPROFILE&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;\.bicep&quot;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #72a1ba;&quot;&gt;$installDir&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #989875;&quot;&gt;New-Item&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;-ItemType&amp;nbsp;Directory&amp;nbsp;-Path&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;$installPath&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;-Force&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #72a1ba;&quot;&gt;$installDir&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #989875;&quot;&gt;.Attributes&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;+=&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;Hidden&#39;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;(&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #989875;&quot;&gt;New-Object&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;Net.WebClient).DownloadFile(&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;https://github.com/Azure/bicep/releases/latest/download/bicep-win-x64.exe&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;$installPath&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;\bicep.exe&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #72a1ba;&quot;&gt;$currentPath&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;=&amp;nbsp;(&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #989875;&quot;&gt;Get-Item&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;-path&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;HKCU:\Environment&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;).GetValue(&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;Path&#39;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;DoNotExpandEnvironmentNames&#39;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #c586c0;&quot;&gt;if&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;(-not&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;$currentPath&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #989875;&quot;&gt;.Contains&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;(&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;%USERPROFILE%\.bicep&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;))&amp;nbsp;{&amp;nbsp;setx&amp;nbsp;PATH&amp;nbsp;(&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;$currentPath&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;;%USERPROFILE%\.bicep&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;)&amp;nbsp;}&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #c586c0;&quot;&gt;if&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;(-not&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;$env:path&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #989875;&quot;&gt;.Contains&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;(&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;$installPath&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;))&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;$env:path&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;+=&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;$installPath&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;}&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;bicep&amp;nbsp;--help&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;And you
can install the VS Code extension by running the following PowerShell script.&lt;/p&gt;

&lt;p style=&quot;color: #6a9955; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #72a1ba;&quot;&gt;$vsixPath&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;$env:TEMP&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;\vscode-bicep.vsix&quot;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;(&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #989875;&quot;&gt;New-Object&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;Net.WebClient).DownloadFile(&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;https://github.com/Azure/bicep/releases/latest/download/vscode-bicep.vsix&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;$vsixPath&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;code&amp;nbsp;--&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #989875;&quot;&gt;install-extension&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;$vsixPath&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #989875;&quot;&gt;Remove-Item&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;$vsixPath&lt;/span&gt;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;For Mac
or Linux visit &lt;a href=&quot;https://github.com/Azure/bicep/blob/master/docs/installing.md&quot;&gt;https://github.com/Azure/bicep/blob/master/docs/installing.md&lt;/a&gt;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;OK now
that you have it installed let&#39;s dig into some Bicep code. The example below
generates an ARM template to create a storage account with a unique name,
provides the option for LRS or GRS, creates a container and output some values.
This is a more complex example so that I can demonstrate how it matches the ARM
template parameters, variables and functions.&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #c586c0;&quot;&gt;param&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;location&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #a49571;&quot;&gt;resourceGroup&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;().&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cc6666;&quot;&gt;location&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #c586c0;&quot;&gt;param&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;namePrefix&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;sa&#39;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #c586c0;&quot;&gt;param&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;globalRedundancy&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #569cd6;&quot;&gt;bool&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #58ae93;&quot;&gt;true&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #c586c0;&quot;&gt;var&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;storageAccountName&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;${&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;namePrefix&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;}${&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #a49571;&quot;&gt;uniqueString&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;(&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #a49571;&quot;&gt;resourceGroup&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;().&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cc6666;&quot;&gt;id&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;)}&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #c586c0;&quot;&gt;var&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;storageSku&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;Standard_LRS&#39;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #c586c0;&quot;&gt;resource&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;storageAccount&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;Microsoft.Storage/storageAccounts@2019-06-01&#39;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;=&amp;nbsp;{&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #899c7f;&quot;&gt;name&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;storageAccountName&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #899c7f;&quot;&gt;location&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;location&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #899c7f;&quot;&gt;kind&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;Storage&#39;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #899c7f;&quot;&gt;sku&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;{&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #899c7f;&quot;&gt;name&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;globalRedundancy&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;?&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;Standard_GRS&#39;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;Standard_LRS&#39;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;}&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #c586c0;&quot;&gt;resource&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;blob&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;Microsoft.Storage/storageAccounts/blobServices/containers@2019-06-01&#39;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;=&amp;nbsp;{&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #899c7f;&quot;&gt;name&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;${&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;storageAccount&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cc6666;&quot;&gt;name&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;}&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;/static&#39;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;}&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #c586c0;&quot;&gt;output&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;storageId&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;storageAccount&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cc6666;&quot;&gt;id&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #c586c0;&quot;&gt;output&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;computedStorageName&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;storageAccount&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cc6666;&quot;&gt;name&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #c586c0;&quot;&gt;output&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;primaryEndpoint&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;storageAccount&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cc6666;&quot;&gt;properties&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cc6666;&quot;&gt;primaryEndpoints&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cc6666;&quot;&gt;blob&lt;/span&gt;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;OK so
let&#39;s break it down. Note that I won’t cover every single line, only the ones
which need to be understood.&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;color: #cc6666; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;First we
define a parameter and assign the resource group&#39;s location value. &lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #c586c0;&quot;&gt;param&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;location&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #a49571;&quot;&gt;resourceGroup&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;().&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cc6666;&quot;&gt;location&lt;/span&gt;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;In JSON
this would be equivalent to:&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;parameters&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;{&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;location&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;{&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;string&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;defaultValue&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;[resourceGroup().location]&quot;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot;&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;margin: 0in;&quot;&gt;&lt;span style=&quot;font-family: Calibri; font-size: 11.0pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;Then we
assign a value to the storageAccountName variable based on the value of the
namePrefix variable concatenated with a unique string based on the resource
group id. Note the use of interpolation ${}${} which is much simpler than using
concat or format in JSON.&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #c586c0;&quot;&gt;var&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;storageAccountName&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;${&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;namePrefix&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;}${&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #a49571;&quot;&gt;uniqueString&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;(&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #a49571;&quot;&gt;resourceGroup&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;().&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cc6666;&quot;&gt;id&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;)}&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;&lt;/span&gt;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;In JSON
this would be equivalent to:&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;variables&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;{&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;storageAccountName&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;[format(&#39;{0}{1}&#39;,&amp;nbsp;parameters(&#39;namePrefix&#39;),&amp;nbsp;uniqueString(resourceGroup().id))]&quot;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot;&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;Then we
declare the storage account. Note that we give it a name of storageAccount.
This is not the storage account name, this is a name which we can reference the
object later. The storage account name is specified inside the {}. Then we
specify the &#39;Resource Provider\Resource Type@API version&#39;. Also note the use of
the ternary operator ? to specify a condition which is equivalent to if true
then Standard_GRS else Standard_LRS.&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #c586c0;&quot;&gt;resource&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;storageAccount&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;Microsoft.Storage/storageAccounts@2019-06-01&#39;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;=&amp;nbsp;{&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #899c7f;&quot;&gt;name&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;storageAccountName&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #899c7f;&quot;&gt;location&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;location&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #899c7f;&quot;&gt;kind&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;Storage&#39;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #899c7f;&quot;&gt;sku&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;{&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #899c7f;&quot;&gt;name&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;globalRedundancy&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;?&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;Standard_GRS&#39;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;Standard_LRS&#39;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;}&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;In JSON
this would be equivalent to:&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;resources&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;[&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot;&gt;{&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;Microsoft.Storage/storageAccounts&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;apiVersion&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;2019-06-01&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;[variables(&#39;storageAccountName&#39;)]&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;location&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;[parameters(&#39;location&#39;)]&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;kind&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;Storage&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;sku&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;{&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;[if(parameters(&#39;globalRedundancy&#39;),&amp;nbsp;&#39;Standard_GRS&#39;,&amp;nbsp;&#39;Standard_LRS&#39;)]&quot;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot;&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot;&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;Then we
declare a new container which when compiled will automatically add the
dependsOn property because we are referencing a property of the resource via
the symbolic name. On ARM templates you must manually declare the dependencies.&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #c586c0;&quot;&gt;resource&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;blob&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;Microsoft.Storage/storageAccounts/blobServices/containers@2019-06-01&#39;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;=&amp;nbsp;{&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #899c7f;&quot;&gt;name&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&#39;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;${&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;storageAccount&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cc6666;&quot;&gt;name&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;}&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;/static&#39;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;}&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;In JSON
this would be equivalent to:&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot;&gt;{&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;Microsoft.Storage/storageAccounts/blobServices/containers&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;apiVersion&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;2019-06-01&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;[format(&#39;{0}/default/logs&#39;,&amp;nbsp;variables(&#39;storageAccountName&#39;))]&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;dependsOn&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;[&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;[resourceId(&#39;Microsoft.Storage/storageAccounts&#39;,&amp;nbsp;variables(&#39;storageAccountName&#39;))]&quot;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot;&gt;]&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot;&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;And
finally we have the outputs. The first line demonstrates a shortcut for the
resourceId property, the second line demonstrates calling a property of the
storage account using the symbolic name and the last line demonstrates what
would be equivalent to the reference function in the ARM template.&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #c586c0;&quot;&gt;output&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;storageId&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;storageAccount&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cc6666;&quot;&gt;id&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #c586c0;&quot;&gt;output&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;computedStorageName&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;storageAccount&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cc6666;&quot;&gt;name&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #c586c0;&quot;&gt;output&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;primaryEndpoint&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;storageAccount&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cc6666;&quot;&gt;properties&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cc6666;&quot;&gt;primaryEndpoints&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cc6666;&quot;&gt;blob&lt;/span&gt;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;In JSON
this would be equivalent to:&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;outputs&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;{&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;storageId&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;{&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;string&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;[resourceId(&#39;Microsoft.Storage/storageAccounts&#39;,&amp;nbsp;variables(&#39;storageAccountName&#39;))]&quot;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot;&gt;},&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;computedStorageName&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;{&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;string&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;[variables(&#39;storageAccountName&#39;)]&quot;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot;&gt;},&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;primaryEndpoint&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;{&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;string&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #72a1ba;&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #cb8f76;&quot;&gt;&quot;[reference(resourceId(&#39;Microsoft.Storage/storageAccounts&#39;,&amp;nbsp;variables(&#39;storageAccountName&#39;))).primaryEndpoints.blob]&quot;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot;&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;en-US&quot;&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;You can
use the &lt;a href=&quot;https://bicepdemo.z22.web.core.windows.net/&quot;&gt;Bicep Playground&lt;/a&gt;
to play around with Bicep code and see it translated to JSON in an ARM
template.&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;Once you
have your code sorted, you can compile it running the following command which
will generate a JSON file.&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;bicep&amp;nbsp;build&amp;nbsp;./storage.bicep&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;Then you
can deploy it as you would normally do.&lt;/p&gt;

&lt;p style=&quot;color: #979797; font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #989875;&quot;&gt;New-AzResourceGroup&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;-Name&amp;nbsp;storageAccounts&amp;nbsp;-Location&amp;nbsp;australiaeast&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;font-family: Consolas; font-size: 10.5pt; margin: 0in;&quot;&gt;&lt;span lang=&quot;en-AU&quot; style=&quot;color: #989875;&quot;&gt;New-AzResourceGroupDeployment&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;color: #979797;&quot;&gt;&amp;nbsp;-TemplateFile&amp;nbsp;./storage.json&amp;nbsp;-ResourceGroupName&amp;nbsp;storageAccounts&lt;/span&gt;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;If you
have already authored many ARM templates, don&#39;t worry as a decompiler is in the
roadmap to allow the templates to be translated into Bicep code.&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;To learn
more visit &lt;a href=&quot;https://github.com/Azure/bicep&quot;&gt;https://github.com/Azure/bicep&lt;/a&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/8895499831462123592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2020/09/azure-bicep.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/8895499831462123592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/8895499831462123592'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2020/09/azure-bicep.html' title='Azure Bicep'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-5618745491372074107</id><published>2020-09-01T15:59:00.002+10:00</published><updated>2020-09-10T16:36:18.019+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="automation"/><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="Azure Sentinel"/><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="Powershell"/><category scheme="http://www.blogger.com/atom/ns#" term="Sentinel"/><title type='text'>Automate Azure Sentinel Deployment</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;span style=&quot;font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Let&#39;s have a look how we can automate an Azure Sentinel deployment.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;box-sizing: border-box; direction: ltr; font-size: 16px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; direction: ltr; margin-left: 0in; margin-top: 0in; width: 6.1375in;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; direction: ltr; margin-left: 0in; margin-top: 0in; width: 6.1375in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;In this post I will show how you can automate the deployment of the following components using PowerShell and ARM templates:&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;ul style=&quot;box-sizing: border-box; direction: ltr; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;disc&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Resource Group&lt;/span&gt;&lt;/li&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Log Analytics workspace&lt;/span&gt;&lt;/li&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Azure Sentinel&lt;/span&gt;&lt;/li&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Alert Rules&lt;/span&gt;&lt;/li&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Workbooks&lt;/span&gt;&lt;/li&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Runbooks&lt;/span&gt;&lt;/li&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;/ul&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;In the end, as a bonus, I will show how you can put all together as part of an Azure DevOps pipeline.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;OK, let&#39;s get started. First thing we have to do is to create the Resource Group where we are deploying the Sentinel workspace and all Sentinel related resources.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;table class=&quot;table table-bordered&quot; style=&quot;border-collapse: collapse; border: 1px solid rgb(222, 226, 230); color: #212529; font-size: 16px; margin-bottom: 1rem; width: 681px;&quot;&gt;&lt;tbody style=&quot;box-sizing: border-box;&quot;&gt;&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td style=&quot;border: 1px solid rgb(222, 226, 230); box-sizing: border-box; padding: 0.75rem; vertical-align: top;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: black; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px; font-weight: bold;&quot;&gt;Note&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: black; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;: all scripts and templates used in this post can be found&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://github.com/fbinotto/Sentinel&quot; style=&quot;background-color: white; box-sizing: border-box; color: #007bff; font-family: calibri; font-size: 14.6667px; text-decoration-line: none;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;here in my GitHub.&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;box-sizing: border-box; color: black; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;From now on I will assume you have cloned it to your computer and your PowerShell window is set to the Sentinel directory.&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style=&quot;box-sizing: border-box; direction: ltr; font-size: 16px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; direction: ltr; margin-left: 0in; margin-top: 0in; width: 6.1375in;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; direction: ltr; margin-left: 0in; margin-top: 0in; width: 6.1375in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; color: #e83e8c; font-size: 12.25px; word-break: break-word;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;New-AzResourceGroup -Name Workspaces -Location australiaeast&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;And the following is the output.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-09-01/1e5b3c24-b799-4e4e-9932-238f368bd23b.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Next, let&#39;s deploy the Log Analytics workspace.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; color: #e83e8c; font-size: 12.25px; word-break: break-word;&quot;&gt;New-AzResourceGroupDeployment -Name SentinelWorkspace -ResourceGroupName Workspaces -TemplateFile .\Onboard\law-Sentinel.json -TemplateParameterObject @{workspaceName=&#39;SentinelWorkspaceAzureGear&#39;}&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;If successful, you should see something similar to the figure below.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-09-01/b8146589-394e-4045-9348-4af70369b83f.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Once we have an Azure Log Analytics workspace with the Azure Sentinel solution deployed, we can start deploying Sentinel artifacts such as alert rules, workbooks and runbooks.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Let&#39;s start by deploying Alert Rules. If you have already manually imported Alert Rules you know how tedious it can be. Execute the command below which will install the AzSentinel module created by&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://github.com/wortell/AZSentinel&quot; style=&quot;box-sizing: border-box; color: #007bff; text-decoration-line: none;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Pouyan Khabazi&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;and will import all Alert Rules inside the AlertRules folder to the nominated workspace.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; color: #e83e8c; font-size: 12.25px; word-break: break-word;&quot;&gt;.\Scripts\ImportAlerts.ps1 -workspaceName SentinelWorkspaceAzureGear -folderName .\AlertRules\&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Once the command completes, you can count your Alert Rules and you should see something like in the figure below.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-09-01/89c12718-a86d-4076-8238-2648a48bd5d9.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Now it is time to import the workbooks. Run the PowerShell command below.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; color: #e83e8c; font-size: 12.25px; word-break: break-word;&quot;&gt;.\Scripts\ImportWorkbooks.ps1 -ResourceGroup workspaces -WorkbooksFolder .\Workbooks\ -WorkbookSourceId /subscriptionId/4858bb33-d8c5-4a26-86dd-d85c9cf73bda/resourceGroup/workspaces/workspaceName/sentinelworkspaceazuregear&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;table class=&quot;table table-bordered&quot; style=&quot;border-collapse: collapse; border: 1px solid rgb(222, 226, 230); color: #212529; font-size: 16px; margin-bottom: 1rem; width: 681px;&quot;&gt;&lt;tbody style=&quot;box-sizing: border-box;&quot;&gt;&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td style=&quot;border: 1px solid rgb(222, 226, 230); box-sizing: border-box; padding: 0.75rem; vertical-align: top;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: black; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px; font-weight: bold;&quot;&gt;Note&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: black; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;: to retrieve the workspaceId you can navigate to the Azure Sentinel workspace, click on Workbooks and copy the URL starting at /subscriptionId/…&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style=&quot;box-sizing: border-box; direction: ltr; font-size: 16px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; direction: ltr; margin-left: 0in; margin-top: 0in; width: 6.1375in;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; direction: ltr; margin-left: 0in; margin-top: 0in; width: 6.1375in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;Once all workbooks are imported you will see something like the figure below.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-09-01/0baad7c4-4aae-497e-bdb1-46abfc8f0acf.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;And last but not least, let&#39;s import the Playbooks. Run the PowerShell command below.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; color: #e83e8c; font-size: 12.25px; word-break: break-word;&quot;&gt;.\Scripts\ImportPlaybooks.ps1 -ResourceGroup workspaces -PlaybooksFolder .\Playbooks\&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;table class=&quot;table table-bordered&quot; style=&quot;border-collapse: collapse; border: 1px solid rgb(222, 226, 230); color: #212529; font-size: 16px; margin-bottom: 1rem; width: 681px;&quot;&gt;&lt;tbody style=&quot;box-sizing: border-box;&quot;&gt;&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td style=&quot;border: 1px solid rgb(222, 226, 230); box-sizing: border-box; padding: 0.75rem; vertical-align: top;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: black; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px; font-weight: bold;&quot;&gt;Note:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: black; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;we are just importing the playbooks but you will still need to connect some of the steps with the required services such as Azure AD and Office 365.&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style=&quot;box-sizing: border-box; direction: ltr; font-size: 16px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; direction: ltr; margin-left: 0in; margin-top: 0in; width: 6.1375in;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; direction: ltr; margin-left: 0in; margin-top: 0in; width: 6.1375in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;The output should look like the figure below.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-09-01/c58c0d7b-8047-4c29-86f3-785c919ac31b.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;That&#39;s it. You have just shorten an Azure Sentinel deployment from a couple hours to just a few minutes.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Now to the bonus part. Let&#39;s consolidate all this steps in an Azure Pipeline so that we can do smart things such as:&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;ul style=&quot;box-sizing: border-box; direction: ltr; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;disc&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Require approval for deploying all or any of the steps&lt;/span&gt;&lt;/li&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Automatically deploy new artifacts based on new code committed to the repository&lt;/span&gt;&lt;/li&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Create dependencies between the tasks&lt;/span&gt;&lt;/li&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Track changes and document changes&lt;/span&gt;&lt;/li&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Redeploy to any environment&lt;/span&gt;&lt;/li&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;/ul&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;table class=&quot;table table-bordered&quot; style=&quot;border-collapse: collapse; border: 1px solid rgb(222, 226, 230); color: #212529; font-size: 16px; margin-bottom: 1rem; width: 681px;&quot;&gt;&lt;tbody style=&quot;box-sizing: border-box;&quot;&gt;&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td style=&quot;border: 1px solid rgb(222, 226, 230); box-sizing: border-box; padding: 0.75rem; vertical-align: top;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: black; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px; font-weight: bold;&quot;&gt;Note:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: black; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;in this post I will not cover how you can achieve any of the above as it is beyond the scope of what I want to cover. Perhaps in a future post.&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style=&quot;box-sizing: border-box; direction: ltr; font-size: 16px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; direction: ltr; margin-left: 0in; margin-top: 0in; width: 6.1375in;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; direction: ltr; margin-left: 0in; margin-top: 0in; width: 6.1375in;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;First step is to create a repository in your Azure DevOps project based on what is available in&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://github.com/fbinotto/Sentinel&quot; style=&quot;box-sizing: border-box; color: #007bff; text-decoration-line: none;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;my GitHub&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;like displayed below.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-09-01/57426ac3-e9e9-4ee1-8316-47c56c25c2a0.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 555px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Next create a new Release Pipeline and create new stages in a way they are setup like the below.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-09-01/810fe2cf-c503-4319-b294-c23590c9543d.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;For the Create Resource Group stage, add an ARM template deployment task and configure it with the following arguments.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-09-01/4f44e375-66a1-4fac-8de0-59e7f45908bf.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 570px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;For the Create Sentinel stage, add an ARM template deployment task and configure it with the following arguments.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-09-01/00a8222e-d5de-4ebd-9f1b-9477dcb361d9.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 520px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;For the Import Alert Rules, add an Azure PowerShell script task and configure it with the following arguments. Make sure you set it to use PowerShell Core.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-09-01/1eb27799-8cf5-4971-bfc3-25e278a833f4.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;For the Import Workbooks, add an Azure PowerShell script task and configure it with the following arguments. Make sure you set it to use PowerShell Core.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-09-01/40099d1f-1507-4d3c-af43-930423f4b5d7.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;For the Import Runbooks, add an Azure PowerShell script task and configure it with the following arguments. Make sure you set it to use PowerShell Core.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-09-01/719c2543-748b-4ac5-9298-2efa4bc946c0.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Last step is to create a Variable Group with the variables like in the Figure below. Once created, don&#39;t forget to link it to the pipeline. And we are done!&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-09-01/31b57fb3-7347-4746-b207-a5ec05d0120b.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Create a new Release for your pipeline and you should get the same results as when you run the scripts but now you can start adding the smarts :)&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;box-sizing: border-box; font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/5618745491372074107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2020/09/automate-azure-sentinel-deployment.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/5618745491372074107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/5618745491372074107'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2020/09/automate-azure-sentinel-deployment.html' title='Automate Azure Sentinel Deployment'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-6780480786073884206</id><published>2020-08-27T21:56:00.001+10:00</published><updated>2020-09-10T16:37:30.527+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Application Gateway"/><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="fine tune"/><category scheme="http://www.blogger.com/atom/ns#" term="OWASP"/><category scheme="http://www.blogger.com/atom/ns#" term="waf"/><title type='text'>Azure WAF Policy</title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Azure Web Application Firewall (WAF) on Azure Application Gateway provides centralized protection to web applications from common exploits and vulnerabilities. Web applications are increasingly targeted by malicious attacks that exploit commonly known vulnerabilities. SQL injection and cross-site scripting are among the most common attacks.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Azure WAF is getting better and better since V1 was released back in March 2017 as an additional capability to the Azure Application Gateway. In April 2019, V2 was made public available and WAF policies were released after that which extended the WAF capabilities.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;In this post, I will provide some tips on how to fine tune OWASP rules from the WAF perspective and also how to create custom rules, geo-fencing rules to be more specific. I say from the WAF perspective because we are going to disable specific rules which are blocking&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;legit traffic. In an ideal world you would remediate your application so that whatever is in the request doesn&#39;t match what is in the rule.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;So let&#39;s go ahead and create a new WAF Policy with a Custom rule.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Specify the basic details. In this example I will associate the policy with an Application Gateway.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-27/989b540c-477d-4eb9-8496-2c83b5b811cb.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Now specify the Policy settings. If you want to block traffic that matches the rule, make sure you set the Mode to Prevention.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-27/89213f2b-fdc9-41fd-ab51-3aacadf194ae.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;/p&gt;&lt;table class=&quot;table table-bordered&quot; style=&quot;border-collapse: collapse; border: 1px solid rgb(222, 226, 230); color: #212529; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; width: 681.333px;&quot;&gt;&lt;tbody style=&quot;box-sizing: border-box;&quot;&gt;&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td style=&quot;border: 1px solid rgb(222, 226, 230); box-sizing: border-box; padding: 0.75rem; vertical-align: top;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Important&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;: Currently the maximum request body size supported is 128KB. Anything larger than that will generate an error 413 Request Entity Too Large. To my knowledge, from the WAF side, the only way to avoid this error is to disable the request body inspection however in my view this defeats the purpose of the WAF. It will still evaluate header and cookie requests though.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;In the managed rules section select one of the rule sets. I will select OWASP_3.0 and later in this post I will demonstrate how to fine tune the available rules.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-27/2f6d4451-206d-429d-a26e-495308f6ee78.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 693px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;OK so now we got to the custom rules, where we are going to configure geo-fencing. Go ahead and click to Add a custom rule.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Configure the rule like in the figure below. I have set priority 1 so that it is always the first rule to be evaluated. I have also selected Australia and New Zealand as the countries. This rule will deny any traffic which is not coming from an IP Address in Australia or New Zealand.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-27/d30cb93a-0dbe-419f-9a6b-3f7c9ce17c93.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 559px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Now associate the policy with an Application Gateway or HTTP listener and we are done.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-27/ab6c7646-cc34-44d6-a893-5f43bbca058b.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 478px;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;You can validate the custom rule is working by checking the App Gateway WAF logs.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;In the example below we can see the rule was evaluated and it blocked the traffic.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-27/3da2f3f8-17a8-4b62-ac0e-ed62a020f14f.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;OK now that we are done with the custom rule, let&#39;s see how we can fine tune that OWASP 3.0 ruleset. If you expand the ruleset, you will see that all rules are enabled and they have an ID. For example, the rule &quot;Method is not allowed by policy&quot; has an ID 911100.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-27/eaa148db-bbb7-498b-ae95-34104834c95e.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;So what I recommend you do is to place your WAF in detection mode, get an application user to execute common tasks and get the public IP from where the tasks are being executed while you monitor the App Gateway WAF logs.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;In the example below, we searched for the public IP address and we found that traffic was getting blocked because it was matching the rule &quot;SQL Comment Sequence Detected&quot; with ruleId 942440.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-27/69c1aa7e-96c7-468b-a29f-427deb4e3aa9.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Now with the ruleId in hand, you can go back to the rule set and disable that specific rule.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-27/b0026dd0-7543-48d9-b29e-e6f4cf2922ea.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;In the next example we have 2 more matches.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-27/592c69c0-ac78-4899-b224-a575b7530bc5.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Continue the process until you don&#39;t have any more matches in your logs.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-27/192ab379-a5fe-420a-8453-245845034f63.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;As I said before, in an ideal world you would remediate your application so that it doesn&#39;t match any of the OWASP rules but in the real world that is often not possible therefore you have to disable some of the rules so that your application can function correctly while still having protection from the rules which are still enabled.&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/6780480786073884206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2020/08/azure-waf-policy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/6780480786073884206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/6780480786073884206'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2020/08/azure-waf-policy.html' title='Azure WAF Policy'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-912978431710588130</id><published>2020-08-21T10:39:00.002+10:00</published><updated>2020-09-10T16:37:50.294+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="Azure Sentinel"/><category scheme="http://www.blogger.com/atom/ns#" term="Multi"/><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><category scheme="http://www.blogger.com/atom/ns#" term="SIEM"/><category scheme="http://www.blogger.com/atom/ns#" term="Workspace"/><title type='text'>Multi-tenant or multi-workspace Azure Sentinel Workbooks</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;span style=&quot;font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;By default, workbooks in Azure Sentinel display data from a single tenant and a single log analytics workspace. This can be a problem when you are managing multiple Sentinels.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Javier Soriano created a nice article which can be found&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://techcommunity.microsoft.com/t5/azure-sentinel/making-your-azure-sentinel-workbooks-multi-tenant-or-multi/ba-p/1402357&quot; style=&quot;box-sizing: border-box; color: #007bff; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;HERE&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;, where he details how to make a workbook multi-tenant or multi-workspace.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;In this post, I will skip the explanations he makes and focus on a step-by-step configuration on making the workbook&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;multi-tenant or multi-workspace enabled.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Make sure you have access to the workspaces you are trying to visualize.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Let&#39;s get started. The first step is to go to the Workbooks and save one of the templates if you haven&#39;t already.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-02/f3404dd8-874d-4665-aea9-9be2cf3d095f.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 683.333px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Once saved, click to view the saved workbook.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-07-31/90938bc8-d8b9-4a52-afd5-777b14ea328b.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 341.667px;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Click on Edit.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-02/8fa594dd-dad3-4a66-b504-47ccb4c6af7e.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 683.333px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Click on Edit again but this time at the right side of the screen as displayed below.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-02/a3a7f75c-b623-42b3-aae2-cd11a9659425.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 683.333px;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Click on Add Parameter&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-02/1dec9edf-f66c-476e-97e8-08bfe30d3878.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 683.333px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Configure the new parameter as follows:&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Parameter name: Workspace&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Display name: Workspace&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Parameter type: Resource picker&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Required: True&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Allow multiple selections: True&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Get data from: Query&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-07-31/d8ee1111-80fb-47e2-8c23-bb63f2ff41a3.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 683.333px;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;For the query, select Azure Resource Graph as the Data source and on the Subscription dropdown click on Load all subscriptions if you want to select more than one subscription. Then select the subscriptions.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-07-31/7090ee08-f573-4ecc-871e-6597910fddc2.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 683.333px;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-07-31/70b40f73-40a9-4ba2-9f5e-031bdeb84a74.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 683.333px;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Now enter the following query and it should return all the available workspaces. Select to include all in the dropdown. Hit Save.&lt;/span&gt;&lt;/p&gt;&lt;code style=&quot;box-sizing: border-box; color: #e83e8c; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; word-break: break-word;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;;&quot;&gt;resources | where type =~ &#39;Microsoft.operationsmanagement/solutions&#39; | where name contains &#39;SecurityInsights&#39; | project id = tostring(properties.workspaceResourceId)&lt;/span&gt;&lt;/code&gt;&lt;div style=&quot;background-color: #fffffe; box-sizing: border-box; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-07-31/7284cb69-085a-4c5a-abef-7d7646da92a1.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 683.333px;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Click on Done editing.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-02/8e3d5b47-e20d-4df6-b360-22c9c6af8940.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 683.333px;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Once the workspace resource picker is done, we need to go to each of the visualizations / queries and change them to use the new workspace resource picker we have created.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Click on Edit on the visualization / query you want to change.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-02/f76754cf-4806-4709-8ae1-bc93bdee188a.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 683.333px;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Click on change query.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-02/9a628e6d-7259-4fc5-809a-f43087fd1152.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 683.333px;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;From the Log Analytics workspace dropdown, select Worskspace.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-02/9b88fcfe-eb36-4def-90d2-025a8fe405d9.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 683.333px;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Click on Done Editing.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-02/a9505300-948b-48cf-81ca-4b02de657e9a.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 170.833px;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Once we have updated all&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;visualizations / queries, click on Done Editing.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-02/e805d8f5-162a-4faf-acbf-b27bdda8a1a7.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 683.333px;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 1rem;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Save it.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-02/18662733-95e4-456c-b25f-7da4c3d8feef.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 683.333px;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 1rem;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Segoe UI&amp;quot;; font-size: 14px;&quot;&gt;Now you should be able to select multiple workspaces from the same tenant or across tenant as shown below.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-08-02/beaec80e-ef0d-4c1d-99ed-d4564986fc12.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 683.333px;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 1rem;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;&lt;br style=&quot;background-color: white; box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px;&quot; /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/912978431710588130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2020/08/multi-tenant-or-multi-workspace-azure.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/912978431710588130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/912978431710588130'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2020/08/multi-tenant-or-multi-workspace-azure.html' title='Multi-tenant or multi-workspace Azure Sentinel Workbooks'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-5772254230202006862</id><published>2020-07-27T15:24:00.000+10:00</published><updated>2020-07-27T15:24:20.762+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="Azure Sentinel"/><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><category scheme="http://www.blogger.com/atom/ns#" term="SIEM"/><title type='text'>Why Azure Sentinel?</title><content type='html'>&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; line-height: 1.5; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;Azure Sentinel is a great product and it has so much capability. In this post, I will try to summarise what I know and what I have learned so far but by no means it will cover all its extent.&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;﻿&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; line-height: 1.5; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;Before we start talking about Sentinel, it is worth noting that Microsoft is investing heavily on security (over $1B annual investment), with 3500+ global security experts and trillions of diverse signals for unparalleled intelligence.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-size: 16px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;Azure Sentinel is a cloud-native Security Information and Event Management (SIEM) and as a cloud solution it provides virtually infinite scalability. It also leverages Microsoft provided AI and automation to improve effectiveness. In addition, it is very simple to onboard and it provides immediate benefits.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 16px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;Sentinel is essentially a Log Analytics solution, it is built on top of Log Analytics.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;So now let&#39;s get to know more about where all the work with Sentinel takes place:&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;box-sizing: border-box; color: #212529; font-size: 17px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 18px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Azure Sentinel workspace&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;The figure below is how a workspace looks like.&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;card-image&quot; style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px;&quot;&gt;
&lt;div style=&quot;box-sizing: border-box; margin-bottom: 1rem;&quot;&gt;
&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-07-11/eb7653ab-e36f-4b4c-8a69-595bd2a67caa.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 688px;&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;Think about the workspace as a container for Azure Sentinel which contains the event database, rules and incidents. However not everything related to Azure Sentinel is part of a workspace. Playbooks which are Logic Apps are not part of a workspace as well as Azure Monitor Workbooks. They can still be managed from a workspace but they are separate resources.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 16px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;Sentinel also supports multiple workspaces. The following are some of the reasons to have multiple workspaces.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 16px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;Data owners need access to their data (although a better solution is to use RBAC instead of multiple workspaces in this case)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;Global SOC and Local SOC&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;MSSP and customers&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;Data ownership or sovereignty&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;Multiple Azure tenants&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;Fine grained retention setting (table level retention settings can be used instead of multiple workspaces)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;Separate billing&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;However the rule is the fewer workspaces the better. Use one workspace for each tenant, geo and subsidiary.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 16px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;Before we go any further, let&#39;s take a look in the roles of a SIEM.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 16px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;Collect&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;Detect&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;Investigate&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;Respond&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; text-align: center;&quot;&gt;
&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-07-26/fe5e910b-0517-4992-88d4-45c1a6823404.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 533px;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 16px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;OK now that we covered the roles of a SIEM, let&#39;s go in more detail on how Sentinel provides excellent value for each one of them. I will provide an overview of key components which make up Azure Sentinel and I will map each of them to the roles above which will, most of the time, match the flow on how you would work with Azure Sentinel.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 18px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Data connectors&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;First thing you do with a SIEM is collect data. Sentinel can collect data from a variety of sources such as:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;On-premises (Linux, FW, Windows, DNS, DHCP, files, etc)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;Office 365&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;Security Center&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;Azure AD&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;SaaS Applications&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;AWS&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;and the list goes on.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-07-26/47aedb86-633f-4eb3-bd7d-32b5e15a579f.png&quot; style=&quot;border-style: none; box-sizing: border-box; font-size: 16px; vertical-align: middle; width: 698px;&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;To send the data from systems to Azure Sentinel, agents are the recommended option and a collector proxy can be used if there isn&#39;t a direct connection to the cloud.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;For Windows systems if the agent can&#39;t be installed, a WEF (Windows Event Forwarding) connector can be used. For other systems where an agent can&#39;t be installed, a CEF or Syslog connector can be used. Other options are LogStash which a plugin is also available and custom connectors using PowerShell, Logic Apps or REST API using Ruby, Python, PHP, C# and Azure Functions.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 18px;&quot;&gt;Workbooks&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-07-26/2514bf1a-ba0b-4cb9-aaac-f7fcea5c8ba2.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 24px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;Querying the data ingested from your data sources can feed information to workbooks which provide visibility of your data and power interactive dashboards. Many workbooks are already available from the gallery, they can be customised or you can create your own. Workbooks are used for visualisation of your data and are good for investigation and reporting&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;The workbooks are based on Azure Monitor Workbooks to provide you with enhanced customisation and flexibility in designing your own workbook.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 18px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Analytics&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-07-26/458649e4-7559-4f23-9405-97be2d4841e1.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 24px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;Once you have the data, you can use the data for analysis, investigation and to hunt for issues, vulnerabilities and threats.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;There are 100+ built-in analytics rules and these rules are also customisable. In addition, you can create your own rules using the KQL query.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;These rules, once enabled, detect anomalies and suspect activity. The alerts generated from these rules create incidents.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 18px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Incidents&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-07-26/e43d1be8-d9cd-4893-ba2e-fa37991f85df.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 24px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;Incidents can be used to collect related alerts, events and bookmarks. Bookmarks are how you mark notable data then you can start an investigation from a bookmark or add to an existing incident. Then you can assign those incidents and keep track of them. Tags and comments can be added to incidents. In addition, you can also integrate with your ticketing system.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 18px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Hunting&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-07-26/e7132b24-e320-4286-82a1-aa973f8ccb93.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 24px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;Azure Sentinel provides many built-in hunting queries to get you started proactively looking for threats and anomalies that weren&#39;t detect by other mechanisms.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;For advanced hunting you can use Jupyter notebooks to query Azure Sentinel data or bring external data sources. However, you must use programming languages such as Python, SQL, KQL, R.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 18px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Playbooks&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-07-26/af72015b-2ad8-435a-b3fc-b287bdf47d28.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 24px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;Finally, you can trigger automated playbooks powered by Logic Apps based on alerts or incident investigations generated from the rules. From the playbooks you can do actions such as open a ticket in ServiceNow, trigger a Defender ATP investigation or trigger some sort of remediation.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 18px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Threat Intelligence&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-07-26/df57809a-8ef2-4e1c-96ca-abab0c02736c.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 653px;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 24px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;Sentinel also provides Threat Intelligence via Data Connectors. Threat Intelligence is information such as malicious URLs, IP addresses, file hashes, etc. Currently you can push threat intelligence data to Azure Sentinel from Threat Intelligence Platforms or from TAXII servers. Once you have that information, as an example you could create a rule to generate an incident if one of the IPs from the Threat Intelligence feed matches the IP of an Azure Activity event.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 18px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Notebooks&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;img src=&quot;https://azuregear.com/media/django-summernote/2020-07-26/e9e578c3-1e81-4ac5-832b-dc9b77cf71c4.png&quot; style=&quot;border-style: none; box-sizing: border-box; vertical-align: middle; width: 698px;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 24px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;Notebooks are used for advanced hunting and investigation. They allow API connections through programming languages such as Python and C# to allow for data manipulation and enrichment of the data.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;Jupyter notebooks extend the scope of what you can do with this data. It combines full programmability with a huge collection of libraries for machine learning, visualization, and data analysis.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 18px;&quot;&gt;Azure Sentinel Pricing&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;Azure Sentinel provides very competitive prices. There are two ways to pay for the Azure Sentinel service: Capacity Reservations and Pay-As-You-Go.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;As you would imagine there are big discounts when you do capacity reservation, between 50-60% discount comparing to pay-as-you-go prices.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;You pay for the data ingested into Azure Sentinel and also the data stored in the Log Analytics workspace. The data can be retained for free for 90 days, longer than that you are charged.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;In addition, you may be charged for Logic Apps if you run any automated responses and for Azure Databricks and/or Azure Machine Learning Studio if you bring your own machine learning modules.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 18px;&quot;&gt;Tips&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;Before I make my conclusion, I have a few tips that are good to know:&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem; margin-top: 0px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;When you assign a Service Principal to create a connection from Logic Apps to Azure Sentinel, make sure you assign the Service Principal the Azure Sentinel Reader role&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;You can create the Logic App with the Azure Sentinel connector using ARM templates&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;ARM templates can be used to deploy Azure Sentinel&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;You can use Azure Lighthouse to manage Azure Sentinel across multiple tenants&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;You can find on GitHub a PowerShell module to enable cmdlets for many Azure Sentinel operations&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;Office 365 audit logs, Azure activity logs and alerts from Microsoft Threat Protection can be ingested for free&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 18px;&quot;&gt;So why Azure Sentinel?&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;Azure Sentinel provides everything traditional SIEM tools provide and more. Leverage the several built-in connectors, pre-baked templates for workbooks, hunting and rules or make your own with full flexibility.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;Hackers out there are always inventing new ways to crack through the fences. Azure Sentinel not only provide you with the tools to investigate and block these threats but also the latest technology and a team of security specialists behind the scenes.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;Another great advantage of Azure Sentinel is that machine learning is built in the product to detect anomalies . Once you connect your data sources the learning begins. You can also bring your own machine learning modules.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #212529; font-family: Oswald-Medium; font-size: 17px; margin-bottom: 1rem;&quot;&gt;
&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;segoe ui&amp;quot;; font-size: 14px;&quot;&gt;All that in addition to the competitive prices makes it a very strong candidate to disrupt the SIEM landscape.&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/5772254230202006862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2020/07/why-azure-sentinel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/5772254230202006862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/5772254230202006862'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2020/07/why-azure-sentinel.html' title='Why Azure Sentinel?'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-5789028594823434537</id><published>2020-02-02T17:52:00.005+10:00</published><updated>2020-02-02T17:52:56.213+10:00</updated><title type='text'>28 ways to reduce your Azure costs</title><content type='html'>As an Azure consultant, the following are some examples of what I have helped our clients with:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Cloud architecture&lt;/li&gt;
&lt;li&gt;Cloud foundation&lt;/li&gt;
&lt;li&gt;Solution design&lt;/li&gt;
&lt;li&gt;Cloud deployment&lt;/li&gt;
&lt;li&gt;Cloud remediation&lt;/li&gt;
&lt;li&gt;Moving workloads to the cloud&lt;/li&gt;
&lt;li&gt;Consolidating subscriptions&lt;/li&gt;
&lt;li&gt;Automation&lt;/li&gt;
&lt;li&gt;Governance&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;Those are all very common and important types of engagements, however what has been in high demand for the last couple of years is the optimization of cloud spending. CIOs and managers are often challenged to explain why cloud spending is high and justify if the move to the cloud was the right call usually based on a single measurement – &lt;b&gt;COST&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;This article is all about ways to reduce and optimize the costs with workloads deployed specifically to Microsoft Azure.&lt;br /&gt;&lt;br /&gt;The following are &lt;b&gt;28 ways&lt;/b&gt; to decrease your cloud spending without compromising performance, availability or scalability.&lt;br /&gt;&lt;br /&gt;1.      The first and most obvious way of saving on your Azure spending is to keep your subscription(s) clean. Periodically perform a clean-up and remove resources which are not in use anymore.&lt;br /&gt;&lt;br /&gt;2.      Stop VMs on times when they are not required. Most dev and test workloads are not required to be running 24/7. Leverage Azure automation and resource tagging to automate VM shutdown and start up.&lt;br /&gt;&lt;br /&gt;3.      Build dev and test workloads on Dev/Test subscriptions. This type of subscription provides a discount on the price of selected resources such as Windows Virtual Machines. Basically, you pay the price of a Linux VM as you are not paying for the Windows license.&lt;br /&gt;&lt;br /&gt;4.      Leverage the Azure Hybrid Benefit. This allows you to use your spare Windows Server Standard licenses on your Azure Windows Servers or concurrently for Windows Server Datacentre licenses. This is also applicable for Azure SQL Servers and SQL Servers running on Azure VMs. Save up to 40%.&lt;br /&gt;&lt;br /&gt;5.      VM Reservations. Get a big discount when buying 1- or 3-years reservations for your VMs. Pay upfront or monthly. If you know some workloads will be running for at least 1 or 3 years buy reservations and save big!&lt;br /&gt;&lt;br /&gt;6.      Blob Storage Reservation. Buy reserved capacity in chunks of 100TB or 1PB for your storage accounts and Azure Data Lake storage and save up to 38%. Reservations are available for all storage tiers for 1 year or 3 years.&lt;br /&gt;&lt;br /&gt;7.      Azure SQL Database. Save on SQL Database compute costs by buying reserved vCores for 1 or 3 years. Note this is only available with the vCore model not DTU.&lt;br /&gt;&lt;br /&gt;8.      Azure SQL Data Warehouse. Save up to 65% on SQL Data Warehouse costs by buying reserved capacity for 1 or 3 years.&lt;br /&gt;&lt;br /&gt;9.      Azure Database for MySQL, PostgreSQL and MariaDB. 1-year reservations are available providing savings of up to 51%!&lt;br /&gt;&lt;br /&gt;10.  Azure Data Explorer. Save up to 30% with reservations for Azure Data Explorer.&lt;br /&gt;&lt;br /&gt;11.  Azure Cosmos DB. Save up to 65% on Cosmos DB by buying reserved throughput capacity for 1 or 3 years.&lt;br /&gt;&lt;br /&gt;12.  Premium SSD Managed Disks. Save up to 5% on 1-year reservations. It may not appear too much of a saving but premium disks are expensive and if you have a lot of them when adding up it will be a big cost cut. Reservations are only available for disks sizes of 1TB and larger.&lt;br /&gt;&lt;br /&gt;13.  Azure Databricks. Save on your Azure Databricks costs by pre-purchasing DBUs for 1 or 3 years.&lt;br /&gt;&lt;br /&gt;14.  Azure Red Hat OpenShift. Save on Red Hat OpenShift costs by pre-purchasing plans for 1 year.&lt;br /&gt;&lt;br /&gt;15.  Azure SUSE Linux. Save on SUSE Linux enterprise server costs by pre-purchasing SUSE software for 1 or 3 years.&lt;br /&gt;&lt;br /&gt;16.  Azure Red Hat Plans. Save on Red Hat costs by pre-purchasing plans for 1 or 3 years.&lt;br /&gt;&lt;br /&gt;17.  Azure VMware Solution by CloudSimple. Save on VMware CloudSimple Node Instance costs by buying reserved instances for 1 or 3 years.&lt;br /&gt;&lt;br /&gt;18.  App Services. Save on App Service Isolated Stamp Fee by buying a 3-years Reserved Instance.&lt;br /&gt;&lt;br /&gt;19.  Use Lifecycle policy on your storage accounts. This feature allows you to enforce when blobs should be moved to cheaper tiers such as the cold and archive tiers or even when blobs should be deleted. If you know your files are accessed infrequently after 3 months and rarely after 6 months you could create a policy which would automatically move those files reducing your storage costs significantly.&lt;br /&gt;&lt;br /&gt;20.  Backup your SQL workloads to block blob instead of page blob. Beginning with SQL 2016, you can now perform SQL backups to block blob which is much cheaper than page blob.&lt;br /&gt;&lt;br /&gt;21.  Resize VMs which are not consuming much of the allocated resources. Azure Advisor will usually tell you if you have any VMs which should be resized due to over allocation of resources.&lt;br /&gt;&lt;br /&gt;22.  Azure App Services. If you don’t need to scale your websites independently, consider consolidating them in the same App Plan.&lt;br /&gt;&lt;br /&gt;23.  Azure SQL Elastic Pools. Combine databases which are not often used or databases which have peak resource consumption in different times of the day to allow them to share the available resources and generate extra savings on database costs.&lt;br /&gt;&lt;br /&gt;24.  Use B-Series VMs. This VM family is cheaper than other VM families with same size. The B-series VMs are ideal for workloads that do not need the full performance of the CPU continuously, like web servers, proof of concepts, small databases and development build environments. These workloads typically have burstable performance requirements. The B-series provides you with the ability to purchase a VM size with baseline performance and the VM instance builds up credits when it is using less than its baseline. When the VM has accumulated credit, the VM can burst above the baseline using up to 100% of the vCPU when your application requires higher CPU performance.&lt;br /&gt;&lt;br /&gt;25.  Leverage Tags to keep track of your resources. Easily allocated cost codes to your resources and remove them together by searching by tag.&lt;br /&gt;&lt;br /&gt;26.  Azure Backup. When setting up Azure Backup policies, set the retention of backups to meet your requirements. Don’t set it forever just because you can.&lt;br /&gt;&lt;br /&gt;27.  Recovery Vaults. By default, Recovery Vaults are created with GRS storage which means backups stored there are replicated to another region. If you don’t require Geo Replication, change it to LRS which replicates it 3 times in the same datacentre. This is often enough for most companies and it cost half the price.&lt;br /&gt;&lt;br /&gt;28.  Log Analytics. Be careful with what time of events you collect. It is tempting to collect everything but as you know there is a cost associated with that collection and it is not cheap.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/5789028594823434537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2020/02/28-ways-to-reduce-your-azure-costs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/5789028594823434537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/5789028594823434537'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2020/02/28-ways-to-reduce-your-azure-costs.html' title='28 ways to reduce your Azure costs'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-4494482948254155482</id><published>2018-12-13T09:06:00.004+10:00</published><updated>2020-09-10T16:46:36.647+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="application"/><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="build"/><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="Pipeline"/><category scheme="http://www.blogger.com/atom/ns#" term="Release"/><category scheme="http://www.blogger.com/atom/ns#" term="VSTS"/><title type='text'>Azure DevOps - App Deployment</title><content type='html'>&lt;head&gt;
&lt;script async=&quot;&quot; src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({
          google_ad_client: &quot;ca-pub-3350438835020653&quot;,
          enable_page_level_ads: true
     });
&lt;/script&gt;
&lt;/head&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Welcome back! On part 1, I have shown you how to deploy your Azure resources with the power of Azure DevOps. Now it is time to deploy an application on top of that infrastructure. To make this more interesting I will setup continuous deployment so that we first deploy to a staging slot and if successful automatically deploy to production.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;If you haven&#39;t seen part 1 yet, you can find it here:&amp;nbsp;&lt;a href=&quot;https://www.linkedin.com/pulse/azure-devops-infrastructure-build-felipe-binotto/&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; color: #665ed0; margin: 0px; overflow-wrap: break-word; padding: 0px; text-decoration-line: none; touch-action: manipulation; vertical-align: baseline;&quot; target=&quot;_blank&quot;&gt;Azure DevOps - Infrastructure Build&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;For this example, I will use the simple-feed-reader App available from the Azure samples in GitHub.&amp;nbsp;&lt;a href=&quot;https://github.com/Azure-Samples/simple-feed-reader&quot; rel=&quot;nofollow noopener&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; color: #665ed0; margin: 0px; overflow-wrap: break-word; padding: 0px; text-decoration-line: none; touch-action: manipulation; vertical-align: baseline;&quot; target=&quot;_blank&quot;&gt;Simple-Feed-Reader App&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Clone it and make it available in your own repo.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;From the Azure DevOps project created earlier:&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on Builds&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on New pipeline&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-middle&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEToPtqZrOnZA/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=SeNpL5r-hOJ-Wcs-FABn-s1Eii5fKCcQtc9T1gbX6qQ&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEToPtqZrOnZA/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=SeNpL5r-hOJ-Wcs-FABn-s1Eii5fKCcQtc9T1gbX6qQ&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; display: block; font-size: 20px; height: auto; margin: 0px auto; max-width: 432px; outline: 0px; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/div&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on Use the visual designer&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-middle&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQF8e-Q_4Av8Lw/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=AuLDcHx4HNlLVJ2Pl7s35eQg6CX7Q41jAOFS9jRNsG8&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQF8e-Q_4Av8Lw/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=AuLDcHx4HNlLVJ2Pl7s35eQg6CX7Q41jAOFS9jRNsG8&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; display: block; font-size: 20px; height: auto; margin: 0px auto; max-width: 432px; outline: 0px; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/div&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on GitHub. A Service Point should already when you have set it up in Part 1&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select the simple-feed-reader repo&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select the master branch&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on Continue&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-middle&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEzCQXDp0KV5w/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=u5qZU2Wb0WD2xYQQDtWSXnjNi079MPi3gJkBwvxjsF4&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEzCQXDp0KV5w/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=u5qZU2Wb0WD2xYQQDtWSXnjNi079MPi3gJkBwvxjsF4&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; display: block; font-size: 20px; height: auto; margin: 0px auto; max-width: 432px; outline: 0px; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/div&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select ASP.NET&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-middle&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQESWhq6NSIRwg/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=p_D1mlc-U8lfxN_nDT1QrxR1D63A1uMSw9bLZlJJF8Y&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQESWhq6NSIRwg/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=p_D1mlc-U8lfxN_nDT1QrxR1D63A1uMSw9bLZlJJF8Y&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; display: block; font-size: 20px; height: auto; margin: 0px auto; max-width: 432px; outline: 0px; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Nothing has to be changed here.&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on Save &amp;amp; queue (3 times)&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEwZaUH-fSz3A/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=S79pryK0b8a-mZIelnUGhdlmfUyPb6MdG2S23c5J3fM&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEwZaUH-fSz3A/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=S79pryK0b8a-mZIelnUGhdlmfUyPb6MdG2S23c5J3fM&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on the link for the current build&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQH56qOzo74XKA/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=B8ruXHDHqoJo6bUHC5s2APbXv9NG3e1RtA2TwIYB2QY&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQH56qOzo74XKA/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=B8ruXHDHqoJo6bUHC5s2APbXv9NG3e1RtA2TwIYB2QY&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;After a couple minutes you will see all the steps have completed successfully and now you have an artifact which will be used by the Release pipeline to deploy the app to App Services. The artifact is just a zip file with your compiled application.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Now it is time to create the Release pipeline.&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on Release, New Release&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-middle&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEPgPNbyp_iLw/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=QVyE92f0-PqvYqbadr4QiNRZP_Yhpl5vESv4NcXlkHE&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEPgPNbyp_iLw/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=QVyE92f0-PqvYqbadr4QiNRZP_Yhpl5vESv4NcXlkHE&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; display: block; font-size: 20px; height: auto; margin: 0px auto; max-width: 432px; outline: 0px; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/div&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Apply the Azure App Service deployment&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-middle&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQHKRODXeJq_zA/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=I8ayjqzi5ROw76p5Aw683zAi60BMv7T0qnL2RigIL84&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQHKRODXeJq_zA/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=I8ayjqzi5ROw76p5Aw683zAi60BMv7T0qnL2RigIL84&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; display: block; font-size: 20px; height: auto; margin: 0px auto; max-width: 432px; outline: 0px; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/div&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Name it Staging&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-middle&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQH-5nWQ6nVlTQ/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=2RwTVHzMfvp3mlVzHSVVj7swWkobr_AOEPNtI21arac&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQH-5nWQ6nVlTQ/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=2RwTVHzMfvp3mlVzHSVVj7swWkobr_AOEPNtI21arac&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; display: block; font-size: 20px; height: auto; margin: 0px auto; max-width: 432px; outline: 0px; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/div&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on the jobs and tasks links on the Staging stage&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-middle&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQHgnW4f44n5fA/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=HEy8Z8iLFQ3zfxG1-85D_KZXvm8YR1soxhlulJg45Ck&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQHgnW4f44n5fA/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=HEy8Z8iLFQ3zfxG1-85D_KZXvm8YR1soxhlulJg45Ck&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; display: block; font-size: 20px; height: auto; margin: 0px auto; max-width: 432px; outline: 0px; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/div&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;If not already selected, select Staging&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select your subscription&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select Web App as the App type&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select your App Service created earlier&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-middle&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQENPhZ54KSJPQ/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=VlXu8gaGW4rFZZq2FNykR3tY3cuQoK0ARRdVbJhS3aA&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQENPhZ54KSJPQ/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=VlXu8gaGW4rFZZq2FNykR3tY3cuQoK0ARRdVbJhS3aA&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; display: block; font-size: 20px; height: auto; margin: 0px auto; max-width: 432px; outline: 0px; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/div&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select the Deploy Azure App Service task&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Tick the box to Deploy to slot&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select the Resource Group where the App Services is located&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select the Slot staging&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-middle&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQESEoBzKJZwJg/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=AJGaXiJO3vyAUFmOlmuB3jgUhBYHeDQfXgjNs4wANcA&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQESEoBzKJZwJg/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=AJGaXiJO3vyAUFmOlmuB3jgUhBYHeDQfXgjNs4wANcA&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; display: block; font-size: 20px; height: auto; margin: 0px auto; max-width: 432px; outline: 0px; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/div&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on Save&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Return to the Pipeline page&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEfkDQtNCYhcQ/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=Ehtf72rptR11O5DNqjdk18njsjOpobauMyR5hjWWu0g&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEfkDQtNCYhcQ/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=Ehtf72rptR11O5DNqjdk18njsjOpobauMyR5hjWWu0g&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Great, the Staging stage is done now. If you wanted we could deploy right now to the staging slot. But first let&#39;s create the production slot so that we can see the CD happening.&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Hover your mouse on the Staging stage and click on Add&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-middle&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQETRCcjoo3rHw/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=9ym07TmhvsCuv_cQjrsff6Xmf4WBT6PG5wAQbifDRh0&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQETRCcjoo3rHw/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=9ym07TmhvsCuv_cQjrsff6Xmf4WBT6PG5wAQbifDRh0&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; display: block; font-size: 20px; height: auto; margin: 0px auto; max-width: 432px; outline: 0px; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/div&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select Apply for the Azure App Service deployment&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-middle&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQFTgYdvfjE1IQ/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=PIsz9UkGI1MTuzzXKxZBPuVWcw47NZQltgqEdQilJjY&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQFTgYdvfjE1IQ/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=PIsz9UkGI1MTuzzXKxZBPuVWcw47NZQltgqEdQilJjY&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; display: block; font-size: 20px; height: auto; margin: 0px auto; max-width: 432px; outline: 0px; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/div&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Name it Production&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-middle&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQHYbOaiqSgrWQ/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=Jzvgo39DZ-As6cktzzLvOLGvTc3pVl1bJjUZmaUnsOg&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQHYbOaiqSgrWQ/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=Jzvgo39DZ-As6cktzzLvOLGvTc3pVl1bJjUZmaUnsOg&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; display: block; font-size: 20px; height: auto; margin: 0px auto; max-width: 432px; outline: 0px; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Now repeat all steps we did for Staging but without ticking the box to Deploy to a slot. Once you do that, return to the pipeline and it should look like the picture below.&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on Release and Create a Release. Then click on Create&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEBJkSObhtbpg/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=cfx7Xo9CvqJyj6TmkMju6mpVKj2Oo7RU-s6uwNSg2XM&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEBJkSObhtbpg/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=cfx7Xo9CvqJyj6TmkMju6mpVKj2Oo7RU-s6uwNSg2XM&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Once that is done you should see both stages completed successfully and you should be able to browse to your website in staging and production.&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-middle&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEFyxHCpKHBOA/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=81mX6n0-BBbMLuff0gBTWi7GAJ_4ZvQyiflvFyJmxkg&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEFyxHCpKHBOA/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=81mX6n0-BBbMLuff0gBTWi7GAJ_4ZvQyiflvFyJmxkg&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; display: block; font-size: 20px; height: auto; margin: 0px auto; max-width: 432px; outline: 0px; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-middle&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQHUJlbj1yw_AA/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=g1hFIw6FViOe757NYMaB_BhCmT6QM2Kz9Nzi-5MC0fo&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQHUJlbj1yw_AA/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=g1hFIw6FViOe757NYMaB_BhCmT6QM2Kz9Nzi-5MC0fo&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; display: block; font-size: 20px; height: auto; margin: 0px auto; max-width: 432px; outline: 0px; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-middle&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQGyL59Up1SsVw/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=7z1SS_Wo-GCNVad98ZmFujN3CIsAZ4yFLVX1yF_B5iQ&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQGyL59Up1SsVw/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=7z1SS_Wo-GCNVad98ZmFujN3CIsAZ4yFLVX1yF_B5iQ&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; display: block; font-size: 20px; height: auto; margin: 0px auto; max-width: 432px; outline: 0px; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;source serif pro&amp;quot;, serif; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Hopefully by now you know the basics of Azure DevOps and the power it provides to you. Keep tuned because soon I will post another article on how to deploy Azure Policies with Azure DevOps.&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/4494482948254155482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2018/12/azure-devops-app-deployment.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/4494482948254155482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/4494482948254155482'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2018/12/azure-devops-app-deployment.html' title='Azure DevOps - App Deployment'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-918119160637722888</id><published>2018-12-13T09:06:00.003+10:00</published><updated>2020-09-10T16:42:32.274+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="build"/><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="Infrastructure"/><category scheme="http://www.blogger.com/atom/ns#" term="Pipeline"/><category scheme="http://www.blogger.com/atom/ns#" term="Release"/><category scheme="http://www.blogger.com/atom/ns#" term="VSTS"/><title type='text'>Azure DevOps - Infrastructure Build</title><content type='html'>&lt;head&gt;
&lt;script async=&quot;&quot; src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({
          google_ad_client: &quot;ca-pub-3350438835020653&quot;,
          enable_page_level_ads: true
     });
&lt;/script&gt;
&lt;/head&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Azure DevOps former VSTS is so powerful that I have decided to write and share a bit on what you can achieve with it. In this Part 1, I will show how you can leverage Infrastructure-as-code (IaC) and Azure DevOps to build your entire infrastructure in a secure and modular fashion. In Part 2, we will then use Azure DevOps to build and deploy an application to the new infrastructure.&lt;/p&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;I will make it simple so our infrastructure will consist of:&lt;/p&gt;&lt;ul style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;1x Azure KeyVault&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;1x Azure App Service&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;1x Azure SQL DB&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;All the templates can be cloned from my GitHub repo.&lt;/p&gt;&lt;iframe allowfullscreen=&quot;true&quot; class=&quot;center&quot; data-li-src=&quot;https://www.linkedin.com/pulse/api/edit/embed?embed=%257B%2522type%2522%253A%2522link%2522%252C%2522title%2522%253A%257B%2522localized%2522%253A%257B%2522en_US%2522%253A%2522fbinotto%252FLinkedinDemo%2522%257D%257D%252C%2522description%2522%253A%257B%2522localized%2522%253A%257B%2522en_US%2522%253A%2522Contribute%2520to%2520fbinotto%252FLinkedinDemo%2520development%2520by%2520creating%2520an%2520account%2520on%2520GitHub.%2522%257D%257D%252C%2522provider%2522%253A%257B%2522name%2522%253A%2522GitHub%2522%252C%2522display%2522%253A%2522GitHub%2522%252C%2522url%2522%253A%2522http%253A%252F%252Fgithub.com%2522%257D%252C%2522request%2522%253A%257B%2522originalUrl%2522%253A%2522https%253A%252F%252Fgithub.com%252Ffbinotto%252FLinkedinDemo%2522%252C%2522finalUrl%2522%253A%2522https%253A%252F%252Fgithub.com%252Ffbinotto%252FLinkedinDemo%2522%257D%252C%2522images%2522%253A%255B%257B%2522url%2522%253A%2522https%253A%252F%252Favatars2.githubusercontent.com%252Fu%252F17077662%253Fs%253D400%2526v%253D4%2522%252C%2522width%2522%253A420%252C%2522height%2522%253A420%257D%252C%257B%2522url%2522%253A%2522https%253A%252F%252Favatars2.githubusercontent.com%252Fu%252F17077662%253Fs%253D60%2526v%253D4%2522%252C%2522width%2522%253A420%252C%2522height%2522%253A420%257D%255D%252C%2522data%2522%253A%257B%2522com.linkedin.treasury.Link%2522%253A%257B%2522url%2522%253A%2522https%253A%252F%252Fgithub.com%252Ffbinotto%252FLinkedinDemo%2522%252C%2522html%2522%253A%2522Contribute%2520to%2520fbinotto%252FLinkedinDemo%2520development%2520by%2520creating%2520an%2520account%2520on%2520GitHub.%2522%252C%2522width%2522%253A-1%252C%2522height%2522%253A-1%257D%257D%257D&amp;amp;signature=AdxWeJcTQfyjXxMR_rkbw_Dr3aZj&quot; frameborder=&quot;0&quot; height=&quot;274&quot; src=&quot;https://www.linkedin.com/pulse/api/edit/embed?embed=%257B%2522type%2522%253A%2522link%2522%252C%2522title%2522%253A%257B%2522localized%2522%253A%257B%2522en_US%2522%253A%2522fbinotto%252FLinkedinDemo%2522%257D%257D%252C%2522description%2522%253A%257B%2522localized%2522%253A%257B%2522en_US%2522%253A%2522Contribute%2520to%2520fbinotto%252FLinkedinDemo%2520development%2520by%2520creating%2520an%2520account%2520on%2520GitHub.%2522%257D%257D%252C%2522provider%2522%253A%257B%2522name%2522%253A%2522GitHub%2522%252C%2522display%2522%253A%2522GitHub%2522%252C%2522url%2522%253A%2522http%253A%252F%252Fgithub.com%2522%257D%252C%2522request%2522%253A%257B%2522originalUrl%2522%253A%2522https%253A%252F%252Fgithub.com%252Ffbinotto%252FLinkedinDemo%2522%252C%2522finalUrl%2522%253A%2522https%253A%252F%252Fgithub.com%252Ffbinotto%252FLinkedinDemo%2522%257D%252C%2522images%2522%253A%255B%257B%2522url%2522%253A%2522https%253A%252F%252Favatars2.githubusercontent.com%252Fu%252F17077662%253Fs%253D400%2526v%253D4%2522%252C%2522width%2522%253A420%252C%2522height%2522%253A420%257D%252C%257B%2522url%2522%253A%2522https%253A%252F%252Favatars2.githubusercontent.com%252Fu%252F17077662%253Fs%253D60%2526v%253D4%2522%252C%2522width%2522%253A420%252C%2522height%2522%253A420%257D%255D%252C%2522data%2522%253A%257B%2522com.linkedin.treasury.Link%2522%253A%257B%2522url%2522%253A%2522https%253A%252F%252Fgithub.com%252Ffbinotto%252FLinkedinDemo%2522%252C%2522html%2522%253A%2522Contribute%2520to%2520fbinotto%252FLinkedinDemo%2520development%2520by%2520creating%2520an%2520account%2520on%2520GitHub.%2522%252C%2522width%2522%253A-1%252C%2522height%2522%253A-1%257D%257D%257D&amp;amp;signature=AdxWeJcTQfyjXxMR_rkbw_Dr3aZj&quot; style=&quot;background: rgb(255, 255, 255); border-style: initial; border-width: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.9); display: block; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; margin: 4.4rem auto; outline: 0px; padding: 0px; text-align: center; vertical-align: baseline;&quot; title=&quot;fbinotto/LinkedinDemo&quot; width=&quot;744&quot;&gt;&lt;/iframe&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;First thing we need to do is to go to the Azure portal, create a new Azure DevOps project and browse to the project homepage. We also have to manually create an Azure KeyVault so that we can authorize it to be used by the project. We will use KeyVault to store our secrets. I have made available the KeyVault templates from the repo as well so that you can deploy them using PowerShell.&lt;/p&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Now that we have a DevOps project we can create our first Release pipeline. We don&#39;t need a Build pipeline as we are not compiling any code. That said, if you are using an external repo which is not available to be used in the Release pipeline, you can use the Build pipeline to create an artifact based on the source files from the repo and make it available to the Release pipeline.&lt;/p&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;The following pictures display the steps required to create the Release pipeline to build your infrastructure.&lt;/p&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;First thing let&#39;s authorize the KeyVault we created earlier to be used in our pipelines.&lt;/p&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on Library&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click to add a Variable Group&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEUERWa0vf56A/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=QkSA3OXJPPIwENd0XWtpbcrBXbhjzUbbUMbca7YmJRM&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEUERWa0vf56A/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=QkSA3OXJPPIwENd0XWtpbcrBXbhjzUbbUMbca7YmJRM&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Name the variable group&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Enable the Link secrets from an Azure key vault as variables&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select your subscription&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select the KeyVault&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on Authorize&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEqqtBU20n8xw/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=KIUlUPu5p9HwC1awnKAm1I6_emB8_52bKsNgd9aDRqM&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEqqtBU20n8xw/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=KIUlUPu5p9HwC1awnKAm1I6_emB8_52bKsNgd9aDRqM&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on Add&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select the available secrets&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on OK&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on Save&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQE6Md1XgIomcg/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=48SxDspNxemO2wsG7RHFAmbZ1kqaYdB5vVC2STVNHCY&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQE6Md1XgIomcg/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=48SxDspNxemO2wsG7RHFAmbZ1kqaYdB5vVC2STVNHCY&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Now let&#39;s create a new Release. Click on Releases and New pipeline.&lt;/p&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQGnrtXFKgvGmg/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=ZIklFRloCGJ_FJWWYI0tcoiopaQHgl2oxhoDnUjc_v4&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQGnrtXFKgvGmg/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=ZIklFRloCGJ_FJWWYI0tcoiopaQHgl2oxhoDnUjc_v4&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Click on Empty job.&lt;/p&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQF4WhEpKL38IA/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=6W7PDbawinerePLfpd7kU_8cfoz4IkwzxNttgoRLKGA&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQF4WhEpKL38IA/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=6W7PDbawinerePLfpd7kU_8cfoz4IkwzxNttgoRLKGA&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Name the stage &quot;Production&quot;&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Name the pipeline Infrastructure Deployment&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on Add an artifact so we can link our repo&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQHk3qUoJvhLkQ/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=uoZjWlUt-I5GEsCHYJS645Juo8VyUG2B2-mzGxM2HRU&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQHk3qUoJvhLkQ/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=uoZjWlUt-I5GEsCHYJS645Juo8VyUG2B2-mzGxM2HRU&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select GitHub&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Choose the source repository&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Choose the branch&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Choose the version&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Add it.&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQHMP9EQfMt9zA/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=rw9O9r9Di7onsdSn9Acda-Z34oDZbs83YsBb3dfkCks&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQHMP9EQfMt9zA/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=rw9O9r9Di7onsdSn9Acda-Z34oDZbs83YsBb3dfkCks&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Note that external repos like BitBucket are not available. In this case you have to create a Build pipeline linked to an external repository and then use the artifact created by selecting Build in the picture above.&lt;/p&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Now let&#39;s create the tasks which will deploy our resources.&lt;/p&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on the link for jobs and tasks&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEZyNuo4Pw7cw/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=C6TUm8TjIsn7_aSC4KF3qV7GujtQBC8d_gUVDVMZ03A&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEZyNuo4Pw7cw/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=C6TUm8TjIsn7_aSC4KF3qV7GujtQBC8d_gUVDVMZ03A&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;The first task we will add is a task to retrieve our secrets so that we can query them when building our resources.&lt;/p&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on the + symbol over the Agent job&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Search for key vault&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on Add twice. We will need to retrieve the secrets twice as we are placing the connecting string of the DB in the KeyVault and we will need to fetch it before building the WebApp.&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQGGHSv2Tl3Whw/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=Ozih9l65H1qU5qXRwOWHRjh5ote245jfT1jzU9KSafY&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQGGHSv2Tl3Whw/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=Ozih9l65H1qU5qXRwOWHRjh5ote245jfT1jzU9KSafY&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select your subscription&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select the KeyVault&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQH6ub4s1PWPqg/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=SxFpqt9cfCjkZS4E6y7LoseECT-SehAWXmcz8dyoeEo&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQH6ub4s1PWPqg/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=SxFpqt9cfCjkZS4E6y7LoseECT-SehAWXmcz8dyoeEo&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Configure both tasks the same.&lt;/p&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Now let&#39;s add the tasks to build the database and the WebApp.&lt;/p&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on the + symbol on top of the Agent job&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Search for resource&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Add 2 Azure Resource Group Deployment&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEmb1voEUHi9w/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=ZA1eAU7Qxmmsonu7CyqRp0HhXChNNtgW7WuDMkW12vQ&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEmb1voEUHi9w/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=ZA1eAU7Qxmmsonu7CyqRp0HhXChNNtgW7WuDMkW12vQ&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select the new Azure Resource Group Deployment&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Name it Provision DB&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select your subscription&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select a Resource Group or type it if you want a new one provisioned&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select the location&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select the DB template&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select the DB parameter template&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Enter -administratorLoginPassword $(sqlpass) in the Override template parameter. Here we are passing the sql admin password stored in KeyVault as a parameter&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQERb5cy0nQiJQ/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=LqXuW1r9OgqmQ8_9PeeB93drW9uWoZKqhyKulPZikc4&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQERb5cy0nQiJQ/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=LqXuW1r9OgqmQ8_9PeeB93drW9uWoZKqhyKulPZikc4&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Now let&#39;s configure the WebApp.&lt;/p&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select the next Azure Resource Group Deployment task&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Name it Provision WebApp&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select your subscription&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select a Resource Group or type it if you want a new one provisioned&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select the location&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select the WebApp template&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select the WebApp parameter template&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Enter -connectionString &quot;$(connectionString)&quot; in the Override template parameter. Here we are passing the connection string to the DB stored in KeyVault as a parameter&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQECgpYSEB1E6g/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=_BMPGuDYYAyRhaTbgUv6ZtS8ZAsAJYULps3BxP5u7L8&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQECgpYSEB1E6g/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=_BMPGuDYYAyRhaTbgUv6ZtS8ZAsAJYULps3BxP5u7L8&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Note that when you are passing variables as parameters you must enclose them in $() and if there are spaces in the value stored in the variable you must enclose them in &quot;$()&quot;&lt;/p&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Move one of the KeyVault tasks after the Provision DB&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on Save. Click OK&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on Release. Create a Release.&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQFem5LvtVXjWQ/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=2tSTuzCtcJH0bsqsi3Denw45_SB_v0IoC_UN1WzvWKY&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQFem5LvtVXjWQ/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=2tSTuzCtcJH0bsqsi3Denw45_SB_v0IoC_UN1WzvWKY&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Select the version (usually you leave the default which is the latest commit)&lt;/li&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on Create&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQHm1sY53U1QLQ/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=AQydZ8YhzYXrZZIMO0bAU6zHHH7tqxOs9KYFrjR7eP4&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQHm1sY53U1QLQ/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=AQydZ8YhzYXrZZIMO0bAU6zHHH7tqxOs9KYFrjR7eP4&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Now you will see a link to the Release job where you can follow the progress and see logs.&lt;/p&gt;&lt;ol style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; margin: 2.4rem 0px 2.4rem 3.2rem; padding: 0px; vertical-align: baseline;&quot;&gt;Click on it&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQHEboZSwzxkIA/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=Ak91onVXoAvpryFKx3tmki-0--ZRXK7OgKl4o0gLeQM&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQHEboZSwzxkIA/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=Ak91onVXoAvpryFKx3tmki-0--ZRXK7OgKl4o0gLeQM&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Once it is finished you will see the screen below. You can click on Logs to investigate any issues or to see real-time output of the tasks.&lt;/p&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEb3nK8BsUcXw/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=mIUR73vDcuXednTc8VjNXK_whsJPw89oTndct6p5PfY&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEb3nK8BsUcXw/article-inline_image-shrink_1000_1488/0?e=1605139200&amp;amp;v=beta&amp;amp;t=mIUR73vDcuXednTc8VjNXK_whsJPw89oTndct6p5PfY&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;If you want to enable continuous deployment you can set it to trigger a new build when new code is committed to your repo. As an example you could add a new slot to your WebApp template and once committed the deployment is automatically triggered.&lt;/p&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEvvTql1UA2ag/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=PnmXR8sTvm-aQTmK17x6EuYG5QmyTlsyKUSBTuKAA2o&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQEvvTql1UA2ag/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=PnmXR8sTvm-aQTmK17x6EuYG5QmyTlsyKUSBTuKAA2o&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;You can also deploy on a schedule.&lt;/p&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQFpEIEf4tH7YA/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=54L9rDkKk3ql8HBTvr0P7Ha2t9JLjOJQLuT-Vb0sKyo&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQFpEIEf4tH7YA/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=54L9rDkKk3ql8HBTvr0P7Ha2t9JLjOJQLuT-Vb0sKyo&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;And you can define pre-deployment approvals. The deployment only starts once one or more approvers give the go ahead.&lt;/p&gt;&lt;div class=&quot;slate-resizable-image-embed slate-image-embed__resize-full-width&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; position: relative; vertical-align: baseline;&quot;&gt;&lt;img data-li-src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQGpyIes-4x68Q/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=gsb7XU5XAIpnRhaN7mz57YdNrue07IsFSUDyn_GrH7U&quot; data-media-urn=&quot;&quot; src=&quot;https://media-exp1.licdn.com/dms/image/C5612AQGpyIes-4x68Q/article-inline_image-shrink_1500_2232/0?e=1605139200&amp;amp;v=beta&amp;amp;t=gsb7XU5XAIpnRhaN7mz57YdNrue07IsFSUDyn_GrH7U&quot; style=&quot;background: transparent; border: 0px; box-sizing: inherit; font-size: 20px; height: auto; margin: 0px; max-width: 100%; outline: 0px; padding: 0px; vertical-align: baseline; width: 744px;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;That&#39;s it! As you can see this is a simple example but it can expand as much as you want. If you want to deploy it to a different subscription you can clone the pipeline and just update the subscription references.&lt;/p&gt;&lt;p style=&quot;background: rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 2rem; line-height: 3.2rem; margin: 3.2rem 0px; padding: 0px; vertical-align: baseline;&quot;&gt;See you on Part 2 where we are going to deploy the app to the new infrastructure.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/918119160637722888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2018/12/azure-devops-infrastructure-build.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/918119160637722888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/918119160637722888'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2018/12/azure-devops-infrastructure-build.html' title='Azure DevOps - Infrastructure Build'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-5657543600582382673</id><published>2018-08-15T21:26:00.004+10:00</published><updated>2018-08-19T13:45:15.715+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Azure AD"/><category scheme="http://www.blogger.com/atom/ns#" term="BI"/><category scheme="http://www.blogger.com/atom/ns#" term="SAML"/><category scheme="http://www.blogger.com/atom/ns#" term="SAP"/><category scheme="http://www.blogger.com/atom/ns#" term="SSO"/><title type='text'>Setting up SAP BusinessIntelligence BI Platform SAML single sign on with Microsoft Azure AD as the Identity Provider</title><content type='html'>I have co-author this guide with Francisco Almeida, BI Lead Consultant for DXC Oxygen.&lt;br /&gt;
There is already a very good guide on how to set this on up, but in here we have emphasized the practical side of the setup and focused on the order they should be performed: &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogs.sap.com/2018/03/01/saml-integration-between-microsoft-azure-portal-and-sap-business-intelligence-platform/&quot;&gt;https://blogs.sap.com/2018/03/01/saml-integration-between-microsoft-azure-portal-and-sap-business-intelligence-platform/&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
There are some small differences in the order and steps, and this is because we found this approach was most likely to return the expected result as we implemented this in a real World scenario. There are also a few practical suggestions you may find useful. &lt;br /&gt;
&lt;br /&gt;
This configuration has been applied to BI 4.2 SP05 and SP06. Not all screenshots were taken from the same system, so some may have been pixelated to avoid confusion. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;BOE preparation configuration&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
1. If your deployment is already configured for HTTPS, you can skip this step; otherwise, you can contract a third-party certificate authority, or create a self-signed certificate (which will throw a warning in your browser). To go with the self-signed certificate, run the command below, which will create a keystore and alias:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
keytool -genkey -alias thisAlias -keyalg RSA -keystore C:\keystore\thisKeystore -keysize 2048&lt;/blockquote&gt;
Please note thisAlias and C:\keystore\thisKeystore should be changed to reflect your organisation’s naming conventions, and you will need to create a password and fill out details for like company name, state, etc.&lt;br /&gt;
&lt;br /&gt;
2. Locate &lt;i&gt;&amp;lt;BOE  Install  Dir&amp;gt;\tomcat\conf\server.xml&lt;/i&gt; and create a backup of the file, then edit it to enable the https connector. To do that, uncomment it and change it to look like this:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAHkAOa1JgTpJ5tL_NENRfzx-MS9D2rxZAyIDmlj8zkHg5U_BFrMH3QB0PnzjbmxuuhbDHg5t5B2k-F6CuZ6jo-IQBnPsR4eUIdAxKbXM9zC67Bpz1xi0ymZ-I4vLG7VsTNzs88sGGLXs/s1600/bi1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;105&quot; data-original-width=&quot;1012&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAHkAOa1JgTpJ5tL_NENRfzx-MS9D2rxZAyIDmlj8zkHg5U_BFrMH3QB0PnzjbmxuuhbDHg5t5B2k-F6CuZ6jo-IQBnPsR4eUIdAxKbXM9zC67Bpz1xi0ymZ-I4vLG7VsTNzs88sGGLXs/s1600/bi1.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Note: &lt;i&gt;thisAlias&lt;/i&gt;, &lt;i&gt;C:\keystore\thisKeystore&lt;/i&gt; and &lt;i&gt;thisKeystorePassword &lt;/i&gt;will need to match the values you used in the previous step&lt;/blockquote&gt;
&lt;br /&gt;
3. Restart tomcat and make sure you can connect to tomcat using &lt;a href=&quot;https://myserver/&quot;&gt;https://myserver&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Note: &lt;i&gt;myserver &lt;/i&gt;here is the name of the host where tomcat is installed. Do not proceed if you cannot.&lt;/blockquote&gt;
&lt;br /&gt;
4. Copy all .jar files from:&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;lt;BOE Install  Dir&amp;gt; \SAP BusinessObjects Enterprise XI 4.0\SAMLJARS\&lt;br /&gt;
to:&lt;br /&gt;
&amp;lt;BOE  Install  Dir&amp;gt;\tomcat\webapps\BOE\WEB-INF\lib\&lt;/blockquote&gt;
&lt;div&gt;
&lt;div style=&quot;border-bottom: solid #4472C4 3.0pt; border-left: none; border-right: none; border-top: solid #4472C4 3.0pt; mso-border-bottom-themecolor: accent1; mso-border-top-themecolor: accent1; mso-element: para-border-div; padding: 8.0pt 0cm 8.0pt 0cm;&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;border: none; margin-bottom: .0001pt; margin-bottom: 0cm; mso-border-bottom-alt: solid #4472C4 3.0pt; mso-border-bottom-themecolor: accent1; mso-border-top-alt: solid #4472C4 3.0pt; mso-border-top-themecolor: accent1; mso-padding-alt: 8.0pt 0cm 8.0pt 0cm; padding: 0cm;&quot;&gt;
&lt;i&gt;&lt;span style=&quot;color: #4472c4; font-size: 12.0pt; line-height: 107%;&quot;&gt;Note: the changes
below will make the BI and BILaunchpad apps inaccessible. If you are on 4.2
SP06, and want to include CMC in the SAML SSO, &lt;b&gt;do not configure it now&lt;/b&gt;. Come back to configure CMC only after you
have gone through all configuration steps and tested that it works, otherwise
you may find yourself locked out of the CMC.&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=&quot;color: #4472c4; font-size: 12.0pt; line-height: 107%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
5. Create a backup copy of the file below, and edit the original to uncomment the apps you want to use. In the case below, we have removed the leading “&amp;lt;!--&quot; and trailing “--&amp;gt;” from OpenDocument and BILaunchpad (this is the “fiorified” one). The line for the classic BI Launchpad was already uncommented. Save the changes but you can keep this file open as we will return to it later.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;lt;BOE  Install  Dir&amp;gt;\tomcat\webapps\BOE\WEB-INF\securityContext.xml &lt;/blockquote&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig90gJwEFiFudky5lzU5AVk4eS-TjQzOo86fmHF53t758rRAtek-QbB4gptX0qE6PsWnfLL_jnKAN30CuyzP3_b81r9BIzsLOX7AZ65pieVrm0DcOByFiUaCJIQZ085PFAzQDGFvqP-2o/s1600/bi2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;193&quot; data-original-width=&quot;733&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig90gJwEFiFudky5lzU5AVk4eS-TjQzOo86fmHF53t758rRAtek-QbB4gptX0qE6PsWnfLL_jnKAN30CuyzP3_b81r9BIzsLOX7AZ65pieVrm0DcOByFiUaCJIQZ085PFAzQDGFvqP-2o/s1600/bi2.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. Locate (or, if they do not exist, create) the files below, and make sure the property &lt;i&gt;saml.enabled=true&lt;/i&gt; is configured in both:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
a. &amp;lt;BOE Install Dir&amp;gt;\tomcat\webapps\BOE\WEB-INF\config\custom\BIlaunchpad.properties&lt;br /&gt;
&lt;br /&gt;
b. &amp;lt;BOE Install Dir&amp;gt;\tomcat\webapps\BOE\WEB-INF\config\custom\FioriBI.properties &lt;/blockquote&gt;
&lt;br /&gt;
7. At this point BI and BILaunchpad should be inaccessible. &lt;br /&gt;
&lt;br /&gt;
8. Locate &lt;i&gt;&amp;lt;BOE Install Dir&amp;gt;\tomcat\webapps\BOE\WEB-INF\web.xml&lt;/i&gt; and uncomment the SAML parameters: &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_tVFy93TdCFZLcPxGXW34cD1Q07o2OojhahBMIStFW150P2xKo5Hr-alUSoqfPXpJrLnf-pEWrJOwySUVNWZVkkH4T8XtaVlQbZ7v2HVaAx38OKWu3mSVPpDCSlUKMO26PZnGRgxcobo/s1600/bi3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;240&quot; data-original-width=&quot;727&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_tVFy93TdCFZLcPxGXW34cD1Q07o2OojhahBMIStFW150P2xKo5Hr-alUSoqfPXpJrLnf-pEWrJOwySUVNWZVkkH4T8XtaVlQbZ7v2HVaAx38OKWu3mSVPpDCSlUKMO26PZnGRgxcobo/s1600/bi3.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh0ftS0KWzAYgWZu_F-zMH-8u-u8Gm3gwu6P4HesHd_sUL2S0KavI802s7X-EPVvXFO9gBais47lhl2Znk4KFFKtYfx-64PEvhos3nzi9sXsEk7SRF9F0fimzsmkXRsdUrNtWYsWtmM3k/s1600/bi4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;246&quot; data-original-width=&quot;713&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh0ftS0KWzAYgWZu_F-zMH-8u-u8Gm3gwu6P4HesHd_sUL2S0KavI802s7X-EPVvXFO9gBais47lhl2Znk4KFFKtYfx-64PEvhos3nzi9sXsEk7SRF9F0fimzsmkXRsdUrNtWYsWtmM3k/s1600/bi4.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
9. Launch a command line shell and navigate to &lt;i&gt;&amp;lt;BOE Install Dir&amp;gt;\SAP BusinessObjects Enterprise XI 4.0\win64_x64\sapjvm\bin&lt;/i&gt; and execute the command below: &lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
keytool -genkeypair -alias analias -keypass Password1 -keystore &quot;D:\Program Files (x86)\SAP BusinessObjects\tomcat\webapps\BOE\WEB-INF\sampletestKeystore.jks&quot; -validity 735 &lt;/blockquote&gt;
&lt;br /&gt;
Define the alias (we used analias in the example above), give it a password (we used Password1) and chose a pre-existing keystore to generate it (we used the sampletestKeystore.jks). You will be asked the password of the keystore (the password for sampletestKeystore.jks is Password1) and further details. &lt;br /&gt;
&lt;br /&gt;
10.   Now go back to that open file &lt;i&gt;&amp;lt;BOE  Install  Dir&amp;gt;\tomcat\webapps\BOE\WEB-INF\securityContext.xml&lt;/i&gt; and update it with the keystore name, alias and password: &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_XkUE6-4nkkY0fdeGN_kuSw33qVo27kaNd8NLzU1mew1ltOxEcQS6LopDEXB1g476dZeLNY2XHPwzxtJbyhIyreBHostSfesdc28lfukwqfm-T2GSCVWbRpklrnl9uV3rphodQyODIts/s1600/bi5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;190&quot; data-original-width=&quot;605&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_XkUE6-4nkkY0fdeGN_kuSw33qVo27kaNd8NLzU1mew1ltOxEcQS6LopDEXB1g476dZeLNY2XHPwzxtJbyhIyreBHostSfesdc28lfukwqfm-T2GSCVWbRpklrnl9uV3rphodQyODIts/s1600/bi5.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
11.   If you use BOE tomcat’s hostname to access BOE (such as &lt;a href=&quot;https://myserver:8443/BOE/BI&quot;&gt;https://myserver:8443/BOE/BI&lt;/a&gt;) you can skip this step; if you have a more sophisticated setup with a load balancer and two or more tomcat hosts, you need to declare that in the same &lt;i&gt;securityContext.xml&lt;/i&gt; file. Comment out the generic context provider and create a new one as below (you need to replace &lt;i&gt;boe.itrust.co.nz&lt;/i&gt; from the screenshot below with your URL and the port is defined in your tomcat’s &lt;i&gt;server.xml&lt;/i&gt; configuration file): &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1mYUASaNTGVe4JPpdXWP3-k_pd_7MP_TYCcfmzq9cuzRCuWFKZFZgnQasm7dzeAh9Ee0nB-Ohgh_Yr3u9M2Vz9chU9Km5nuGBm8QWwkFtuDuF87uExcUveYwKNvxUsJRvhfsaEEgV1aw/s1600/bi6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;183&quot; data-original-width=&quot;884&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1mYUASaNTGVe4JPpdXWP3-k_pd_7MP_TYCcfmzq9cuzRCuWFKZFZgnQasm7dzeAh9Ee0nB-Ohgh_Yr3u9M2Vz9chU9Km5nuGBm8QWwkFtuDuF87uExcUveYwKNvxUsJRvhfsaEEgV1aw/s1600/bi6.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Also here: &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggTaTmDdzoii3LE6Gv270Vl9kPEASm8PE79WfITfrUVQv0Hniv2rXwPCR5zfz3BzMNOuJH3I9rErFhOfEdv9HwEcjEBJ4YUk2iGrJrld6xHXas-Z-svlm8gxbiohmund2VtwVQPIje-mQ/s1600/bi7.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;360&quot; data-original-width=&quot;884&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggTaTmDdzoii3LE6Gv270Vl9kPEASm8PE79WfITfrUVQv0Hniv2rXwPCR5zfz3BzMNOuJH3I9rErFhOfEdv9HwEcjEBJ4YUk2iGrJrld6xHXas-Z-svlm8gxbiohmund2VtwVQPIje-mQ/s1600/bi7.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
12.   You can finally save and close this file and replace the existing one (you have a backup, right?) &lt;br /&gt;
&lt;br /&gt;
13.   Now is time to set up the trust between tomcat and the CMS. Create the file &lt;i&gt;&amp;lt;BOE  Install  Dir&amp;gt;\tomcat\webapps\BOE\WEB-INF\config\custom\global.properties&lt;/i&gt; (or change if existing) to contain the following text: &lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
sso.enabled=true&lt;br /&gt;
&lt;br /&gt;
trusted.auth.shared.secret=MySecret&lt;br /&gt;
&lt;br /&gt;
trusted.auth.user.param=MyUser&lt;br /&gt;
&lt;br /&gt;
trusted.auth.user.retrieval=WEB_SESSION &lt;/blockquote&gt;
&lt;br /&gt;
14.   Log on to the CMC and generate a new shared secret by clicking in the “New Shared Secret” after you set the validity period and request timeout. Please note SAP recommends that the request timeout is &lt;i&gt;not set to zero&lt;/i&gt; for security reasons. &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsmbvFBnTXkJfFgY_20eFKxgFVF_h3riDRpRM0DsyfSgAUwjYh29beHdcVZoSIOU98DAoG84-hD2NvY6cBeF4Cv-OCJoP7A__5ffFbcKeE7OAcmM-nk60HAElJuSXUZzPEEtmgl5cax8o/s1600/bi8.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;139&quot; data-original-width=&quot;814&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsmbvFBnTXkJfFgY_20eFKxgFVF_h3riDRpRM0DsyfSgAUwjYh29beHdcVZoSIOU98DAoG84-hD2NvY6cBeF4Cv-OCJoP7A__5ffFbcKeE7OAcmM-nk60HAElJuSXUZzPEEtmgl5cax8o/s1600/bi8.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
15.   Click on “Download Shared Secret” to download the file &lt;i&gt;TrustedPrincipal.conf&lt;/i&gt; in your browser, and copy it over to the server(s) where the CMS service runs, into the following directories, so that the CMS will trust tomcat: &lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
a.        &amp;lt;BOE  Install  Dir&amp;gt;\SAP BusinessObjects Enterprise XI 4.0\win64_x64\&lt;br /&gt;
&lt;br /&gt;
b.        &amp;lt;BOE  Install  Dir&amp;gt;\SAP BusinessObjects Enterprise XI 4.0\win32_x86\ &lt;/blockquote&gt;
&lt;br /&gt;
16.   Preparation is done, now you need to stop Tomcat, and navigate to the work directory, where you should find the directories below, and delete these cached files (they will be recreated when you start tomcat again): &lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;lt;BOE  Install  Dir&amp;gt;\tomcat\work\Catalina\localhost\ &lt;/blockquote&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiiNNdk3FJdJioVObLPGy4-Q7Nty87ttP7xAnSS6zACekjE7D9Xd7c5DVzQ3F7Am-B_04h2O7grBz-oRs3tvfczQq2cee6TAvxGFzPTfEohFUumlQTN6Ra3GGTxFy4GHqudMmr7jck2gQ/s1600/bi9.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;365&quot; data-original-width=&quot;214&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiiNNdk3FJdJioVObLPGy4-Q7Nty87ttP7xAnSS6zACekjE7D9Xd7c5DVzQ3F7Am-B_04h2O7grBz-oRs3tvfczQq2cee6TAvxGFzPTfEohFUumlQTN6Ra3GGTxFy4GHqudMmr7jck2gQ/s1600/bi9.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
17.   Start tomcat. Any errors in removing the comments, pointing to the keystore and password typos in the XML configuration files could cause tomcat not to rebuild the /BOE app and 404 page not found errors or even 500 ones. &lt;br /&gt;
&lt;br /&gt;
18.   Download the metadata XML by accessing the URL below, so the file can be sent to the Azure Specialist: &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://boe.itrust.co.nz/BOE/saml/metadata&quot;&gt;https://boe.itrust.co.nz/BOE/saml/metadata&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
Note: if you download the XML prior to this step, it may return a page not found error or it may download an XML with the wrong path in it – hence why this should be a late step. &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQze3mAb1TcAVzxUHKNO5ZrUumV0IgZRKylrPmtKJgyycYlhz5oS-ckbhfgKKwXq2RdYQcsgAyKWI-95UtMJjDU16OuE7k6-wAOQEM6hPupxESokklQpdgSKRka3Pc9_ZiteQNgXTsaMQ/s1600/bi10.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;266&quot; data-original-width=&quot;717&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQze3mAb1TcAVzxUHKNO5ZrUumV0IgZRKylrPmtKJgyycYlhz5oS-ckbhfgKKwXq2RdYQcsgAyKWI-95UtMJjDU16OuE7k6-wAOQEM6hPupxESokklQpdgSKRka3Pc9_ZiteQNgXTsaMQ/s1600/bi10.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
If you get an error 404 page not found or similar, that means you should revisit the configuration steps, especially the on the &lt;i&gt;securityContext.xml&lt;/i&gt; file. Open it in a browser to see that it looks right. &lt;br /&gt;
&lt;br /&gt;
19.   Now you need to wait for the Azure specialist to work his/her magic. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Azure AD Configuration (Identity Provider) &lt;/b&gt;&lt;br /&gt;
From the Azure Portal: &lt;br /&gt;
&lt;br /&gt;
1.       Click on Azure Active Directory &lt;br /&gt;
&lt;br /&gt;
2.       Click on Enterprise applications &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNs52YlKWnSLknOfMlLoJVCAMTLgfqIOt-MeU6ZlUWuxX82L4f5CWgcszlSUG7debpSwDlpBOZeYw1iH7DbGvgnQkRtdNekWWDI75khYAqVYQ_68Ag6GCp0qJGbEoEP35Kv8uHfhmnYJQ/s1600/azure01.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1233&quot; data-original-width=&quot;968&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNs52YlKWnSLknOfMlLoJVCAMTLgfqIOt-MeU6ZlUWuxX82L4f5CWgcszlSUG7debpSwDlpBOZeYw1iH7DbGvgnQkRtdNekWWDI75khYAqVYQ_68Ag6GCp0qJGbEoEP35Kv8uHfhmnYJQ/s640/azure01.PNG&quot; width=&quot;502&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
1.       Click on All applications &lt;br /&gt;
&lt;br /&gt;
2.       Click on New application &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin8Y727CDXxvJ-3M7z8mLsBMLSmAtKhrgoQfcSjkHKNf8-ecdLr2QX6lAcTIe-W_Z7aWg9tQEIpQCHecIidL4pu9GidurK8hJa1lufIvyGsJdFpYumh0CCh2unb7iLpLQGAcFYlN8IJYg/s1600/azure02.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;707&quot; data-original-width=&quot;1000&quot; height=&quot;452&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin8Y727CDXxvJ-3M7z8mLsBMLSmAtKhrgoQfcSjkHKNf8-ecdLr2QX6lAcTIe-W_Z7aWg9tQEIpQCHecIidL4pu9GidurK8hJa1lufIvyGsJdFpYumh0CCh2unb7iLpLQGAcFYlN8IJYg/s640/azure02.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
1.       Click on Non-gallery application &lt;br /&gt;
&lt;br /&gt;
2.       Give the application a name &lt;br /&gt;
&lt;br /&gt;
3.       Click on Add &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD9IgwZ6YC1kjkjdL_P2JcUr-hyNuYQFRE_jy7wsw5SI3yrIdXmH2I0V8-5WKtDQ61DCBG_sL8GvW3LcjmUJppicHrUDPeWy79SanPGxlJqz6oot7S7cJyQuuOnLjBLEoFua6itamCHT0/s1600/azure03.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1374&quot; data-original-width=&quot;1600&quot; height=&quot;548&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD9IgwZ6YC1kjkjdL_P2JcUr-hyNuYQFRE_jy7wsw5SI3yrIdXmH2I0V8-5WKtDQ61DCBG_sL8GvW3LcjmUJppicHrUDPeWy79SanPGxlJqz6oot7S7cJyQuuOnLjBLEoFua6itamCHT0/s640/azure03.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
1.       Click on Single sign-on &lt;br /&gt;
&lt;br /&gt;
2.       Select SAML-based Sign-on &lt;br /&gt;
&lt;br /&gt;
3.       Select the metadata file exported from the application &lt;br /&gt;
&lt;br /&gt;
4.       Click on Upload &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCqRA6gyWe7ejKNOrD-8Md4khEq-wVT4PZRBb7qFx1GhY06HfdkqUclnhQW_S7ZQx-UgCQKp0rvP1CwT2o2scOHO5BJtP27LwgmQA2orYyIQ-9PfMUAYNJPSsZF0iKbvraV-jpW5FmtVM/s1600/azure04.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;616&quot; data-original-width=&quot;1600&quot; height=&quot;246&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCqRA6gyWe7ejKNOrD-8Md4khEq-wVT4PZRBb7qFx1GhY06HfdkqUclnhQW_S7ZQx-UgCQKp0rvP1CwT2o2scOHO5BJtP27LwgmQA2orYyIQ-9PfMUAYNJPSsZF0iKbvraV-jpW5FmtVM/s640/azure04.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
1.       Make sure user.userprincipalname is selected as the User Identifier &lt;br /&gt;
&lt;br /&gt;
2.       Download the Certificate (Base64) &lt;br /&gt;
&lt;br /&gt;
3.       Download the Metadata XML &lt;br /&gt;
&lt;br /&gt;
4.       Click on Save &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJu2UEfkuYCjtl9JQxzrd6tKPLzBjcps2J135DGsrngtDkutwq4UKRKm-Zf-MGLIaPqtuTeuUkUn6MVTOu2GTpi_Wkq0RlNX4whHAWzvwCoCrRUZxqHjP47_KpXCVfqR_X5ZI-Jb1XTA8/s1600/azure05.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1378&quot; data-original-width=&quot;1252&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJu2UEfkuYCjtl9JQxzrd6tKPLzBjcps2J135DGsrngtDkutwq4UKRKm-Zf-MGLIaPqtuTeuUkUn6MVTOu2GTpi_Wkq0RlNX4whHAWzvwCoCrRUZxqHjP47_KpXCVfqR_X5ZI-Jb1XTA8/s640/azure05.PNG&quot; width=&quot;580&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Resume BOE configuration &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
1.       The Azure specialist will download the metadata XML file and send you that file. Whatever the name of the file, you need to rename it to idp-meta-downloaded.xml and placed under&lt;i&gt; &amp;lt;BOE  Install  Dir&amp;gt;\tomcat\webapps\BOE\WEB-INF\ &lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
This is because your &lt;i&gt;securityContext.xml&lt;/i&gt; file expects to find it there: &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDz0HJruWADIcUt5LNYmiXZzrhJ-Pw4MUuz9zRU2nEsJtA4c-AmEP4TXrxViWUl2NoPK8XBBRxNdX7-uLnxjFB0c0qPy6C8yty7dU6XR5etFNpccCTLab2KGjnQaVz88tg-NxCnZcGZAk/s1600/bi11.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;74&quot; data-original-width=&quot;681&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDz0HJruWADIcUt5LNYmiXZzrhJ-Pw4MUuz9zRU2nEsJtA4c-AmEP4TXrxViWUl2NoPK8XBBRxNdX7-uLnxjFB0c0qPy6C8yty7dU6XR5etFNpccCTLab2KGjnQaVz88tg-NxCnZcGZAk/s1600/bi11.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
2.       Manually create a BOE account in CMC using the format used by Azure (usually &lt;a href=&quot;mailto:firstname.lastname@domain.com&quot;&gt;firstname.lastname@domain.com&lt;/a&gt;) and try to log on to BI or BILaunchpad as normal. You should be greeted by the IdP (Azure) screen: &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcwYAO5G9K2tpMK9w0l1vmJVQmEBgbFg8NdL5iZSUfY7UhsJoFeqr-hCJO-sYrDjkx_ZcBb3GUfRh9dI7vYSWvWX5_L5hjDVYltnEfnsHCl2yiMKWd6zjwyxQO0XvyZHP0NCxqOvLHngs/s1600/bi12.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;724&quot; data-original-width=&quot;1349&quot; height=&quot;342&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcwYAO5G9K2tpMK9w0l1vmJVQmEBgbFg8NdL5iZSUfY7UhsJoFeqr-hCJO-sYrDjkx_ZcBb3GUfRh9dI7vYSWvWX5_L5hjDVYltnEfnsHCl2yiMKWd6zjwyxQO0XvyZHP0NCxqOvLHngs/s640/bi12.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
3.       If you get the password right, this should redirect you to the BI / BILaunchpad, and automatically log you in – success! &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ5MbLUmdSRG2YsrgAb5Y6E55oHvHO7SX_ToAwbxDhB8_XgpfmQCAwqhTGq7uW9_rgaKp8r445HXioHEgNZLB2e8k_-fX_W2mgK3vT3sIZe_NOyGqqZn_FSvCKXsnCUZSRQ4oq6tmnh-w/s1600/bi13.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;222&quot; data-original-width=&quot;1191&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ5MbLUmdSRG2YsrgAb5Y6E55oHvHO7SX_ToAwbxDhB8_XgpfmQCAwqhTGq7uW9_rgaKp8r445HXioHEgNZLB2e8k_-fX_W2mgK3vT3sIZe_NOyGqqZn_FSvCKXsnCUZSRQ4oq6tmnh-w/s1600/bi13.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
4.       We have seen some errors here where you get the Microsoft logon error or a 404 on URL &lt;i&gt;/BOE/saml/metadata&lt;/i&gt; not found. These were caused by errors in the xml configuration file or failing to use the load balancer specific configuration mentioned above &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVKTdvvLDbgu1U86p2I8kbOCI4I1iYM4YOY-B9aJp-BznlLoyUaDocMSJKMmdU0lBaT0kT8TW1Dzppb-ZQQcAsc7CiJLPIC2jkjRnHS_qjJvbl86cTWsHV0LBONTiTPfXSs03HIC0QTn8/s1600/bi14.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;692&quot; data-original-width=&quot;1500&quot; height=&quot;295&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVKTdvvLDbgu1U86p2I8kbOCI4I1iYM4YOY-B9aJp-BznlLoyUaDocMSJKMmdU0lBaT0kT8TW1Dzppb-ZQQcAsc7CiJLPIC2jkjRnHS_qjJvbl86cTWsHV0LBONTiTPfXSs03HIC0QTn8/s640/bi14.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
5.       We have also noticed errors when we moved on to configure other environments and tried to re-test the previous ones. This was resolved by clearing the cache of the browser. Make sure you do that every time you test SAML SSO. &lt;br /&gt;
&lt;br /&gt;
6.       Another possible issue you may run into is with the BILaunchpad – please remember to update the &lt;i&gt;CMC &amp;gt; Applications &amp;gt; RESTful Web Services&lt;/i&gt; to the URL you are using, if different from a single server installation &lt;br /&gt;
&lt;br /&gt;
7.       If everything works, copy the changed configuration files to &lt;i&gt;&amp;lt;BOE  Install  Dir&amp;gt;\SAP BusinessObjects Enterprise XI 4.0\warfiles\webapps\BOE\&lt;/i&gt; otherwise the configuration will be lost in the next patch or service pack deployment &lt;br /&gt;
&lt;br /&gt;
8.       The SSO/SAML configuration may be finished, but for every account, an enterprise alias will have to be created. This can be done manually for each account, or by importing a file on &lt;i&gt;CMC &amp;gt; Users and Groups &amp;gt; Manage &amp;gt; Import&lt;/i&gt;. Still, someone will need to map an S4 or BW account to the enterprise alias because they will most likely not match. If this is not your scenario, then your work is done. &lt;br /&gt;
&lt;br /&gt;
9.       If you need to find a way to automate the user creation and association, and you have the user’s email associated with his/her SAP account, you can develop an SDK script to use that information to automatically create an Enterprise alias and associate it with the SAP alias. We have developed a jar file (&lt;i&gt;AddEntAlias&lt;/i&gt;) based on Business Objects’s SDK that reads an existing SAP account email property, creates and Enterprise alias, associate both accounts and renames the account to that email address, so that an SAP account like &lt;i&gt;S4D~100/FALMEIDA&lt;/i&gt; would end up looking like &lt;a href=&quot;mailto:francisco.almeida@itrust.co.nz&quot;&gt;francisco.almeida@itrust.co.nz&lt;/a&gt;, and mapped to the S4D alias automatically. This jar file can be scheduled to run after the SAP alias update. &lt;br /&gt;
&lt;br /&gt;
10.   If you want to use it, please read this disclaimer first. This SDK-based jar has been superficially tested with an SAP BI 4.2 SP05 system, but we cannot guarantee that it will work or that it will not cause any issues. So before using any SDK for the first time (and even if you use it all the time), make sure you have a backup of your hosts, your bootstrap files, your CMS database and your File repositories before proceeding. Also, please try this in a non-production environment before you try that in live production systems. To use it, download the file from &lt;a href=&quot;https://www.dropbox.com/s/x9v1zlv1oaxxq96/AddEntAlias.jar?dl=0&quot;&gt;here&lt;/a&gt; (password=readChomsky*), then log on to your CMC &amp;gt; Folders, select a location for it and click &lt;i&gt;Manage &amp;gt; Add &amp;gt; Program File &amp;gt; click on Choose File&lt;/i&gt; select the file which you have just downloaded, select &lt;i&gt;Java &lt;/i&gt;then hit &lt;i&gt;OK&lt;/i&gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk7N_FL1U0crEKMqeu2WfZukw7JpLS9JGNAhnnnCDnn6TAhrj3eiyTQILd4VoowzNf3KkqKUBwcey9xPJ0W7z3_XOwLegmHHL0CYQLKsHhE5ekSaRilQ41A4YB73BX7udiZqOw4sXoZDc/s1600/bi15.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;210&quot; data-original-width=&quot;498&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk7N_FL1U0crEKMqeu2WfZukw7JpLS9JGNAhnnnCDnn6TAhrj3eiyTQILd4VoowzNf3KkqKUBwcey9xPJ0W7z3_XOwLegmHHL0CYQLKsHhE5ekSaRilQ41A4YB73BX7udiZqOw4sXoZDc/s1600/bi15.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
11.   Make sure you add the &lt;i&gt;Classname &lt;/i&gt;to the &lt;i&gt;Properties &amp;gt; Program Parameters&lt;/i&gt; of that file: &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGvlklCkt-xrWJ58YQ8iMIWEPFuuVtZXf1rFtzy0h7jyRnm0WtTJVVjxeeCDQVz-d3OQIK8UTs6c5bgTwtDNvU9hLhvK5JuMZTdoDcPCC_6rGPHQEnzxnyEqP8rCsZG8vu5_y5p60tk1k/s1600/bi16.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;212&quot; data-original-width=&quot;499&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGvlklCkt-xrWJ58YQ8iMIWEPFuuVtZXf1rFtzy0h7jyRnm0WtTJVVjxeeCDQVz-d3OQIK8UTs6c5bgTwtDNvU9hLhvK5JuMZTdoDcPCC_6rGPHQEnzxnyEqP8rCsZG8vu5_y5p60tk1k/s1600/bi16.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
12.   Now every time you want to run it, you need to use the &lt;i&gt;Arguments&lt;/i&gt;: field (which can be changed on every scheduled job) to allow the script to log in and get its session with the CMS. So you need to specify the CMS to log the script in to, the user account you want to use to log the jar file into the system, the password, and the group that the script should run for. This group will be the only group that should be affected. &lt;br /&gt;
&lt;br /&gt;
13.   Each argument is separated by a space character; below is an example of how the &lt;i&gt;Arguments&lt;/i&gt;: field could be filled out: &lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
WIN-A2302R6200I administrator Ap@ssw0rd Everyone &lt;/blockquote&gt;
&lt;br /&gt;
This would log in to CMS &lt;i&gt;WIN-A2302R6200I &lt;/i&gt;as the &lt;i&gt;administrator &lt;/i&gt;and change all users because the group &lt;i&gt;Everyone &lt;/i&gt;is specified. The following users are ignored: Administrator, Guest, users that already have an Enterprise account and SAP accounts that do not have an email associated with them. If there are 2 identical email addresses or 2 users could be created with the same ID, the script will throw an error and fail. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/5657543600582382673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2018/08/setting-up-sap-businessintelligence-bi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/5657543600582382673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/5657543600582382673'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2018/08/setting-up-sap-businessintelligence-bi.html' title='Setting up SAP BusinessIntelligence BI Platform SAML single sign on with Microsoft Azure AD as the Identity Provider'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAHkAOa1JgTpJ5tL_NENRfzx-MS9D2rxZAyIDmlj8zkHg5U_BFrMH3QB0PnzjbmxuuhbDHg5t5B2k-F6CuZ6jo-IQBnPsR4eUIdAxKbXM9zC67Bpz1xi0ymZ-I4vLG7VsTNzs88sGGLXs/s72-c/bi1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-223503450208229731</id><published>2018-05-30T08:50:00.001+10:00</published><updated>2018-05-30T08:50:43.119+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="Azure ARM"/><category scheme="http://www.blogger.com/atom/ns#" term="Azure Templates"/><category scheme="http://www.blogger.com/atom/ns#" term="complex objects"/><category scheme="http://www.blogger.com/atom/ns#" term="conditional logic"/><category scheme="http://www.blogger.com/atom/ns#" term="copy"/><category scheme="http://www.blogger.com/atom/ns#" term="loop"/><category scheme="http://www.blogger.com/atom/ns#" term="multiple disks"/><category scheme="http://www.blogger.com/atom/ns#" term="multiple NIC"/><category scheme="http://www.blogger.com/atom/ns#" term="multiple VM"/><title type='text'>Azure ARM Templates with conditional logic and complex objects</title><content type='html'>&lt;div style=&quot;background: 0px 0px rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 20px; line-height: 3.2rem; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
Azure templates have been used to automate the build of all sorts of Azure resources from a single virtual machine to an entire application composed of several virtual machines, networking resources, storage, etc.&lt;/div&gt;
&lt;div style=&quot;background: 0px 0px rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 20px; line-height: 3.2rem; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
For a long time Azure engineers have used linked templates or nested templates to build more complex solutions including multiple resource types and several instances of the same resource. These are still used today and can achieve the required outcome but it can lead to a proliferation of templates that are hard to maintain. The real power of Azure templates become clear when combining them with complex objects and conditional logic.&lt;/div&gt;
&lt;div style=&quot;background: 0px 0px rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 20px; line-height: 3.2rem; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
Conditional logic allows the use of conditions such as if a statement is true if deploys a resource and if it is false the resource creation is skipped. It also allows the creation of X resource or Y resource depending on the statement evaluated.&lt;/div&gt;
&lt;div style=&quot;background: 0px 0px rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 20px; line-height: 3.2rem; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
Complex objects can be used to build a resource with several nested resources each with several properties and iterate through them during the build process.&lt;/div&gt;
&lt;div style=&quot;background: 0px 0px rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 20px; line-height: 3.2rem; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
Combine conditional logic and complex properties and the sky is the limit.&lt;/div&gt;
&lt;div style=&quot;background: 0px 0px rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 20px; line-height: 3.2rem; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
I have built an ARM template to build any number of Virtual Machines with any number of resources such as data disks and network interfaces.&lt;/div&gt;
&lt;div style=&quot;background: 0px 0px rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 20px; line-height: 3.2rem; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
The deploy and parameter templates can be found in my GitHub in the link below.&lt;/div&gt;
&lt;div style=&quot;background: 0px 0px rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 20px; line-height: 3.2rem; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;a href=&quot;https://github.com/fbinotto/101-vm-multi-disk-nic&quot; target=&quot;_blank&quot;&gt;https://github.com/fbinotto/101-vm-multi-disk-nic&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;background-color: white; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 20px;&quot;&gt;Now let me break down the important bits which make them flexible and powerful.&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background: 0px 0px rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 20px; line-height: 3.2rem; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
The following is a snippet of the parameter template which provides the main template with a complex object. The object is made of two servers. The first server is of size Standard_DS1, with two NICs in different subnets and two disks being one standard and one premium. The second VM is of size Standard_A1 and has one disk and one NIC.&lt;/div&gt;
&lt;pre spellcheck=&quot;false&quot; style=&quot;background: rgb(230, 233, 236); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.85); font-size: 16px; line-height: 1.6rem; margin-top: 3.2rem; outline: 0px; overflow-x: auto; padding: 3.2rem; vertical-align: baseline;&quot;&gt;                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;servers&quot;&lt;/span&gt;: [
                    {
                        &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;VMName&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;server01&quot;&lt;/span&gt;,
                        &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;VMSize&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Standard_DS1&quot;&lt;/span&gt;,
                        &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;NIC&quot;&lt;/span&gt;: [
                            {
                                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Name&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;NIC1&quot;&lt;/span&gt;,
                                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Allocation&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Dynamic&quot;&lt;/span&gt;,
                                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;SubnetName&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Core&quot;&lt;/span&gt;
                            },
                            {
                                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Name&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;NIC2&quot;&lt;/span&gt;,
                                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Allocation&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Dynamic&quot;&lt;/span&gt;,
                                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;SubnetName&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Edge&quot;&lt;/span&gt;
                            }
                        ],
                        &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Disk&quot;&lt;/span&gt;: [
                            {
                                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Name&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Disk1&quot;&lt;/span&gt;,
                                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Size&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;1024&quot;&lt;/span&gt;,
                                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;StorageAccountType&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Premium_LRS&quot;&lt;/span&gt;
                            },
                            {
                                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Name&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Disk2&quot;&lt;/span&gt;,
                                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Size&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;1024&quot;&lt;/span&gt;,
                                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;StorageAccountType&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Standard_LRS&quot;&lt;/span&gt;
                            }
                        ]
                    },
                    {
                        &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;VMName&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;server02&quot;&lt;/span&gt;,
                        &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;VMSize&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Standard_A1&quot;&lt;/span&gt;,
                        &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;NIC&quot;&lt;/span&gt;: [
                            {
                                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Name&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;NIC1&quot;&lt;/span&gt;,
                                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Allocation&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Dynamic&quot;&lt;/span&gt;,
                                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;SubnetName&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Edge&quot;&lt;/span&gt;
                            }
                        ],
                        &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Disk&quot;&lt;/span&gt;: [
                            {
                                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Name&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Disk1&quot;&lt;/span&gt;,
                                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Size&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;1024&quot;&lt;/span&gt;,
                                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;StorageAccountType&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Standard_LRS&quot;&lt;/span&gt;
                            }
                        ]
                    }
                ]
&lt;/pre&gt;
&lt;div style=&quot;background: 0px 0px rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 20px; line-height: 3.2rem; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
Now take a look in the code below which is part of the deploy template. It deploys the first NIC by default and then check if a second NIC is present by checking the length of the NIC object which is nested in the server object.&lt;/div&gt;
&lt;pre spellcheck=&quot;false&quot; style=&quot;background: rgb(230, 233, 236); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.85); font-size: 16px; line-height: 1.6rem; margin-top: 3.2rem; outline: 0px; overflow-x: auto; padding: 3.2rem; vertical-align: baseline;&quot;&gt;    {
      &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;apiVersion&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;2018-04-01&quot;&lt;/span&gt;,
      &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;type&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Microsoft.Network/networkInterfaces&quot;&lt;/span&gt;,
      &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;name&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;[concat(parameters(&#39;serverSettings&#39;).servers[copyIndex()].VMName, &#39;-&#39;, parameters(&#39;serverSettings&#39;).servers[copyIndex()].NIC[0].Name)]&quot;&lt;/span&gt;,
      &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;location&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;[resourceGroup().location]&quot;&lt;/span&gt;,
      &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;copy&quot;&lt;/span&gt;: {
        &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;name&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;NICCopy&quot;&lt;/span&gt;,
        &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;count&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;[length(parameters(&#39;serverSettings&#39;).servers)]&quot;&lt;/span&gt;
      },
      &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;dependsOn&quot;&lt;/span&gt;: [],
      &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;properties&quot;&lt;/span&gt;: {
        &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;ipConfigurations&quot;&lt;/span&gt;: [
          {
            &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;name&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;ipconfig&quot;&lt;/span&gt;,
            &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;properties&quot;&lt;/span&gt;: {
              &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;privateIPAllocationMethod&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;[parameters(&#39;serverSettings&#39;).servers[copyIndex()].NIC[0].Allocation]&quot;&lt;/span&gt;,
              &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;primary&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;true&quot;&lt;/span&gt;,
              &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;subnet&quot;&lt;/span&gt;: {
                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;id&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;[concat(variables(&#39;vnetID&#39;),&#39;/subnets/&#39;, parameters(&#39;serverSettings&#39;).servers[copyIndex()].NIC[0].SubnetName)]&quot;&lt;/span&gt;
              }
            }
          }
        ]
      }
    },
    {
      &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;apiVersion&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;2018-04-01&quot;&lt;/span&gt;,
      &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;condition&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;[greater(length(parameters(&#39;serverSettings&#39;).servers[copyIndex()].NIC),1)]&quot;&lt;/span&gt;,
      &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;type&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Microsoft.Network/networkInterfaces&quot;&lt;/span&gt;,
      &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;name&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;[concat(parameters(&#39;serverSettings&#39;).servers[copyIndex()].VMName, parameters(&#39;serverSettings&#39;).servers[copyIndex()],&#39;-NIC1&#39;)]&quot;&lt;/span&gt;,
      &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;location&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;[resourceGroup().location]&quot;&lt;/span&gt;,
      &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;copy&quot;&lt;/span&gt;: {
        &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;name&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;NICCopy&quot;&lt;/span&gt;,
        &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;count&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;[length(parameters(&#39;serverSettings&#39;).servers)]&quot;&lt;/span&gt;
      },
      &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;dependsOn&quot;&lt;/span&gt;: [],
      &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;properties&quot;&lt;/span&gt;: {
        &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;ipConfigurations&quot;&lt;/span&gt;: [
          {
            &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;name&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;ipconfig&quot;&lt;/span&gt;,
            &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;properties&quot;&lt;/span&gt;: {
              &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;privateIPAllocationMethod&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;[parameters(&#39;serverSettings&#39;).servers[copyIndex()].NIC[1].Allocation]&quot;&lt;/span&gt;,
              &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;primary&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;true&quot;&lt;/span&gt;,
              &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;subnet&quot;&lt;/span&gt;: {
                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;id&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;[concat(variables(&#39;vnetID&#39;),&#39;/subnets/&#39;, parameters(&#39;serverSettings&#39;).servers[copyIndex()].NIC[1].SubnetName)]&quot;&lt;/span&gt;
              }
            }
          }
        ]
      }
    },
&lt;/pre&gt;
&lt;div style=&quot;background: 0px 0px rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 20px; line-height: 3.2rem; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
I don&#39;t know if you noticed but the second NIC has a conditional statement. It checks if the number of NICs for each of the servers is greater than one. It will only create the new NIC if there are more than one NIC in the object.&lt;/div&gt;
&lt;pre spellcheck=&quot;false&quot; style=&quot;background: rgb(230, 233, 236); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.85); font-size: 16px; line-height: 1.6rem; margin-top: 3.2rem; outline: 0px; overflow-x: auto; padding: 3.2rem; vertical-align: baseline;&quot;&gt;&lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;condition&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;[greater(length(parameters(&#39;serverSettings&#39;).servers[copyIndex()].NIC),1)]&quot;&lt;/span&gt;,
&lt;/pre&gt;
&lt;div style=&quot;background: 0px 0px rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 20px; line-height: 3.2rem; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
Note that if you need a third NIC a new resource would be required with a condition to deploy only if the NIC object length inside the server object is greater than 2. NIC resources are not as easy to deploy as for instance data disks. We will see shortly that multiple data disks can be deployed much easier.&lt;/div&gt;
&lt;div style=&quot;background: 0px 0px rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 20px; line-height: 3.2rem; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
We now have the NICs created and it is time to attached them to the VMs. To do that the copy function is used which iterates through each server and attach the new NICs.&lt;/div&gt;
&lt;pre spellcheck=&quot;false&quot; style=&quot;background: rgb(230, 233, 236); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.85); font-size: 16px; line-height: 1.6rem; margin-top: 3.2rem; outline: 0px; overflow-x: auto; padding: 3.2rem; vertical-align: baseline;&quot;&gt;        &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;networkProfile&quot;&lt;/span&gt;: {
          &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;copy&quot;&lt;/span&gt;: [
            {
              &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;name&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;networkInterfaces&quot;&lt;/span&gt;,
              &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;count&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;[length(parameters(&#39;serverSettings&#39;).servers[copyIndex(&#39;VMCopy&#39;)].NIC)]&quot;&lt;/span&gt;,
              &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;input&quot;&lt;/span&gt;: {
                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;id&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;[resourceId(&#39;Microsoft.Network/networkInterfaces&#39;, concat(parameters(&#39;serverSettings&#39;).servers[copyIndex()].VMName, &#39;-NIC&#39;, copyIndex(&#39;networkInterfaces&#39;)))]&quot;&lt;/span&gt;,
                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;properties&quot;&lt;/span&gt;: {
                  &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;primary&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;[parameters(&#39;serverSettings&#39;).servers[copyIndex(&#39;VMCopy&#39;)].NIC[copyIndex(&#39;networkInterfaces&#39;)].Primary]&quot;&lt;/span&gt;
                }
              }
            }
          ]
        }
&lt;/pre&gt;
&lt;div style=&quot;background: 0px 0px rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 20px; line-height: 3.2rem; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
Next it is the code to deploy the data disks. Notice how easier it is to deploy multiple disks. We just iterate through the disks objects which are part of the server object and can even dictate the size of disk, the disk type and other properties.&lt;/div&gt;
&lt;pre spellcheck=&quot;false&quot; style=&quot;background: rgb(230, 233, 236); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.85); font-size: 16px; line-height: 1.6rem; margin-top: 3.2rem; outline: 0px; overflow-x: auto; padding: 3.2rem; vertical-align: baseline;&quot;&gt;          &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;copy&quot;&lt;/span&gt;: [
            {
              &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;name&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;dataDisks&quot;&lt;/span&gt;,
              &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;count&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;[length(parameters(&#39;serverSettings&#39;).servers[copyIndex(&#39;VMCopy&#39;)].Disk)]&quot;&lt;/span&gt;,
              &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;input&quot;&lt;/span&gt;: {
                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;diskSizeGB&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;[parameters(&#39;serverSettings&#39;).servers[copyIndex(&#39;VMCopy&#39;)].Disk[copyIndex(&#39;dataDisks&#39;)].Size]&quot;&lt;/span&gt;,
                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;lun&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;[copyIndex(&#39;dataDisks&#39;)]&quot;&lt;/span&gt;,
                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;createOption&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;Empty&quot;&lt;/span&gt;,
                &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;managedDisk&quot;&lt;/span&gt;: {
                  &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;storageAccountType&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;background: 0px 0px; border: 0px; box-sizing: inherit; color: #e61e89; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;[parameters(&#39;serverSettings&#39;).servers[copyIndex(&#39;VMCopy&#39;)].Disk[copyIndex(&#39;dataDisks&#39;)].StorageAccountType]&quot;&lt;/span&gt;
                }
              }
            }
          ]
&lt;/pre&gt;
&lt;div style=&quot;background: 0px 0px rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 20px; line-height: 3.2rem; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
This was just a snippet of what can be accomplished. The templates can be modified to build several additional objects with different configuration.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/223503450208229731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2018/05/azure-arm-templates-with-conditional.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/223503450208229731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/223503450208229731'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2018/05/azure-arm-templates-with-conditional.html' title='Azure ARM Templates with conditional logic and complex objects'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-3921865962641811323</id><published>2017-09-16T02:23:00.000+10:00</published><updated>2017-09-16T02:23:22.937+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ARM"/><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="Managed Service Identity"/><category scheme="http://www.blogger.com/atom/ns#" term="MSI"/><category scheme="http://www.blogger.com/atom/ns#" term="token"/><title type='text'>Managed Service Identity (MSI) for Azure Resources</title><content type='html'>Microsoft recently announced the public preview of this new great feature named Managed Service Identity (MSI) and it is free!&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/active-directory/msi-overview&quot;&gt;https://docs.microsoft.com/en-us/azure/active-directory/msi-overview&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Basically, with MSI you can make API calls to Azure using the VM identity to retrieve the token to be used as the authorization header. DevOps is just getting easier!&lt;br /&gt;
&lt;br /&gt;
I lost count of how many times I was asked on how to authenticate your code to Key Vault without having hard coded credentials or certificate thumbprint. The good news is that now you can!&lt;br /&gt;
&lt;br /&gt;
CI/CD tools like Jenkins, Puppet, Chef, etc which are running in an Azure VM don’t need to use Service Principals exposing secrets in its pipeline anymore!&lt;br /&gt;
&lt;br /&gt;
A-W-E-S-O-M-E&lt;br /&gt;
&lt;br /&gt;
Perhaps the extension will also be available for computers which are Azure AD joined in the future? I hope so!&lt;br /&gt;
&lt;br /&gt;
There are a few tutorials on Microsoft Docs on how to access Azure Resource Manager, Azure storage and a non-Azure AD resource (Key Vault).&lt;br /&gt;
&lt;br /&gt;
In this article, I will provide steps on how to get a token using a Windows VM with MSI to authenticate the code in a PowerShell script I have recently developed to manage Azure VM Scale Sets.&lt;br /&gt;
&lt;br /&gt;
The full code can be found at:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://github.com/fbinotto/AzureScaleSetManagement&quot;&gt;https://github.com/fbinotto/AzureScaleSetManagement&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
First of all, we have to enable MSI on the VM where we will run the script. As of today (16/09/17), this cannot be done via the Azure portal here in Australia. I used PowerShell but you can also use ARM templates or CLI.&lt;br /&gt;
&lt;br /&gt;
All steps to create a new Windows VM or update an existing Windows VM with MSI can be found in the following links:&lt;br /&gt;
&lt;a href=&quot;https://www.blogger.com/goog_2121542576&quot;&gt;&lt;br /&gt;&lt;/a&gt;
&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/active-directory/msi-qs-configure-powershell-windows-vm&quot;&gt;https://docs.microsoft.com/en-us/azure/active-directory/msi-qs-configure-powershell-windows-vm&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/active-directory/msi-qs-configure-template-windows-vm&quot;&gt;https://docs.microsoft.com/en-us/azure/active-directory/msi-qs-configure-template-windows-vm&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/active-directory/msi-qs-configure-cli-windows-vm&quot;&gt;https://docs.microsoft.com/en-us/azure/active-directory/msi-qs-configure-cli-windows-vm&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I’m updating my existing Windows VM using PowerShell. The commands are as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;Login-AzureRmAccount
$vm = Get-AzureRmVM -ResourceGroupName sydprodrg01 -Name sydprodvm01
Update-AzureRmVM -ResourceGroupName sydprodrg01 -VM $vm -IdentityType &quot;SystemAssigned&quot;
$settings = @{ &quot;port&quot; = 50342 }
Set-AzureRmVMExtension -ResourceGroupName sydprodrg01 -Location AustraliaEast -VMName sydprodvm01 -Name &quot;ManagedIdentityExtensionForWindows&quot; -Type &quot;ManagedIdentityExtensionForWindows&quot; -Publisher &quot;Microsoft.ManagedIdentity&quot; -TypeHandlerVersion &quot;1.0&quot; -Settings $settings
&lt;/pre&gt;
&lt;br /&gt;
Next we assign the contributor role to new Service Principal account created to the VM at the resource group scope where the resources to be managed are:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;$SP = Get-AzureRmADServicePrincipal -SearchString &#39;sydprodvm01&#39;
New-AzureRmRoleAssignment -ObjectId $SP.Id.Guid -ResourceGroupName sydprodrg02 -RoleDefinitionName Contributor
&lt;/pre&gt;
&lt;br /&gt;
Now we RDP to the VM, open PowerShell and run the following command to retrieve the token:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;$response = Invoke-WebRequest -Uri http://localhost/50342/oauth2/token -Method GET -Body @resource=&quot;https://management.azure.com/&quot;} -Headers @{Metadata=&quot;true&quot;}
$content = $response.Content | ConvertFrom-Json
$ArmToken = $content.access_token
&lt;/pre&gt;
&lt;br /&gt;
With that token in hands now we can retrieve a resource such as a scale set from the resource group we have been granted permissions. For example:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;$Uri = &quot;https://management.azure.com/subscriptions/YOUR_SUBSCRIPTION_ID_HERE/﻿providers/Microsoft.Compute/virtualMachineScaleSets?api-version=2017-03-30&quot;
$scalesets = Invoke-RestMethod -Method Get -Headers $ArmToken -Uri $Uri
&lt;/pre&gt;
&lt;br /&gt;
No more excuses to have hard coded credentials and secrets in your code!</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/3921865962641811323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2017/09/managed-service-identity-msi-for-azure.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/3921865962641811323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/3921865962641811323'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2017/09/managed-service-identity-msi-for-azure.html' title='Managed Service Identity (MSI) for Azure Resources'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-4681111091687531545</id><published>2017-09-09T01:42:00.004+10:00</published><updated>2017-09-09T01:42:54.451+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="Powershell"/><category scheme="http://www.blogger.com/atom/ns#" term="rest API"/><category scheme="http://www.blogger.com/atom/ns#" term="Scale Set"/><title type='text'>Azure VM Scale Set Management</title><content type='html'>&lt;div style=&quot;box-sizing: border-box; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px; margin-bottom: 16px;&quot;&gt;
I have made this tool in PowerShell inspired by the tool Guy Bowerman made coded in Python.&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px; margin-bottom: 16px;&quot;&gt;
You can download it&amp;nbsp;&lt;span style=&quot;background-color: white;&quot;&gt;from&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #24292e; font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;&quot;&gt;&lt;a href=&quot;https://github.com/fbinotto/AzureScaleSetManagement&quot;&gt;https://github.com/fbinotto/AzureScaleSetManagement&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px; margin-bottom: 16px;&quot;&gt;
You can check Guy&#39;s tool at&amp;nbsp;&lt;a href=&quot;https://github.com/gbowerman/vmssdashboard&quot; style=&quot;box-sizing: border-box; color: #0366d6; text-decoration-line: none;&quot;&gt;https://github.com/gbowerman/vmssdashboard&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px; margin-bottom: 16px;&quot;&gt;
My tool has been coded in PowerShell using mostly the Azure REST API. The only exception is the login to Azure which is part of the AzureRM module. I made it this way to be easier for anyone to use it. In addition the required modules are automatically installed if not already installed. PowerShellGet is required to be installed or PowerShell 5.0 and above. Run as administrator.&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px; margin-bottom: 16px;&quot;&gt;
When running the Azure Scale Set Management tool, it will search for all Azure VM Scale Sets across all subscriptions the account you signed in has access to and provide that as a list to be selected.&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px; margin-bottom: 16px;&quot;&gt;
The following are the functionalities once a scale set is selected:&lt;/div&gt;
&lt;ol style=&quot;box-sizing: border-box; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Start scale set VM instance(s)&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Deallocate scale set VM instance(s)&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Restart scale set VM instance(s)&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Reimage scale set VM instance(s)&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Delete scale set VM instance(s)&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Upgrade scale set VM instance(s)&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Roll out upgrade to all VM instances in batches&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Scale out / Scale in&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOdRtY_E_QAjgIHfTWQlm74lTr_J3Cn0eazsSE-VWHs-3y4JrTlskY-ez_qIR6gZ4peXa8oTHKCNZ471NumsCndq-nbV_be1ZVyB_MxlUK4p8bq8CU0W1L8szBJDdy2PgGtwTxX57Yst4/s1600/ss02.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;503&quot; data-original-width=&quot;455&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOdRtY_E_QAjgIHfTWQlm74lTr_J3Cn0eazsSE-VWHs-3y4JrTlskY-ez_qIR6gZ4peXa8oTHKCNZ471NumsCndq-nbV_be1ZVyB_MxlUK4p8bq8CU0W1L8szBJDdy2PgGtwTxX57Yst4/s320/ss02.png&quot; width=&quot;289&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #24292e; font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px;&quot;&gt;The following is an overview of the user interface:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbasvzXkLtorsuZOgsWSAS3K59rjmvjnk6K9ewNrePqdBssCL-d6QhHeEV2NulZjCoJB4D6ngeBk3kH0pPGj7hSxFykQzRonTQ1xm91jGL8S0hyphenhyphenLRmzMqi5pcobpDSCLQT1Pu5eJBP4nE/s1600/ss01.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;504&quot; data-original-width=&quot;461&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbasvzXkLtorsuZOgsWSAS3K59rjmvjnk6K9ewNrePqdBssCL-d6QhHeEV2NulZjCoJB4D6ngeBk3kH0pPGj7hSxFykQzRonTQ1xm91jGL8S0hyphenhyphenLRmzMqi5pcobpDSCLQT1Pu5eJBP4nE/s320/ss01.PNG&quot; width=&quot;292&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px;&quot;&gt;The following is an overview on how to perform a Roll Upgrade.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc-6164Frz_zvWPQjanzeeLs34DdgurVFTfOxiqC4j4uIqsfp_aXCOGdKpuWnvPFUq1FA_jyF1YuGXvrWEny3kUgdKX3lMWb_SX52WLlF1ib5j2yATN1cI1yPCXCYiFnd1xA46lKaRJF0/s1600/ss03.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;504&quot; data-original-width=&quot;461&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc-6164Frz_zvWPQjanzeeLs34DdgurVFTfOxiqC4j4uIqsfp_aXCOGdKpuWnvPFUq1FA_jyF1YuGXvrWEny3kUgdKX3lMWb_SX52WLlF1ib5j2yATN1cI1yPCXCYiFnd1xA46lKaRJF0/s320/ss03.PNG&quot; width=&quot;292&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px;&quot;&gt;The following shows that instances are selectable and actions can be triggered for that selection.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKXkcJfe2trtUf4_7xkCJfxSojUrr-9lpCqWvZ2HlRjmlnkrvdQfZ9FPcILeP6sg2icEPwxORRpcTQdZ9z4nrVdzdVLeaGqwvB0ZwOrpsjHA7V4ByUIRGUsfrFAD7BckgdUhlYUOl3IdE/s1600/ss04.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;505&quot; data-original-width=&quot;459&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKXkcJfe2trtUf4_7xkCJfxSojUrr-9lpCqWvZ2HlRjmlnkrvdQfZ9FPcILeP6sg2icEPwxORRpcTQdZ9z4nrVdzdVLeaGqwvB0ZwOrpsjHA7V4ByUIRGUsfrFAD7BckgdUhlYUOl3IdE/s320/ss04.PNG&quot; width=&quot;290&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px;&quot;&gt;And the following shows that the instances colors change accordingly to their state. The state is pulled every 30 seconds.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip9wyIlZnsExgodfNCH3dfBiI-dzkejR2iSbVh7wk6W-FwY-8-qbXRThgfCL2d4XELe2mQ1PV8q6ya9YFC6TXAhjpAhh6-zrzEsRCUZmdi15vG3bEC_vlyQR9m43BBgXDBMIDQPunu0zQ/s1600/ss05.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;502&quot; data-original-width=&quot;457&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip9wyIlZnsExgodfNCH3dfBiI-dzkejR2iSbVh7wk6W-FwY-8-qbXRThgfCL2d4XELe2mQ1PV8q6ya9YFC6TXAhjpAhh6-zrzEsRCUZmdi15vG3bEC_vlyQR9m43BBgXDBMIDQPunu0zQ/s320/ss05.PNG&quot; width=&quot;291&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/4681111091687531545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2017/09/azure-vm-scale-set-management.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/4681111091687531545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/4681111091687531545'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2017/09/azure-vm-scale-set-management.html' title='Azure VM Scale Set Management'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOdRtY_E_QAjgIHfTWQlm74lTr_J3Cn0eazsSE-VWHs-3y4JrTlskY-ez_qIR6gZ4peXa8oTHKCNZ471NumsCndq-nbV_be1ZVyB_MxlUK4p8bq8CU0W1L8szBJDdy2PgGtwTxX57Yst4/s72-c/ss02.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-8853625654746391723</id><published>2017-06-14T00:19:00.000+10:00</published><updated>2017-06-14T00:19:33.131+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Azure Stack"/><category scheme="http://www.blogger.com/atom/ns#" term="change prerequisites"/><category scheme="http://www.blogger.com/atom/ns#" term="deploy"/><category scheme="http://www.blogger.com/atom/ns#" term="Install"/><category scheme="http://www.blogger.com/atom/ns#" term="POC"/><category scheme="http://www.blogger.com/atom/ns#" term="Powershell"/><category scheme="http://www.blogger.com/atom/ns#" term="TP3"/><title type='text'>Azure Stack TP3 POC - My experience</title><content type='html'>I always wanted to play with Azure Stack but never had the compute power to do so. Recently I bought a new desktop/server and thought I would be fine to run a POC but I was mistaken. So I had to dig the web for some workarounds and eventually (after a few rebuilds) I was able to make it work. I was excited to have it working and playing in my own Azure portal on premises but unfortunately I was not able to create any VMs as I did not have any more resources available.. Anyway.. It was good for the experience and the challenge of getting it working.&lt;br /&gt;
&lt;br /&gt;
From this point I will describe what I have done to make it work.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;My POC computer setup was:&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;1x CPU socket with 6 cores&lt;/li&gt;
&lt;li&gt;64Gb of RAM&lt;/li&gt;
&lt;li&gt;1x 1TB SSD for the OS&lt;/li&gt;
&lt;li&gt;3x 1TB Data disks&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Steps:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 1. First thing download and extract the Cloudbuilder.vhdx from &lt;a href=&quot;https://azure.microsoft.com/overview/azure-stack/try/?v=try&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 2. Make sure you have .NET Framework 4.6 or later installed&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 3. Copy the Cloudbuilder.vhdx to the root of the C:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 4. Mount the VHDX file&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 5. Browse to DRIVELETTER:\CloudDeployment\NuGetStore&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 6. Copy Microsoft.AzureStack.Solution.Deploy.CloudDeployment.1.0.422.0.nupkg to a temp &amp;nbsp; &amp;nbsp; &amp;nbsp; location and rename it as &lt;span style=&quot;font-size: x-small;&quot;&gt;Microsoft.AzureStack.Solution.Deploy.CloudDeployment.1.0.422.0.nupkg.zip&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 7. Extract the files in the same location.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 8. Browse to \content\Configuration\Roles\Fabric\VirtualMachines and open the file OneNoteRole.xml using notepad&lt;br /&gt;
&lt;ol&gt;
&lt;/ol&gt;
What worked for me was the following configuration changes. Locate each VM name and adjust the values.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-size: 12px;&quot;&gt;MAS-DC01, StartUpMemoryBytes=&quot;2147483648&quot;, ProcessorCount=&quot;2&quot;, DynamicMemory=&quot;False&quot;
MAS-NC01, StartUpMemoryBytes=&quot;2147483648&quot;, ProcessorCount=&quot;2&quot;, DynamicMemory=&quot;False&quot;
MAS-SLB01, StartUpMemoryBytes=&quot;2147483648&quot;, ProcessorCount=&quot;2&quot;, DynamicMemory=&quot;False&quot;
MAS-GWY01, StartUpMemoryBytes=&quot;4294967296&quot;, ProcessorCount=&quot;2&quot;, DynamicMemory=&quot;False&quot;
MAS-CON01, StartUpMemoryBytes=&quot;2147483648&quot;, ProcessorCount=&quot;2&quot;, DynamicMemory=&quot;False&quot;
MAS-SQL01, StartUpMemoryBytes=&quot;4294967296&quot;, ProcessorCount=&quot;2&quot;, DynamicMemory=&quot;False&quot;
MAS-WAS01, StartUpMemoryBytes=&quot;5368709120&quot;, ProcessorCount=&quot;4&quot;, DynamicMemory=&quot;False&quot;
MAS-WASP01, StartUpMemoryBytes=&quot;5368709120&quot;, ProcessorCount=&quot;4&quot;, DynamicMemory=&quot;False&quot;
MAS-ACS01, StartUpMemoryBytes=&quot;5368709120&quot;, ProcessorCount=&quot;4&quot;, DynamicMemory=&quot;False&quot;
MAS-XRP01, StartUpMemoryBytes=&quot;5368709120&quot;, ProcessorCount=&quot;4&quot;, DynamicMemory=&quot;False&quot;
MAS-ERCS01, StartUpMemoryBytes=&quot;5368709120&quot;, ProcessorCount=&quot;4&quot;, DynamicMemory=&quot;False&quot;
MAS-ADFS01, StartUpMemoryBytes=&quot;2147483648&quot;, ProcessorCount=&quot;2&quot;, DynamicMemory=&quot;False&quot;
MAS-CA01, StartUpMemoryBytes=&quot;4294967296&quot;, ProcessorCount=&quot;2&quot;, DynamicMemory=&quot;False&quot;
MAS-BGPNAT01, StartUpMemoryBytes=&quot;4294967296&quot;, ProcessorCount=&quot;2&quot;, DynamicMemory=&quot;False&quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 9. Now browse to \content\Configuration\Roles\Infrastructure\BareMetal and open the file OneNoteRole.xml using notepad&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Change the following values to match your requirements.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;    &amp;lt;ValidationRequirements&amp;gt;
      &amp;lt;MinimumOperatingSystemVersion&amp;gt;10.0.14300&amp;lt;/MinimumOperatingSystemVersion&amp;gt;
      &amp;lt;MinimumNumberOfCoresPerMachine&amp;gt;4&amp;lt;/MinimumNumberOfCoresPerMachine&amp;gt;
      &amp;lt;MinimumPhysicalMemoryPerMachineGB&amp;gt;32&amp;lt;/MinimumPhysicalMemoryPerMachineGB&amp;gt;
      &amp;lt;MinimumNumberOfAdaptersPerMachine&amp;gt;0&amp;lt;/MinimumNumberOfAdaptersPerMachine&amp;gt;
      &amp;lt;MinimumAdapterSpeedBitsPerSecond&amp;gt;0&amp;lt;/MinimumAdapterSpeedBitsPerSecond&amp;gt;
      &amp;lt;MinimumSizeOfDataDisksGB&amp;gt;50&amp;lt;/MinimumSizeOfDataDisksGB&amp;gt;
      &amp;lt;MinimumSizeOfSystemDiskGB&amp;gt;50&amp;lt;/MinimumSizeOfSystemDiskGB&amp;gt;
      &amp;lt;MinimumNumberOfDataDisksPerMachine&amp;gt;2&amp;lt;/MinimumNumberOfDataDisksPerMachine&amp;gt;
      &amp;lt;MaximumNumberOfMissingDisksPerMachine&amp;gt;0&amp;lt;/MaximumNumberOfMissingDisksPerMachine&amp;gt;
      &amp;lt;SizeComparisonTolerancePercentage&amp;gt;1&amp;lt;/SizeComparisonTolerancePercentage&amp;gt;
    &amp;lt;/ValidationRequirements&amp;gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-size: 12px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 10.&amp;nbsp;Copy both OneNoteRole.xml files to the ZIP file replacing the originals&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 11.&amp;nbsp;Rename the file back to &lt;span style=&quot;font-size: x-small;&quot;&gt;Microsoft.AzureStack.Solution.Deploy.CloudDeployment.1.0.422.0.nupkg &lt;/span&gt;and copy it back to the original location replacing the original file&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 12. Unmount the VHD&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 13. On the POC host, run the following PowerShell script to download the Azure Stack support files.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;$Uri = &#39;https://raw.githubusercontent.com/Azure/AzureStack-Tools/master/Deployment/&#39;
$LocalPath = &#39;c:\AzureStack_SupportFiles&#39;
New-Item $LocalPath -type directory
( &#39;BootMenuNoKVM.ps1&#39;, &#39;PrepareBootFromVHD.ps1&#39;, &#39;Unattend.xml&#39;, &#39;unattend_NoKVM.xml&#39;) | `
foreach { Invoke-WebRequest ($uri + $_) -OutFile ($LocalPath + &#39;\&#39; + $_) } &lt;/pre&gt;
&lt;br /&gt;
The support files will be downloaded to C:\AzureStack_SupportFiles&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 14. Now open an elevated PowerShell, browse to C:\AzureStack_SupportFiles and run the following:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;.\PrepareBootFromVHD.ps1 -CloudBuilderDiskPath C:\CloudBuilder.vhdx -ApplyUnattend&lt;/pre&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 15. Provide the Administrator password for the new AzureStack OS (inside the CloudBuilder.vhdx) so you can log in once the computer is rebooted&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 16. When prompted say Yes which will restart the computer. Now the POC computer will boot into the OS of the CloudBuilder.vhdx&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 17. Log in as Administrator using the password provided earlier&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 18. Open the network connections and disable ipv6. Also make sure you only have 1 NIC enabled if you have multiple&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 19. Rename the computer to a more descriptive name&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 20. A lot of drivers will probably be missing if you look at device manager but they should be all available in the old OS which should be accessible through one of the volumes. To install all the drivers in one go, create the following batch file&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;forfiles /p %1 /s /m *.inf /c &quot;cmd /c pnputil -a @Path&quot;&lt;/pre&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 21. Now run it from an elevated command prompt. For example if you created the file InstallDrivers.cmd run the following (Make sure you point the drive letter to the correct volume which should be the old OS volume):&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;InstallDrivers.cmd E:\Windows\System32\DriverStore\FileRepository&lt;/pre&gt;
&lt;br /&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 22. Make sure you drives are not partitioned otherwise they won&#39;t be considered as available&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheooTJHrl8GjlpKgTdMod4SEcP2rl3qz141wxlTmwfdSMI_obYBie8Ex-EY95eP5OTkVsLmh4s4AQehLLf2XN7h0g-Nux4TxKNDbOJXW-AZXhE3mfBMtjljr1eJ4t6K0Nv7WW_u_-g80U/s1600/pic000.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;484&quot; data-original-width=&quot;302&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheooTJHrl8GjlpKgTdMod4SEcP2rl3qz141wxlTmwfdSMI_obYBie8Ex-EY95eP5OTkVsLmh4s4AQehLLf2XN7h0g-Nux4TxKNDbOJXW-AZXhE3mfBMtjljr1eJ4t6K0Nv7WW_u_-g80U/s320/pic000.PNG&quot; width=&quot;199&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 23. Now it is time to start the installation. I have chosen to use Azure AD for authentication but &amp;nbsp;ADFS can also be used. To start the installation run the following from an elevated command prompt&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;border-radius: 3px; border: 1px solid rgb(204, 204, 204); line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;&lt;span style=&quot;background-color: #f8f8f8;&quot;&gt;cd C:\CloudDeployment\Setup 
$adminpass = ConvertTo-SecureString &quot;〈LOCAL_ADMIN_PASSWORD〉&quot; -AsPlainText -Force
$aadpass = ConvertTo-SecureString &quot;&amp;lt;AAD GLOBAL ADMIN ACCOUNT PASSWORD&amp;gt;&quot; -AsPlainText -Force
$aadcred = New-Object System.Management.Automation.PSCredential (&quot;&amp;lt;AAD GLOBAL ADMIN ACCOUNT&amp;gt;&quot;, $aadpass)
.\InstallAzureStackPOC.ps1 -AdminPassword adminpass&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
Now this will take hours. In the first hour it will reboot and that is the only time it will reboot. Once it reboots you can log in as AzureStackAdmin.&lt;br /&gt;
&lt;br /&gt;
If there are any issues first thing to try it to re-run it as displayed below:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;border-radius: 3px; border: 1px solid rgb(204, 204, 204); line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;.\InstallAzureStackPOC.ps1 -Rerun&lt;/pre&gt;
&lt;br /&gt;
I had a few issues with ADFS where I had to restart the server. I also had issues with a watchdog monitoring service. I had to start the service on both the host and the server where the issue was happening,&lt;br /&gt;
&lt;br /&gt;
If for any reason I have rebooted the POC server, restart the VMs in the following order:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;MAS-DC01, MAS-BGPNAT-1, MAS-SLB01, MAS-SQL01&lt;/li&gt;
&lt;li&gt;Wait 5 minutes&lt;/li&gt;
&lt;li&gt;MAS-ACS01, MAS-XRP01&lt;/li&gt;
&lt;li&gt;Wait 5 minutes&lt;/li&gt;
&lt;li&gt;MAS-WAS01, MAS-WASP01&lt;/li&gt;
&lt;li&gt;Wait 5 minutes&lt;/li&gt;
&lt;li&gt;MAS-CON01, MAS-CA01, MAS-ADFS01, MAS-GWY01&lt;/li&gt;
&lt;li&gt;Wait 5 minutes&lt;/li&gt;
&lt;li&gt;MAS-NC01, MAS-ERCS01&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the build is complete you should see the following:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLJkJ1LbGkQnJRmqrPM-GVQEsu28Mm1O09DyHxyESenO11dqCcdjhYtwDzPOKEg530ZelL3Lzp-93L4TvCmRteY36MDnvoPmEOuhFPqPPU4U_q9LFZ0Fhm_ue7acggESAmfY3dFEYk5uM/s1600/pic01.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;742&quot; data-original-width=&quot;1120&quot; height=&quot;212&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLJkJ1LbGkQnJRmqrPM-GVQEsu28Mm1O09DyHxyESenO11dqCcdjhYtwDzPOKEg530ZelL3Lzp-93L4TvCmRteY36MDnvoPmEOuhFPqPPU4U_q9LFZ0Fhm_ue7acggESAmfY3dFEYk5uM/s320/pic01.PNG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
You can also see all the VMs running from the Hyper-V or Failover clustet console.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikSeRU1YJZM9MqKf-PtmOE1oP9Eh-FP9pV0aqDujgGD6I8eehbShCEZejzStq1vcWMJjRDUtl9BdKHYkA-XXg3cy2l1ea3zrmoMBxV7QeQIUGzDg-R4_ycjixs7FakXvb0tG9FLkE6X5I/s1600/pic00.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;536&quot; data-original-width=&quot;859&quot; height=&quot;199&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikSeRU1YJZM9MqKf-PtmOE1oP9Eh-FP9pV0aqDujgGD6I8eehbShCEZejzStq1vcWMJjRDUtl9BdKHYkA-XXg3cy2l1ea3zrmoMBxV7QeQIUGzDg-R4_ycjixs7FakXvb0tG9FLkE6X5I/s320/pic00.PNG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Now it is time to active the portals.&lt;br /&gt;
&lt;br /&gt;
From the POC host navigate to&amp;nbsp;&lt;a data-linktype=&quot;external&quot; href=&quot;https://adminportal.local.azurestack.external/guest/signup&quot; style=&quot;backface-visibility: hidden; background-color: white; box-shadow: transparent 0px 0px 1px; color: #0050c5; cursor: pointer; font-family: segoe-ui_normal, &amp;quot;Segoe UI&amp;quot;, Segoe, &amp;quot;Segoe WP&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 16px; outline: 0px; transition: transform 0.1s ease-out, color, background-color, -webkit-transform; word-wrap: break-word;&quot;&gt;https://adminportal.local.azurestack.external/guest/signup&lt;/a&gt;&lt;span style=&quot;color: #222222; font-family: , &amp;quot;segoe ui&amp;quot; , &amp;quot;segoe&amp;quot; , &amp;quot;segoe wp&amp;quot; , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;and accept. Now navigate to&amp;nbsp;&lt;a data-linktype=&quot;external&quot; href=&quot;https://portal.local.azurestack.external/guest/signup&quot; style=&quot;backface-visibility: hidden; background-color: white; box-shadow: transparent 0px 0px 1px; color: #0050c5; cursor: pointer; font-family: segoe-ui_normal, &amp;quot;Segoe UI&amp;quot;, Segoe, &amp;quot;Segoe WP&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 16px; outline: 0px; transition: transform 0.1s ease-out, color, background-color, -webkit-transform; word-wrap: break-word;&quot;&gt;https://portal.local.azurestack.external/guest/signup&lt;/a&gt;&lt;span style=&quot;color: #222222; font-family: , &amp;quot;segoe ui&amp;quot; , &amp;quot;segoe&amp;quot; , &amp;quot;segoe wp&amp;quot; , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;and accept again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3rXYifCB5vgIr5Kfl1xVCuD5XxzxFOXq_g6JKYfvRJPBY03lRvDOQ3gq2zdr_cJBKNhk-fUoYUH5SMxKUF_vOhvuud4EpAu1fF64XTrynMVxOvjY09ni1YQya4y3lRJhaUNBSlXfREMc/s1600/pic02.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;729&quot; data-original-width=&quot;975&quot; height=&quot;239&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3rXYifCB5vgIr5Kfl1xVCuD5XxzxFOXq_g6JKYfvRJPBY03lRvDOQ3gq2zdr_cJBKNhk-fUoYUH5SMxKUF_vOhvuud4EpAu1fF64XTrynMVxOvjY09ni1YQya4y3lRJhaUNBSlXfREMc/s320/pic02.PNG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Now change the password expiration to 180 days running the following cmdlet.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;border-radius: 3px; border: 1px solid rgb(204, 204, 204); line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;Set-ADDefaultDomainPasswordPolicy -MaxPasswordAge 180.00:00:00 -Identity azurestack.local&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
And last if you want to import an image so you can create a VM run the following:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;border-radius: 3px; border: 1px solid rgb(204, 204, 204); line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;Import-Module .\Connect\AzureStack.Connect.psm1
Import-Module .\ComputeAdmin\AzureStack.ComputeAdmin.psm1

Add-AzureStackAzureRmEnvironment `
  -Name &quot;AzureStackAdmin&quot; `
  -ArmEndpoint &quot;https://adminmanagement.local.azurestack.external&quot;

$TenantID = Get-DirectoryTenantID `
  -AADTenantName &quot;&amp;lt;myDirectoryTenantName&amp;gt;.onmicrosoft.com&quot; ` #CHANGE WITH YOUR TENANT NAME
  -EnvironmentName AzureStackAdmin

$ISOPath = &quot;&amp;lt;Fully_Qualified_Path_to_ISO&amp;gt;&quot; #PATH TO ISO

$UserName=&#39;&amp;lt;Username of the service administrator account&amp;gt;&#39; #AZURE ADMIN
$Password=&#39;&amp;lt;Admin password provided when deploying Azure Stack&amp;gt;&#39;| ` #PASSWORD
  ConvertTo-SecureString -Force -AsPlainText
$Credential=New-Object PSCredential($UserName,$Password)

# Add a Windows Server 2016 Evaluation VM Image.
New-Server2016VMImage `
  -ISOPath $ISOPath `
  -TenantId $TenantID `
  -EnvironmentName &quot;AzureStackAdmin&quot; `
  -Net35 $True `
  -AzureStackCredentials $Credential&lt;/pre&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
That&#39;s all.. what a lengthy post!!&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/8853625654746391723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2017/06/azure-stack-tp3-poc-my-experience.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/8853625654746391723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/8853625654746391723'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2017/06/azure-stack-tp3-poc-my-experience.html' title='Azure Stack TP3 POC - My experience'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheooTJHrl8GjlpKgTdMod4SEcP2rl3qz141wxlTmwfdSMI_obYBie8Ex-EY95eP5OTkVsLmh4s4AQehLLf2XN7h0g-Nux4TxKNDbOJXW-AZXhE3mfBMtjljr1eJ4t6K0Nv7WW_u_-g80U/s72-c/pic000.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-4234421358195295733</id><published>2017-03-05T22:59:00.002+10:00</published><updated>2017-03-05T23:00:23.670+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Azure AD"/><category scheme="http://www.blogger.com/atom/ns#" term="Graph API"/><category scheme="http://www.blogger.com/atom/ns#" term="Intune"/><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft Graph API"/><category scheme="http://www.blogger.com/atom/ns#" term="Powershell"/><title type='text'>Create Intune iOS Policy using Microsoft Graph API and Powershell</title><content type='html'>&lt;div style=&quot;border: 0px; font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 21px; font-stretch: inherit; line-height: 32px; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
This is my first post in a while but I&#39;m returning in great style with a very interesting topic to talk about.&lt;br /&gt;
&lt;br /&gt;
The Microsoft Graph API is a very powerful way to consume, integrate and interact with Microsoft Cloud services. In this post, I will run you through the steps required to create an iOS compliance policy in Intune using the Graph API.&lt;br /&gt;
&lt;br /&gt;
My intention here is to make you realize how important and ground breaking this is. Imagine yourself having to configure an Intune tenant. All the compliance policies, configuration policies, applications, etc. Now imagine you can automate everything and set up an Intune tenant in minutes instead of hours or even days. This is the new reality. This is what the Microsoft Graph API empowers us to do.&lt;br /&gt;
&lt;span style=&quot;color: rgba(0 , 0 , 0 , 0.85098); font-family: &amp;quot;source sans pro&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: rgba(0 , 0 , 0 , 0.85098); font-family: &amp;quot;source sans pro&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;&lt;b&gt;Assumptions:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;border: 0px; font-family: &amp;quot;source serif pro&amp;quot;, serif; font-size: 21px; font-stretch: inherit; line-height: 32px; margin: 0px 0px 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;li style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 2.4rem 0px 2.4rem 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Intune tenant in the new Azure portal (portal.azure.com)&lt;/li&gt;
&lt;li style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 2.4rem 0px 2.4rem 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;An app in Azure registered with the correct delegations to create policies in Intune. Refer to https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-integrating-applications&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: inherit; font-size: 21px; font-style: inherit; font-weight: inherit;&quot;&gt;Once you have your app registered, run the following code in PowerShell to get an access token:&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;color: rgba(0 , 0 , 0 , 0.701960784313725);&quot;&gt;&lt;span style=&quot;font-size: 21px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;Add-Type -AssemblyName System.Web
$graphURL = &quot;https://graph.microsoft.com&quot;
$appID = &quot;Replace-with-AppicationID&quot;
﻿$appKey = &quot;Replace-with-Key-Value&quot;
$appUri = &quot;https://localhost:8000&quot;﻿
$appIDEncoded = [System.Web.HttpUtility]::UrlEncode($appID)
$appKeyEncoded = [System.Web.HttpUtility]::UrlEncode($appKey)
$appUriEncoded =  [System.Web.HttpUtility]::UrlEncode($appUri)
$graphEncoded = [System.Web.HttpUtility]::UrlEncode($graphURL)
$delEncoded = [System.Web.HttpUtility]::UrlEncode(&quot;https://outlook.office.co﻿m/user.readwrite.all&quot;)

﻿Function Get-AuthCode {
    Add-Type -AssemblyName System.Windows.Forms

    $form = New-Object -TypeName System.Windows.Forms.Form -Property @{Width=440;Height=640}
    $web  = New-Object -TypeName System.Windows.Forms.WebBrowser -Property @{Width=420;Height=600;Url=($url -f ($Scope -join &quot;%20&quot;)) }

    $DocComp  = {
        $Global:uri = $web.Url.AbsoluteUri        
        if ($Global:uri -match &quot;error=[^&amp;amp;]*|code=[^&amp;amp;]*&quot;) {$form.Close() }
    }
    $web.ScriptErrorsSuppressed = $true
    $web.Add_DocumentCompleted($DocComp)
    $form.Controls.Add($web)
    $form.Add_Shown({$form.Activate()})
    $form.ShowDialog() | Out-Null

    $queryOutput = [System.Web.HttpUtility]::ParseQueryString($web.Url.Query)
    $output = @{}
    foreach($key in $queryOutput.Keys){
        $output[&quot;$key&quot;] = $queryOutput[$key]
    }

}

$url = &quot;https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&amp;amp;redirect_uri=$appUriEncoded&amp;amp;client_id=$appID&amp;amp;resource=$graphEncoded&amp;amp;prompt=admin_consent&amp;amp;scope=$delEncoded&quot;
Get-AuthCode

$regex = &#39;(?&amp;lt;=code=)(.*)(?=&amp;amp;)&#39;
$authCode  = ($uri | Select-string -pattern $regex).Matches[0].Value

$body = &quot;grant_type=authorization_code&amp;amp;redirect_uri=$appUri&amp;amp;client_id=$appId&amp;amp;client_secret=$appKeyEncoded&amp;amp;code=$authCode&amp;amp;resource=$resource&quot;
$Authorization = Invoke-RestMethod https://login.microsoftonline.com/common/oauth2/token `
    -Method Post -ContentType &quot;application/x-www-form-urlencoded&quot; `
    -Body $body `
    -ErrorAction STOP

$accesstoken = $Authorization.access_token

$body = &quot;grant_type=authorization_code&amp;amp;redirect_uri=$redirectUri&amp;amp;client_id=$clientId&amp;amp;client_secret=$clientSecretEncoded&amp;amp;code=$authCode&amp;amp;resource=$resource&quot;
$Authorization = Invoke-RestMethod https://login.microsoftonline.com/common/oauth2/token `
    -Method Post -ContentType &quot;application/x-www-form-urlencoded&quot; `
    -Body $body `
    -ErrorAction STOP

$accesstoken = $Authorization.access_token&lt;/pre&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: rgba(0 , 0 , 0 , 0.701961); font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 21px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 21px;&quot;&gt;Now that you have the access token, run the following code to create a new iOS compliance policy in Intune. We interact with the Microsoft Graph API using JSON objects. In the example below we convert a hashtable to a JSON object before feeding it to the Invoke-RestMethod cmdlet.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: rgba(0 , 0 , 0 , 0.701961); font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 21px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;$odata = &quot;@odata.type&quot;
$policy = 
@{
  $odata = &quot;#microsoft.graph.iosCompliancePolicy&quot;
  &quot;description&quot;= &quot;Created using Microsoft Graph&quot;
  &quot;lastModifiedDateTime&quot;= &quot;2017-01-01T00:00:35.1329464-08:00&quot;
  &quot;displayName&quot;= &quot;iOS Compliance Policy&quot;
  &quot;version&quot;= 7
  &quot;passcodeBlockSimple&quot;= $true
  &quot;passcodeExpirationDays&quot;= 6
  &quot;passcodeMinimumLength&quot;= 5
  &quot;passcodeMinutesOfInactivityBeforeLock&quot;= 5
  &quot;passcodePreviousPasscodeBlockCount&quot;= 2
  &quot;passcodeMinimumCharacterSetCount&quot;= 0
  &quot;passcodeRequiredType&quot;= &quot;alphanumeric&quot;
  &quot;passcodeRequired&quot;= $true
  &quot;osMinimumVersion&quot;= &quot;8.0&quot;
  &quot;osMaximumVersion&quot;= &quot;10.0&quot;
  &quot;securityBlockJailbrokenDevices&quot;= $true
  &quot;deviceThreatProtectionEnabled&quot;= $true
  &quot;deviceThreatProtectionRequiredSecurityLevel&quot;= &quot;low&quot;
} | ConvertTo-Json

Invoke-RestMethod -Headers @{Authorization = &quot;Bearer $accesstoken&quot;} `
                         -Uri  https://graph.microsoft.com/beta/deviceManagement/deviceCompliancePolicies/ `
                         -Method POST `
			 -Body $policy `
                         -ContentType &quot;application/json&quot;&lt;/pre&gt;
&lt;span style=&quot;color: rgba(0 , 0 , 0 , 0.701961); font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 21px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 21px;&quot;&gt;Wow! So powerful. And this is just one example! I will provide 2 more examples to wrap this up.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 21px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 21px;&quot;&gt;The following code will list of Intune enrolled devices or Azure AD joined devices:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: rgba(0 , 0 , 0 , 0.701961); font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 21px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;Invoke-RestMethod -Headers @{Authorization = &quot;Bearer $accesstoken&quot;} `
                        -Uri  https://graph.microsoft.com/v1.0/devices `
                        -Method Get | select -expand value&lt;/pre&gt;
&lt;span style=&quot;color: rgba(0 , 0 , 0 , 0.701961); font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 21px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 21px;&quot;&gt;The following code will create a new user in Azure AD:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: rgba(0 , 0 , 0 , 0.701961); font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 21px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;$user = @{
  &quot;accountEnabled&quot; = $true
  &quot;displayName&quot; = &quot;Donald Trump&quot;
  &quot;mailNickname&quot; = &quot;donald.trump&quot;
  &quot;userPrincipalName&quot; = &quot;donald.trump@felipebinottohotmail.onmicrosoft.com&quot;
  &quot;passwordProfile&quot; = @{
    &quot;forceChangePasswordNextSignIn&quot; = $false
    &quot;password&quot; = &quot;P@ssw0rd1!&quot;
  }
  
} | ConvertTo-Json

$newuser = Invoke-RestMethod -Headers @{Authorization = &quot;Bearer $accesstoken&quot;} `
                         -Uri https://graph.microsoft.com/v1.0/users `
                         -Method POST `
                         -Body $user `
                         -ContentType &quot;application/json&quot;&lt;/pre&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 21px;&quot;&gt;As you can see there is so much you can do leveraging the Microsoft Graph API. Some APIs are still in Beta but I&#39;m sure Microsoft will soon make them production ready and expand their functionality. Very exciting to say the least.&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/4234421358195295733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2017/03/create-intune-ios-policy-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/4234421358195295733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/4234421358195295733'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2017/03/create-intune-ios-policy-using.html' title='Create Intune iOS Policy using Microsoft Graph API and Powershell'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-579182088699777948</id><published>2014-11-11T18:23:00.001+10:00</published><updated>2014-11-11T18:23:54.954+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="directaccess"/><category scheme="http://www.blogger.com/atom/ns#" term="domain profile"/><category scheme="http://www.blogger.com/atom/ns#" term="external adapter forwarding state"/><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="windows server 2012"/><title type='text'>DirectAccess - External Adapter Forwarding State</title><content type='html'>Recently I have encountered this error message in my DirectAccess set up. It just came out of the blue. Everything was working OK until it was not. I have also noticed both network cards were assigned the domain profile.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTKFVXbjOJ84Oll4dqa8nPsbVKiDwS1wk1cTnoKSPkR9i7P54GgOZfXd71DoyC2QVKe9i8B1j7c4mjSJlatCTa7-Rg7PbE3VoAmlRcyq2P9-M6loDAs0liQ29L48M8M-kBBYWAMs3-FNM/s1600/da1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTKFVXbjOJ84Oll4dqa8nPsbVKiDwS1wk1cTnoKSPkR9i7P54GgOZfXd71DoyC2QVKe9i8B1j7c4mjSJlatCTa7-Rg7PbE3VoAmlRcyq2P9-M6loDAs0liQ29L48M8M-kBBYWAMs3-FNM/s1600/da1.png&quot; height=&quot;120&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
I had a MuliSite DA running on Windows Server 2012 R2 with 2 NICs with 2 consecutive public IP addresses.&lt;br /&gt;
&lt;br /&gt;
I did some research and I found a few possible solutions but they were all for Forefront UAG 2010.&lt;br /&gt;
&lt;br /&gt;
I will list all of them here but only one worked for me.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1.&lt;/b&gt; Check that forwarding is not enabled in your external adapter. If forwarding is enabled traffic could have been forwarded from the external to the internal network adapter eventually reaching a domain controller. You can check that with the following command:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;netsh int ipv6 show int external&lt;/pre&gt;
&lt;br /&gt;
where &quot;external&quot; is the name of your external network interface.&lt;br /&gt;
&lt;br /&gt;
The parameter &lt;b&gt;&quot;Forwarding&quot;&lt;/b&gt; should be set to &lt;b&gt;disabled&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. &lt;/b&gt;Create a firewall rule to block traffic from your external network adapter to all domain controllers. This could actually work but I decided this would be my last resort so in the end I didn&#39;t have to use it.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3. &lt;/b&gt;Check your routes. Check there is no entry where the interface is your external adapter&#39;s IP and the network destination is an IP or IP Subnet where a DC is located.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4. The real deal. Clear NLA registry entries for the external adapter, disable it and re-enable it.&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
Locate the following key and delete any entries where you see the IP(s) of the external network adapter.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Nla\Cache\IntranetAuth&lt;/pre&gt;
&lt;br /&gt;
Now disable and re-enable the external network adapter and DirectAccess should be happy again.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/579182088699777948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2014/11/directaccess-external-adapter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/579182088699777948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/579182088699777948'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2014/11/directaccess-external-adapter.html' title='DirectAccess - External Adapter Forwarding State'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTKFVXbjOJ84Oll4dqa8nPsbVKiDwS1wk1cTnoKSPkR9i7P54GgOZfXd71DoyC2QVKe9i8B1j7c4mjSJlatCTa7-Rg7PbE3VoAmlRcyq2P9-M6loDAs0liQ29L48M8M-kBBYWAMs3-FNM/s72-c/da1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-5586436149865186819</id><published>2014-10-03T18:19:00.000+10:00</published><updated>2014-10-03T18:19:17.804+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="automation"/><category scheme="http://www.blogger.com/atom/ns#" term="collection"/><category scheme="http://www.blogger.com/atom/ns#" term="SCCM 2012"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><category scheme="http://www.blogger.com/atom/ns#" term="uninstall"/><category scheme="http://www.blogger.com/atom/ns#" term="unused"/><category scheme="http://www.blogger.com/atom/ns#" term="use it or lose it"/><title type='text'>SCCM 2012 - Automatically uninstall unused applications</title><content type='html'>In this post I will explain how to automate the uninstall of applications that are not used in a number of days.&lt;br /&gt;
&lt;br /&gt;
This is useful for a number of reasons but mostly to save on licenses.&lt;br /&gt;
&lt;br /&gt;
The following is the workflow until it gets to the automatic uninstall of the application.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0DD44lvYp0y9ELXpTIfnh5FxsLxBa46Hhxjr7k18VoP-4T2PmSw7wxW8JSjic9GMQ9NCZrL9zR5Z7v5jX9S098CspqcG5khJjBeJRe4vr52ZFtUBBjA6E9KMEtDGU1X29Z6qwFzy_woU/s1600/UseItORLoseItv3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0DD44lvYp0y9ELXpTIfnh5FxsLxBa46Hhxjr7k18VoP-4T2PmSw7wxW8JSjic9GMQ9NCZrL9zR5Z7v5jX9S098CspqcG5khJjBeJRe4vr52ZFtUBBjA6E9KMEtDGU1X29Z6qwFzy_woU/s1600/UseItORLoseItv3.jpg&quot; height=&quot;227&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Once you follow all the steps of this post no further interaction is required. When a condition is met the application will automatically be uninstalled from the computer.&lt;br /&gt;
&lt;br /&gt;
Let&#39;s get started. I&#39;m going to use as example the automatic uninstall of WinZip (a licensed application) if it&#39;s not used for 90 days or more.&lt;br /&gt;
&lt;br /&gt;
First thing create a Software Metering rule for WinZip.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKnR2UkQwoRXw4TTBCF6DUy9TFq7klK01QR5BhJsKTT8phNEDBLg51-quuxttdrZJMa50ei13VrdmtyiLdAdPHsOvzgkMiqBbp1eiPK5UOsISQTq4p1tdATLnyeIa9H8TRAuoW0Z-buWA/s1600/UOL6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKnR2UkQwoRXw4TTBCF6DUy9TFq7klK01QR5BhJsKTT8phNEDBLg51-quuxttdrZJMa50ei13VrdmtyiLdAdPHsOvzgkMiqBbp1eiPK5UOsISQTq4p1tdATLnyeIa9H8TRAuoW0Z-buWA/s1600/UOL6.png&quot; height=&quot;97&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjABluzulrkT-t1VoMQ9byC7PneG1gR09M7hjEBO2Dkf76SZNoOvFasQUKmqbQVNZuTyW_k_URIVzcFpEix-ZoKYYbwbOfJZQF8c0F0DGZNDLZdCfWu3nAH7lhyE-gaoJVvTiXdA50jR9o/s1600/UOL7.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjABluzulrkT-t1VoMQ9byC7PneG1gR09M7hjEBO2Dkf76SZNoOvFasQUKmqbQVNZuTyW_k_URIVzcFpEix-ZoKYYbwbOfJZQF8c0F0DGZNDLZdCfWu3nAH7lhyE-gaoJVvTiXdA50jR9o/s1600/UOL7.png&quot; height=&quot;174&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Once the rule is created, select it and from the Summary at the bottom of the console take note of the Internal Rule ID which will be used in a Collection Query later.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIRFHFD50Dz1mkHolvaV9Tgj3Na1tD3FQaNcn7hZ2PothmiU6tILcxK7PjyiAUJYPryFl423bik2ZPSxJAKg7a_bQPaN9oZ8ZIis18XvWZzIcXijPH_nSrN2CyJr9VX73OMtBAvLNyV68/s1600/UOL8.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIRFHFD50Dz1mkHolvaV9Tgj3Na1tD3FQaNcn7hZ2PothmiU6tILcxK7PjyiAUJYPryFl423bik2ZPSxJAKg7a_bQPaN9oZ8ZIis18XvWZzIcXijPH_nSrN2CyJr9VX73OMtBAvLNyV68/s1600/UOL8.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Now create the following collections:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;INSTALL WinZip&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
The membership can be Direct or Query based. In this case I will chose query based which is the most complex but most common scenario. Limit the&amp;nbsp;membership&amp;nbsp;to All Systems.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdSUEdhaelYnDYfQ5GPvFrXEFZ3fbjH2n7jhP8CWze2HT2tU5oMlz1WI46jNGtTw3hGcgUxSJCCRSYPxZGuv3KgPNBTGFgUa-1Wk_bzf0yCh14Y8cw0eQ9oUpt1njM6KcMCrDQHo0n1Kc/s1600/UOL1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdSUEdhaelYnDYfQ5GPvFrXEFZ3fbjH2n7jhP8CWze2HT2tU5oMlz1WI46jNGtTw3hGcgUxSJCCRSYPxZGuv3KgPNBTGFgUa-1Wk_bzf0yCh14Y8cw0eQ9oUpt1njM6KcMCrDQHo0n1Kc/s1600/UOL1.png&quot; height=&quot;187&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Let&#39;s assumed that my domain is&amp;nbsp;ITSELF and the AD Groups is named WinZip. The following query will retrieve all member of the ITSELF\WinZip AD Group.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(204, 204, 204); overflow: auto; padding: 6px 10px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-size: 12px; line-height: 19px;&quot;&gt;select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System where SMS_R_System.SystemGroupName = &quot;ITSELF\\WinZip&quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; font-size: 12px; line-height: 19px;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;br /&gt;
This collection will have the WinZip install deployed to it.&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;UNINSTALL WinZip&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
The membership should be Query based. Limit the&amp;nbsp;membership&amp;nbsp;to All Systems. The following query will retrieve&amp;nbsp;all computers which have WinZip installed.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBhi5sB2uWhTGkDjxosbtJZObk_GPZjBnn6QktcYah9Fv6sN3or9V-E7G9NyC_DrTV9Kk2GFT4ixgPI3dARtlunkCyIcto_1tId1S7DkvmhyIFSkgC-DYWk_Vt1bOLKfNIgIrq7oqlBRg/s1600/UOL2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBhi5sB2uWhTGkDjxosbtJZObk_GPZjBnn6QktcYah9Fv6sN3or9V-E7G9NyC_DrTV9Kk2GFT4ixgPI3dARtlunkCyIcto_1tId1S7DkvmhyIFSkgC-DYWk_Vt1bOLKfNIgIrq7oqlBRg/s1600/UOL2.png&quot; height=&quot;178&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(204, 204, 204); overflow: auto; padding: 6px 10px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-size: 12px; line-height: 19px;&quot;&gt;select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_AppClientState on SMS_G_System_AppClientState.MachineName = SMS_R_System.Name where SMS_G_System_AppClientState.ComplianceState = 1 and SMS_G_System_AppClientState.AppName like &quot;%WinZip%&quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
This collection will have the WinZip uninstall deployed to it.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;USED IN THE LAST 90 DAYS WinZip&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The membership should be Query based. Limit the membership to the INSTALL WinZip collection.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlFnL0DYKQU9l_bBVHjmmaTTFBll3xGzIgMmhpGivtY70Nh8ZSB9jNoYNa6IMMDDC0lJuZDHLi8BfoJxLOAzb4b-zYQ9MePo80ISn_4Vkjvtlj6geseDCk8uhIG2gxEv5Vpx_qWt5BMug/s1600/UOL3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlFnL0DYKQU9l_bBVHjmmaTTFBll3xGzIgMmhpGivtY70Nh8ZSB9jNoYNa6IMMDDC0lJuZDHLi8BfoJxLOAzb4b-zYQ9MePo80ISn_4Vkjvtlj6geseDCk8uhIG2gxEv5Vpx_qWt5BMug/s1600/UOL3.png&quot; height=&quot;195&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The following query will retrieve the Software Metering data collected for WinZip using the Rule ID I told you to take note in the beginning of this post. But it doesn&#39;t get all computers which have used WinZip, it only retrieve those which have used it in the last 90 days.&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(204, 204, 204); overflow: auto; padding: 6px 10px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-size: 12px; line-height: 19px;&quot;&gt;select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_SYSTEM inner join SMS_MonthlyUsageSummary on SMS_R_SYSTEM.ResourceID = SMS_MonthlyUsageSummary.ResourceID INNER JOIN SMS_MeteredFiles ON SMS_MonthlyUsageSummary.FileID = SMS_MeteredFile.MeteredFileID WHERE DateDiff(day, SMS_MonthlyUsageSummary.LastUsage, GetDate()) &amp;lt; 90  AND SMS_MeteredFiles.RuleID = 16777317&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
There is nothing deployed to this collection.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;AUTOMATIC UNINSTALL WinZip&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
This collection should be limited to the INSTALL WinZip collection.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9mXkCCyQYXyq5kf-gvDvirpr5-JJzUtGUpWF5CrAEyi8h7qz9vmctqiVjRShbRIbSuj8P5pRQMHiRWsUJZK_4GMGLG2v7a_c393yCjuZ4S8up9jhu9RsimwwFeTKiTqcxW7C6GtsWB4I/s1600/UOL4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9mXkCCyQYXyq5kf-gvDvirpr5-JJzUtGUpWF5CrAEyi8h7qz9vmctqiVjRShbRIbSuj8P5pRQMHiRWsUJZK_4GMGLG2v7a_c393yCjuZ4S8up9jhu9RsimwwFeTKiTqcxW7C6GtsWB4I/s1600/UOL4.png&quot; height=&quot;190&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The membership should be the &lt;b&gt;inclusion&lt;/b&gt; of the INSTALL Winzip Collection and the &lt;b&gt;exclusion&lt;/b&gt;&amp;nbsp;of the USED IN THE LAST 90 DAYS WinZip collection.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ1ovjhX88RP85Rx4C4_L4Bs-0x3KD0nFGVNCvIWPplAID5WMvKmpnOnQlnH3258S9sKF6VKyMpFT_Wlz-QEGknSx2Ikk2WdxqnTQxsd9W1Q2Fwrpl14hzrMEprwMgHH_21HBvBeimXLc/s1600/UOL5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ1ovjhX88RP85Rx4C4_L4Bs-0x3KD0nFGVNCvIWPplAID5WMvKmpnOnQlnH3258S9sKF6VKyMpFT_Wlz-QEGknSx2Ikk2WdxqnTQxsd9W1Q2Fwrpl14hzrMEprwMgHH_21HBvBeimXLc/s1600/UOL5.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
There is nothing deployed to this collection also.&lt;br /&gt;
&lt;br /&gt;
OK now we have all the collections required and they should reflect the correct numbers.&lt;br /&gt;
&lt;br /&gt;
Next step is to create a daily scheduled task which will run the script below. The scheduled task should run using an user which has both permissions to remove members of SCCM collections and remove members of AD groups.&lt;br /&gt;
&lt;br /&gt;
The script below will go through all the AUTOMATIC UNINSTALL collections and it will retrieve a list of its members. Then it will search for those members in the INSTALL collection and in the AD Group and it will remove them from there.&lt;br /&gt;
&lt;br /&gt;
Once they are removed from the collection the Uninstall Deploy will trigger and uninstall the application.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Note that we must have a good name convention for your collections and AD groups. They should all match in order for this to work. For example if the collection is INSTALL Winzip, your AD group should be named WinZip. Of course you can adapt the script to fit your environment.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(204, 204, 204); overflow: auto; padding: 6px 10px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-size: 12px; line-height: 19px;&quot;&gt;#Gets current date to append to log
$date = (get-date).ToShortDateString().replace(&quot;/&quot;,&quot;&quot;)

#Log location and log name
$logfile = &quot;C:\Temp\AutomaticUninstall$date.log&quot;

#Writes first line to log
&quot;Starting AutomaticUninstall.ps1...&quot; | Out-File $logfile

#Imports SCCM module
Import-Module ($Env:SMS_ADMIN_UI_PATH.ToString().SubString(0,$Env:SMS_ADMIN_UI_PATH.Length - 5) + &quot;\ConfigurationManager.psd1&quot;)

#Imports AD module
Import-Module ActiveDirectory

#Gets SCCM Site Code
$SMSProvider = get-wmiobject sms_providerlocation -namespace root\sms -filter “ProviderForLocalSite = True”
$SiteCode = $SMSProvider.SiteCode

#Change location to SCCM drive
Set-Location &quot;$SiteCode:&quot;

#Get a list of all collections which starts with AUTOMATIC UNINSTALL
$collections = Get-CMDeviceCollection -Name &quot;AUTOMATIC UNINSTALL*&quot; | select Name, MemberCount

#for each collection
foreach($collection in $collections){

#if current collection has more than 1 member
    if($collection.MemberCount -gt 0){

#Write current collection name to log
    &quot;Collection: $($collection.name)&quot; | Out-File $logfile -append

#Get members of the current collection
    $devices = Get-CMDevice -CollectionName $collection.Name | Select -ExpandProperty Name

#Get name of AD Group
    $group = $collection.Name.Replace(&quot;AUTOMATIC UNINSTALL &quot;,&quot;&quot;)

#Get name of the current INSTALL collection
    $InstallCollection = &quot;INSTALL $group&quot;

#for each computer in the current collection
    foreach($device in $devices){

#Write computer name to log        
 &quot;Member removed: $device&quot; | Out-File $logfile -append

#Remove computer from AD group
        Try{Remove-ADGroupMember -Identity $group -Members (Get-ADComputer $device) -Confirm:$False -ErrorAction SilentlyContinue}
        Catch{}

#Remove computer from current INSTALL collection
        Remove-CMDeviceCollectionDirectMembershipRule -CollectionName $InstallCollection -ResourceName $device -Force
        }
    }
}&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/5586436149865186819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2014/10/sccm-2012-automatically-uninstall.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/5586436149865186819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/5586436149865186819'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2014/10/sccm-2012-automatically-uninstall.html' title='SCCM 2012 - Automatically uninstall unused applications'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0DD44lvYp0y9ELXpTIfnh5FxsLxBa46Hhxjr7k18VoP-4T2PmSw7wxW8JSjic9GMQ9NCZrL9zR5Z7v5jX9S098CspqcG5khJjBeJRe4vr52ZFtUBBjA6E9KMEtDGU1X29Z6qwFzy_woU/s72-c/UseItORLoseItv3.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-4021580687642601533</id><published>2014-08-31T17:45:00.000+10:00</published><updated>2014-08-31T17:45:28.854+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Application Virtualization"/><category scheme="http://www.blogger.com/atom/ns#" term="AppV"/><category scheme="http://www.blogger.com/atom/ns#" term="broker history"/><category scheme="http://www.blogger.com/atom/ns#" term="Recipe"/><category scheme="http://www.blogger.com/atom/ns#" term="Sequencing"/><category scheme="http://www.blogger.com/atom/ns#" term="vmware view client"/><title type='text'>Sequencing VMware View Client 5.x with broker history using App-V - Recipe</title><content type='html'>In this demonstration I will be using App-V Sequencer 5 SP2 running on a Windows 7 SP1 Enterprise 64-bit.&lt;br /&gt;
&lt;br /&gt;
Start the sequencer and select Create a New Virtual Application Package.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQV66AArRlTi5ZcpbjiFMh3mjDneOlzIIvg3VADymKDqJBg8nCo-AyKPwD1YvqbL-uhbXuZ1sX6n5IB6Fe1Sd8BYIw4oUdd8Y2-L_3hegIR3zWAWEAS8U2mPoGIaXaknnHqdTtMTOEaZc/s1600/vmware1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQV66AArRlTi5ZcpbjiFMh3mjDneOlzIIvg3VADymKDqJBg8nCo-AyKPwD1YvqbL-uhbXuZ1sX6n5IB6Fe1Sd8BYIw4oUdd8Y2-L_3hegIR3zWAWEAS8U2mPoGIaXaknnHqdTtMTOEaZc/s1600/vmware1.png&quot; height=&quot;208&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Select Create Package (default) and click on Next.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDCuAwyK8VLfrFbab2O1rq1o_Lzf8aeH81YlFli9YUyPZen0oh4O6GVrd5RXjkACUa7eXWOX8J4_a1u_n2Ypu5zNoLK6UpLxX9YCpPpvET07F9eV1zMsrX5FHwBtr1vr886laJM5RYmQs/s1600/vmware2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDCuAwyK8VLfrFbab2O1rq1o_Lzf8aeH81YlFli9YUyPZen0oh4O6GVrd5RXjkACUa7eXWOX8J4_a1u_n2Ypu5zNoLK6UpLxX9YCpPpvET07F9eV1zMsrX5FHwBtr1vr886laJM5RYmQs/s1600/vmware2.png&quot; height=&quot;65&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Make sure there is nothing to be resolved before start sequencing.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRzZLXy8UoKnS8Oyv-jkXEqUczoHGhRdBDLnkFKumYK3BdFU3ixKs2pK2Hj7Nw04mZeD61S1K6j26tPUf32EoDAhE74Yr3Uvy-IPoZw7i3Y-rMPSvemjWZaksXOVZrJzrRBxlCXj8yrn4/s1600/vmware3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRzZLXy8UoKnS8Oyv-jkXEqUczoHGhRdBDLnkFKumYK3BdFU3ixKs2pK2Hj7Nw04mZeD61S1K6j26tPUf32EoDAhE74Yr3Uvy-IPoZw7i3Y-rMPSvemjWZaksXOVZrJzrRBxlCXj8yrn4/s1600/vmware3.png&quot; height=&quot;55&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Select the installer.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_DMVuOI2rz5VueaatjUkQ8RuVjZIAaPeoFdRI5HIo_ALA2B3Msu8qiisIXqbYWmwiSUTcsm0NDA4GuurGUqs85Z-NekMKiHngQJw6oZqToenKs-te_FvP8pBsrrAQYBdmd8ChfONubAs/s1600/vmware4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_DMVuOI2rz5VueaatjUkQ8RuVjZIAaPeoFdRI5HIo_ALA2B3Msu8qiisIXqbYWmwiSUTcsm0NDA4GuurGUqs85Z-NekMKiHngQJw6oZqToenKs-te_FvP8pBsrrAQYBdmd8ChfONubAs/s1600/vmware4.png&quot; height=&quot;78&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Give the package a name and select the installation directory.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvnYUI8WDAmnEYDzqgfz7YClUDa7YDv77QM6ySttVsEvwRyhTAarW9TM9ICKupl3g94RjmRLskueBQpSGptGLFzgh6x4PGtHjjhiGbsRWro-RtJvELlVr76srDDBPR2syrncvCu3hyMxU/s1600/vmware5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvnYUI8WDAmnEYDzqgfz7YClUDa7YDv77QM6ySttVsEvwRyhTAarW9TM9ICKupl3g94RjmRLskueBQpSGptGLFzgh6x4PGtHjjhiGbsRWro-RtJvELlVr76srDDBPR2syrncvCu3hyMxU/s1600/vmware5.png&quot; height=&quot;118&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Once the installer starts make sure you change the destination folder to match the installation directory you chose in the last step.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixyX1tocgx6r8oTFhq4hjY74qe38Yx4rqqFjP0YqBBnlxdKpmKTrmej1DVT9C3m376JYEC8H_5ifr2HVfjhvQB3fbxGtm61y1E8AXD12hUBrR8s45v_GN3Mxpl91Bxur00w5yX1EzUZkU/s1600/vmware6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixyX1tocgx6r8oTFhq4hjY74qe38Yx4rqqFjP0YqBBnlxdKpmKTrmej1DVT9C3m376JYEC8H_5ifr2HVfjhvQB3fbxGtm61y1E8AXD12hUBrR8s45v_GN3Mxpl91Bxur00w5yX1EzUZkU/s1600/vmware6.png&quot; height=&quot;240&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Leave this blank.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6yVQzO9uJjLQThmBRrIRg0LOI-0RXx-etmFCWPRQ42KSZZB-l2MdyE_Jun6928NljaCL34ZuLbbdBHP0IHlZ3EUWUoMOKQgZkpw2axdLJfOrkTh8w_LWO7V7jT1JgaRoIL8hSI6ZE6b4/s1600/vmware7-1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6yVQzO9uJjLQThmBRrIRg0LOI-0RXx-etmFCWPRQ42KSZZB-l2MdyE_Jun6928NljaCL34ZuLbbdBHP0IHlZ3EUWUoMOKQgZkpw2axdLJfOrkTh8w_LWO7V7jT1JgaRoIL8hSI6ZE6b4/s1600/vmware7-1.png&quot; height=&quot;242&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
When prompt to restart select No.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv4MvEiEujRXd-__XbMESmwxjiiQCTCaGnv036UsiHYleKyebFVM4dXm2vP8tMQ4H1sT6h-_rnGcBHd2r-ztoSchX8Bjd1t9dYHxRFgh-NNPtWI_9HtYgajG1LjSGAwCqaL_5_bytnO9U/s1600/vmware8.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv4MvEiEujRXd-__XbMESmwxjiiQCTCaGnv036UsiHYleKyebFVM4dXm2vP8tMQ4H1sT6h-_rnGcBHd2r-ztoSchX8Bjd1t9dYHxRFgh-NNPtWI_9HtYgajG1LjSGAwCqaL_5_bytnO9U/s1600/vmware8.png&quot; height=&quot;148&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Once the installation is finished select I am finished installing and click on next.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHvdSHCKOGnc5BeW3EgrfT6Gs2yKe1ELXPi-LwaLm10XV4fSBm-AXEn_qrDlbTcUhe5Q1yucLQcHVGy6NHq2sAZoH45Bu8c3qp_35biRc5VpqfJXYLHA0eGv4UcC1dERGtjfV4pHY4sj4/s1600/vmware9.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHvdSHCKOGnc5BeW3EgrfT6Gs2yKe1ELXPi-LwaLm10XV4fSBm-AXEn_qrDlbTcUhe5Q1yucLQcHVGy6NHq2sAZoH45Bu8c3qp_35biRc5VpqfJXYLHA0eGv4UcC1dERGtjfV4pHY4sj4/s1600/vmware9.png&quot; height=&quot;199&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Run Selected. Wait until VMware View Client stats and then close it.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj05-W6p_EaeoNI3FqI2lxBvMuhNBl_hQCgT-DCE6GugPjognLErMz2POTJinpl-8IK-Zez2GnjXYt4TB58pnA-VuJpKREFXvhuqnqDpR8xjrWTFLbbfR4IZeyg5XLyIWuPG7m-O588L7E/s1600/vmware10.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj05-W6p_EaeoNI3FqI2lxBvMuhNBl_hQCgT-DCE6GugPjognLErMz2POTJinpl-8IK-Zez2GnjXYt4TB58pnA-VuJpKREFXvhuqnqDpR8xjrWTFLbbfR4IZeyg5XLyIWuPG7m-O588L7E/s1600/vmware10.png&quot; height=&quot;192&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Now open the Windows Registry and browse to HKCU\Software\VMware, Inc.\VMware VDM\Client, right click it and select New Multi-String Value.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitrapsu0WlD17C-lnJS_FynFqjDGHmJgFT_7XEUpxnAP0TO-AttYXH1a5GeIvOFTA0fZ8llFz1fP2gTRvTRJ-E5PiCwt82QRBrr54mBKTYuvSY1LIbLoUmhwO7GAbdBrvs7Dia8KfOPuw/s1600/vmware11.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitrapsu0WlD17C-lnJS_FynFqjDGHmJgFT_7XEUpxnAP0TO-AttYXH1a5GeIvOFTA0fZ8llFz1fP2gTRvTRJ-E5PiCwt82QRBrr54mBKTYuvSY1LIbLoUmhwO7GAbdBrvs7Dia8KfOPuw/s1600/vmware11.png&quot; height=&quot;320&quot; width=&quot;307&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Name it BrokerHistory and in the value data type the server names which should be available from the drop down list in VMware View Client. Click OK and close the Windows Registry. Click on Next.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNM0gfBighfyFmRBl3fnVHcPPGt9XbO2T5hVT8fQTJNpK8x__PPlqCg5-hYqh3T6E7EkYOSgiOrv7NtRqcO5uKxi7-oh9xWQkbw46D0_gzitlng8t3_FwfvKU1t0bTjMuUV1syxAZ1Yok/s1600/vmware12.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNM0gfBighfyFmRBl3fnVHcPPGt9XbO2T5hVT8fQTJNpK8x__PPlqCg5-hYqh3T6E7EkYOSgiOrv7NtRqcO5uKxi7-oh9xWQkbw46D0_gzitlng8t3_FwfvKU1t0bTjMuUV1syxAZ1Yok/s1600/vmware12.png&quot; height=&quot;320&quot; width=&quot;297&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
If you left the default options you should see the below &quot;Unsupported driver detected&quot;. This is related to the USB redirection. Either install the driver manually or disable USB redirection. Click on next.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUhyKWd-KQsKi5rwquYfeBo-642qiElK6Dc6Fg8QC8g911iPMQoj16TbWLoT9YM-ToViRpnU5Z70HtCZe7yxaGkU0xoCF4aSRYLrZkelBSZic0aAKBSRb_QGpGSpElAegAMwFOjPXTTA4/s1600/vmware13.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUhyKWd-KQsKi5rwquYfeBo-642qiElK6Dc6Fg8QC8g911iPMQoj16TbWLoT9YM-ToViRpnU5Z70HtCZe7yxaGkU0xoCF4aSRYLrZkelBSZic0aAKBSRb_QGpGSpElAegAMwFOjPXTTA4/s1600/vmware13.png&quot; height=&quot;131&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Select Stop now. Click on next.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrPPtjWI74y95ktMYUBm-l2tazwmAQHPa43-m7kIkOCwRnoHG-jniOtdBmbELFEbard7LxEhhb11u4_WIZ1RTw6KqhAIN_mYnmyYKFd7Gl8wpehfMj5iA1I9saqOkUnRLmyvkSFXagGWU/s1600/vmware14.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrPPtjWI74y95ktMYUBm-l2tazwmAQHPa43-m7kIkOCwRnoHG-jniOtdBmbELFEbard7LxEhhb11u4_WIZ1RTw6KqhAIN_mYnmyYKFd7Gl8wpehfMj5iA1I9saqOkUnRLmyvkSFXagGWU/s1600/vmware14.png&quot; height=&quot;135&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Select Save the package now. Type the location where you want the package to be saved and click on Create.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiraVOfL3BPKwbdifKw83N40ARnR2HBsLquxI6Hy9R3nbIbFUzPTqUxlThOmWYzhr2NqZ4S2qob4_xC_LYB9Wtze_FY-Y6ZU9wHrnVXwKUFHfUWFu3KuYZ-Jh9hCbVILqFq_AOT0nLS0Ok/s1600/vmware15.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiraVOfL3BPKwbdifKw83N40ARnR2HBsLquxI6Hy9R3nbIbFUzPTqUxlThOmWYzhr2NqZ4S2qob4_xC_LYB9Wtze_FY-Y6ZU9wHrnVXwKUFHfUWFu3KuYZ-Jh9hCbVILqFq_AOT0nLS0Ok/s1600/vmware15.png&quot; height=&quot;246&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Once you deploy the package you should see the list of connection servers available for selection.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg4bPXiqa9vE1aC_Mg41AGwi8AQ3g4qDQiWVrc67EQZRsPRLkcy74xR18L5Iv0DS0jnKT6F-omEAL0-XWsbrLDN3xJIefC3DEg9Zc4XGP0Mnqp7vr_PR6zTOe88mi67KT_7WxooV5HgB0/s1600/vmware16.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg4bPXiqa9vE1aC_Mg41AGwi8AQ3g4qDQiWVrc67EQZRsPRLkcy74xR18L5Iv0DS0jnKT6F-omEAL0-XWsbrLDN3xJIefC3DEg9Zc4XGP0Mnqp7vr_PR6zTOe88mi67KT_7WxooV5HgB0/s1600/vmware16.png&quot; height=&quot;172&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/4021580687642601533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2014/08/sequencing-vmware-view-client-5x-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/4021580687642601533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/4021580687642601533'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2014/08/sequencing-vmware-view-client-5x-with.html' title='Sequencing VMware View Client 5.x with broker history using App-V - Recipe'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQV66AArRlTi5ZcpbjiFMh3mjDneOlzIIvg3VADymKDqJBg8nCo-AyKPwD1YvqbL-uhbXuZ1sX6n5IB6Fe1Sd8BYIw4oUdd8Y2-L_3hegIR3zWAWEAS8U2mPoGIaXaknnHqdTtMTOEaZc/s72-c/vmware1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-4151743856273070699</id><published>2014-08-29T16:10:00.001+10:00</published><updated>2014-08-29T16:10:50.740+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="custom"/><category scheme="http://www.blogger.com/atom/ns#" term="layout"/><category scheme="http://www.blogger.com/atom/ns#" term="MDT"/><category scheme="http://www.blogger.com/atom/ns#" term="SCCM"/><category scheme="http://www.blogger.com/atom/ns#" term="start menu"/><title type='text'>Customize Windows 8.x Start Menu from Task Sequence</title><content type='html'>Very simple task.&lt;br /&gt;
&lt;br /&gt;
First from a reference computer where all applications which will be in the deployed image are installed customize the start menu as required.&lt;br /&gt;
&lt;br /&gt;
From an elevated powershell run the following:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;Export-StartLayout -as BIN -Path C:\Temp\StartLayout.bin&lt;/pre&gt;
&lt;br /&gt;
There are many ways of placing it to the task sequence. I like to include it to the MDT Toolkit (in this example I will place it in the scripts folder) so I don&#39;t have to create an extra package and then from the task sequence create a new Run Command Line with the following command:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;C:\Windows\System32\WindowsPowershell\v1.0\powershell.exe -noprofile -windowstyle hidden -command Import-StartLayout -LayoutPath %SCRIPTROOT%\StartLayout.bin -MountPath %SYSTEMDRIVE%\&lt;/pre&gt;
&lt;br /&gt;
Just make sure you create the Run Command Line when the MDT Toolkit is cached in the computer.</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/4151743856273070699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2014/08/customize-windows-8x-start-menu-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/4151743856273070699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/4151743856273070699'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2014/08/customize-windows-8x-start-menu-from.html' title='Customize Windows 8.x Start Menu from Task Sequence'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-1128294358246224284</id><published>2014-08-29T15:56:00.001+10:00</published><updated>2014-08-29T15:56:47.573+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="locked"/><category scheme="http://www.blogger.com/atom/ns#" term="SCCM 2012"/><category scheme="http://www.blogger.com/atom/ns#" term="unable to delete aplication"/><category scheme="http://www.blogger.com/atom/ns#" term="unable to edit task sequence"/><title type='text'>SCCM 2012 - Unable to delete application or edit task sequence</title><content type='html'>A few days ago I experienced something unusual where I was unable to delete any applications or edit a task sequence.&lt;br /&gt;
&lt;br /&gt;
I have seen some posts where they recommend to query the SCCM database to check if something is locked and if it is then delete the row. This is not supported and it didn&#39;t work for me but I will post here just for the sake of completeness.&lt;br /&gt;
&lt;br /&gt;
Open the SQL Server Management Studio and browse to the SCCM database.&lt;br /&gt;
Click on New Query.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgPQ6nnzXy17j4KTv7i8da8vBtGsLQBUrlu0SBdLIhGuUpcPXg7qjSsl-GNK1IdObsU8eLiKLMJBzuSDSPkOkn2UOC-Nct3yAvihte8AHmA_c3kSZuNcJbgeqlSYkCJHZfIJNGKjBMrBQ/s1600/SCCM1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgPQ6nnzXy17j4KTv7i8da8vBtGsLQBUrlu0SBdLIhGuUpcPXg7qjSsl-GNK1IdObsU8eLiKLMJBzuSDSPkOkn2UOC-Nct3yAvihte8AHmA_c3kSZuNcJbgeqlSYkCJHZfIJNGKjBMrBQ/s1600/SCCM1.png&quot; height=&quot;320&quot; width=&quot;206&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Type the following and click on Execute:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinRKCJcS8wH7xQ6sYZv7Bc965citeyXvVxfeVzsdzZlEjTmpxQn87gTOh9SeVEU3QSKOCAjdQNmQoDc1n-BgjBQOhyphenhyphenrtaSzCkshXWwOatfYQCmuWYlBm8aMBsWUl-qYLVOE-D_2XMQ7tM/s1600/SCCM2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinRKCJcS8wH7xQ6sYZv7Bc965citeyXvVxfeVzsdzZlEjTmpxQn87gTOh9SeVEU3QSKOCAjdQNmQoDc1n-BgjBQOhyphenhyphenrtaSzCkshXWwOatfYQCmuWYlBm8aMBsWUl-qYLVOE-D_2XMQ7tM/s1600/SCCM2.png&quot; height=&quot;48&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Now if you have something locked it should show up. Get the ID of the locked object and replace it in the command below. Click on Execute.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiiRuJJnKGx12ryk08qk31j0WkqaHYyVYUr1MXRpbLSgnaRvrj66Dq5tRnQvxKB2hLXmxGWhQ59kTAJ02xlvd31v9iX1db5FOAtw3jzj7fyeYKFn02Qcqx2NFL5qG2kPnTyEVssEHlsf4/s1600/SCCM3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiiRuJJnKGx12ryk08qk31j0WkqaHYyVYUr1MXRpbLSgnaRvrj66Dq5tRnQvxKB2hLXmxGWhQ59kTAJ02xlvd31v9iX1db5FOAtw3jzj7fyeYKFn02Qcqx2NFL5qG2kPnTyEVssEHlsf4/s1600/SCCM3.png&quot; height=&quot;60&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
OK now to the solution that worked for me.&lt;br /&gt;
&lt;br /&gt;
Just restart the WMI service or alternatively restart the server.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;net stop winmgmt &amp;amp;&amp;amp; net start winmgmt&lt;/pre&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/1128294358246224284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2014/08/sccm-2012-unable-to-delete-application.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/1128294358246224284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/1128294358246224284'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2014/08/sccm-2012-unable-to-delete-application.html' title='SCCM 2012 - Unable to delete application or edit task sequence'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgPQ6nnzXy17j4KTv7i8da8vBtGsLQBUrlu0SBdLIhGuUpcPXg7qjSsl-GNK1IdObsU8eLiKLMJBzuSDSPkOkn2UOC-Nct3yAvihte8AHmA_c3kSZuNcJbgeqlSYkCJHZfIJNGKjBMrBQ/s72-c/SCCM1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-7371274323553201594</id><published>2014-05-01T20:05:00.001+10:00</published><updated>2014-05-02T14:24:12.483+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="800706BE"/><category scheme="http://www.blogger.com/atom/ns#" term="App-V"/><category scheme="http://www.blogger.com/atom/ns#" term="AppV"/><category scheme="http://www.blogger.com/atom/ns#" term="SCCM"/><category scheme="http://www.blogger.com/atom/ns#" term="streaming"/><title type='text'>Application streaming failing when using SCCM 2012 with App-V integration</title><content type='html'>UPDATE: Hotfix 4&amp;nbsp;released. Download it from &lt;a href=&quot;http://support.microsoft.com/kb/2956985&quot;&gt;HERE&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
And yet another Microsoft bug...&lt;br /&gt;
&lt;br /&gt;
If you were pulling your hair off as I was a few hours ago then you understand the frustration of spending hours of troubleshooting and knowing that everything looks fine and finding that the problem you were experiencing was actually a bug.&lt;br /&gt;
&lt;br /&gt;
Well luck for you if you have found this blog and this fix.&lt;br /&gt;
&lt;br /&gt;
You can identify the problem by looking into the AppEnforce.log and finding the following:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;&lt;span style=&quot;color: black; font-family: Calibri, sans-serif; font-size: 15px; line-height: normal; white-space: normal;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: inherit; font-size: 10.5pt;&quot;&gt;&lt;b&gt;Publish-AppvClientPackage : Failure to communicate with Application Virtualization Service. Operation attempted: Publish AppV Package. HRESULT: 800706BE&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
Now look in the event viewer and find the following:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;&lt;b style=&quot;color: black; font-family: Calibri, sans-serif; font-size: 15px; line-height: 20.13px; white-space: normal;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: &#39;Segoe UI&#39;, sans-serif; font-size: 10.5pt;&quot;&gt;The Microsoft App-V Client service terminated unexpectedly. &amp;nbsp;It has done this 2 time(s).&lt;/span&gt;&lt;/b&gt;&lt;strong style=&quot;color: black; font-family: Calibri, sans-serif; font-size: 15px; line-height: normal; white-space: normal;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: inherit; font-size: 10.5pt;&quot;&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;&lt;b style=&quot;color: black; font-family: Calibri, sans-serif; font-size: 15px; line-height: 18.33px; white-space: normal;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: &#39;Segoe UI&#39;, sans-serif; font-size: 10pt; line-height: 16.66px;&quot;&gt;Faulting application name: AppVClient.exe, version: 5.0.3361.0, time stamp: 0x52781536&lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;background-color: white; font-family: &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 13px; line-height: 16.66px; white-space: normal;&quot;&gt;Faulting module name: AppVEntStreamingManager.dll, version: 5.0.3361.0, time stamp: 0x52781643&lt;/b&gt;&lt;/pre&gt;
&lt;br /&gt;
If you monitor the App-V Service you will see that it stops every time SCCM start caching the initial files for streaming.&lt;br /&gt;
&lt;br /&gt;
If you are experiencing the above then there are 2 workaround. The manual and the automated:&lt;br /&gt;
&lt;br /&gt;
Manual:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri, sans-serif; font-size: 15px;&quot;&gt;Open powershell as admin and type:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri, sans-serif; font-size: 15px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;&lt;span style=&quot;color: black; font-family: Calibri, sans-serif; font-size: 15px; line-height: normal; white-space: normal;&quot;&gt;Import-Module AppvClient; Set-AppvClientConfiguration –IgnoreLocationProvider 1&lt;/span&gt;&lt;b style=&quot;color: black; font-family: Calibri, sans-serif; font-size: 15px; line-height: 18.33px; white-space: normal;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: &#39;Segoe UI&#39;, sans-serif; font-size: 10pt; line-height: 16.66px;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;
&lt;br /&gt;
Automated:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri, sans-serif; font-size: 15px;&quot;&gt;Create a GPP registry item with the following:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri, sans-serif; font-size: 15px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;&lt;span style=&quot;color: black; font-family: Calibri, sans-serif; font-size: 15px; line-height: normal; white-space: normal;&quot;&gt;HKLM\SOFTWARE\Microsoft\AppV\Client\Streaming&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Calibri, sans-serif; font-size: 15px; line-height: normal; white-space: normal;&quot;&gt;Name: IgnoreLocationProvider Value: 1 Type: DWORD&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Calibri, sans-serif; font-size: 15px; line-height: normal; white-space: normal;&quot;&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
Happy streaming!</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/7371274323553201594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2014/05/application-streaming-failing-when.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/7371274323553201594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/7371274323553201594'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2014/05/application-streaming-failing-when.html' title='Application streaming failing when using SCCM 2012 with App-V integration'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-3485447211596151053</id><published>2014-04-21T14:22:00.002+10:00</published><updated>2014-04-21T14:22:43.078+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Configuration"/><category scheme="http://www.blogger.com/atom/ns#" term="exchange 2013. step by step"/><category scheme="http://www.blogger.com/atom/ns#" term="Install"/><title type='text'>Install and Configure Exchange 2013 Step by Step</title><content type='html'>I will perform the installation on a Windows Server 2012 R2. If you are installing on Windows Server 2008 R2 make sure you download and install:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;a href=&quot;http://www.microsoft.com/en-nz/download/details.aspx?id=30653&quot;&gt;.NET Framework 4.5&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.microsoft.com/en-nz/download/details.aspx?id=34595&quot;&gt;Windows Management Framework 3.0&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Now run setup.exe&lt;br /&gt;
&lt;br /&gt;
Check if there are updates available. Click Next.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwtxDlDZG4ib84pWWsvExRkw4Xi4BxLNp5XQLDfkZKFXmywxBBJPB94DQtTMrHUpD8vJq_yaycxWqRZ48bIzdgt9gyW_XmOuGCshSJix_lwbxbcIEHC2lmYcFJcE3RakvfihVWAJJT-_s/s1600/exchange1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwtxDlDZG4ib84pWWsvExRkw4Xi4BxLNp5XQLDfkZKFXmywxBBJPB94DQtTMrHUpD8vJq_yaycxWqRZ48bIzdgt9gyW_XmOuGCshSJix_lwbxbcIEHC2lmYcFJcE3RakvfihVWAJJT-_s/s1600/exchange1.png&quot; height=&quot;267&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Click on Next to copy the files and initialize the setup.&lt;br /&gt;
&lt;br /&gt;
Click on Next in the Introduction screen.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsihWsMUwE_gcCGB7pg87KvC6wDl-8X-gKlSxSLryQCYPGe87HQ0Tj_555JQ2ueoB_H5o5DYhE82P-rTvjDLq9s2Gs-QFllGX7vlWzZ34lJ6ANjTQWzbdW2udjYqFNsiF0X3Ck9Ss-aRo/s1600/exchange2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsihWsMUwE_gcCGB7pg87KvC6wDl-8X-gKlSxSLryQCYPGe87HQ0Tj_555JQ2ueoB_H5o5DYhE82P-rTvjDLq9s2Gs-QFllGX7vlWzZ34lJ6ANjTQWzbdW2udjYqFNsiF0X3Ck9Ss-aRo/s1600/exchange2.png&quot; height=&quot;267&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Accept the license and click on Next.&lt;br /&gt;
&lt;br /&gt;
Choose whether you want to send information to Microsoft or not. Click on Next.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHIRcG6J86_8FJSh8To0qX5Q4P4tu9MFmXuv8XEzaVAYdspnOsVKqVH_y_QFBTSCkCZALCZYJ7Vqms0EAN7CxMxcevP5B1zCFlliUo35t-gggOlaX7rjtM1_zerg53rajL11YOc_3hOcs/s1600/exchange3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHIRcG6J86_8FJSh8To0qX5Q4P4tu9MFmXuv8XEzaVAYdspnOsVKqVH_y_QFBTSCkCZALCZYJ7Vqms0EAN7CxMxcevP5B1zCFlliUo35t-gggOlaX7rjtM1_zerg53rajL11YOc_3hOcs/s1600/exchange3.png&quot; height=&quot;180&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Select the roles you want to install in the server. In this example I&#39;m going to install the CAS and Mailbox role in the same server. Click on Next. In case you are wondering where is the hub transport role it has been retired and it&#39;s functionality split and integrated in the CAS and Mailbox role.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfMJSdt9Xvx4WNEsxnEEXCyKiINqBG6uWFGogWY4MofSVfGbZnL0j0ZFejB9bKmpgC8k7pUgx_NiT-YsK-QGSslIaWcpXonPTmVvoJOyOEYB3yi4DGRRRQOCF_8C9127xzTKs-I7R5-oM/s1600/exchange4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfMJSdt9Xvx4WNEsxnEEXCyKiINqBG6uWFGogWY4MofSVfGbZnL0j0ZFejB9bKmpgC8k7pUgx_NiT-YsK-QGSslIaWcpXonPTmVvoJOyOEYB3yi4DGRRRQOCF_8C9127xzTKs-I7R5-oM/s1600/exchange4.png&quot; height=&quot;273&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Choose the installation location and click on Next.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYvbGOWCA1DGhNWBUAOMLtdLjoV1lHkaM6P9wvl85fPZelGIscSwOpvfdU7QMrJFF1amQg-8PckleCc6MEmm0Qw2mt4NVwRm1gRQqzzLkzNtu-CkMazgSG86SN6ez6wliMG0r4LgvfX_s/s1600/exchange5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYvbGOWCA1DGhNWBUAOMLtdLjoV1lHkaM6P9wvl85fPZelGIscSwOpvfdU7QMrJFF1amQg-8PckleCc6MEmm0Qw2mt4NVwRm1gRQqzzLkzNtu-CkMazgSG86SN6ez6wliMG0r4LgvfX_s/s1600/exchange5.png&quot; height=&quot;275&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Choose if you want Malware protection enabled or not and click on Next.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIs85J8-Olw-P-p3MGvoVXf0kxpa73lkWTAYLD1HEaKxEuxmw1ClnBUnOA1bdDdlPFvmvdKpVQ0xwoSq5M3huRHRWjrnmyo50X776UeKzJQmN2MrREDbEi72NLsoKeOg9JLzQgyIU2PSE/s1600/exchange6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIs85J8-Olw-P-p3MGvoVXf0kxpa73lkWTAYLD1HEaKxEuxmw1ClnBUnOA1bdDdlPFvmvdKpVQ0xwoSq5M3huRHRWjrnmyo50X776UeKzJQmN2MrREDbEi72NLsoKeOg9JLzQgyIU2PSE/s1600/exchange6.png&quot; height=&quot;272&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Now it will automatically configure some of the Exchange pre-requisites. Now a restart is required.&lt;br /&gt;
&lt;br /&gt;
Once you are back download and install:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkId=260990&quot;&gt;Microsoft Unified Communication Managed API 4.0&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkID=191548&quot;&gt;Microsoft Office 2010 Filter Packs&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.microsoft.com/en-us/download/details.aspx?id=26604&quot;&gt;Microsoft Office 2010 Filter Packs SP1&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Now run the setup again and repeat all steps above until you get to the Readiness check screen. It should look like the screen below. Click on Install.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFxUIJwLs5K8dfex0FQTCTH4MhtN4rKCIZUTrX3AWCVmBSH6ZOpbL5aeUAbRk7po7ofYIdrtXX259RgBrIlD2bNrmUKdmr67AcmlMIqCd_jzZzpv50ilNOX53x9asMQrx2ROMDBwHm66I/s1600/exchange7.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFxUIJwLs5K8dfex0FQTCTH4MhtN4rKCIZUTrX3AWCVmBSH6ZOpbL5aeUAbRk7po7ofYIdrtXX259RgBrIlD2bNrmUKdmr67AcmlMIqCd_jzZzpv50ilNOX53x9asMQrx2ROMDBwHm66I/s1600/exchange7.png&quot; height=&quot;280&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the installation is completed, click on finish and restart the server.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEshO2OxZ6ZdCjIHW4Q3BuX6Lfdv9FNKP1lGIDwwYOHhHeZD4ogDaIKrA6TexKTI9Sn-U44Wwc11Za984Z_3nq912GK_xwylnClS-FrpA_B-19Uqvqa9AIHIkBW7eGfpLvd8UiQ8D_xAg/s1600/exchange8.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEshO2OxZ6ZdCjIHW4Q3BuX6Lfdv9FNKP1lGIDwwYOHhHeZD4ogDaIKrA6TexKTI9Sn-U44Wwc11Za984Z_3nq912GK_xwylnClS-FrpA_B-19Uqvqa9AIHIkBW7eGfpLvd8UiQ8D_xAg/s1600/exchange8.png&quot; height=&quot;280&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The installation is now completed. Let&#39;s do the basic configurations. First be aware the Exchange Management Console doesn&#39;t exist anymore and it has been replaced by the Exchange Admin Center which is web based.&lt;br /&gt;
&lt;br /&gt;
So open IE and type &lt;a href=&quot;https://servername/ecp&quot;&gt;https://SERVERNAME/ecp&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
If you still have another exchange server in your environment the link above may take you to the web app instead. In order to access the Admin Center use the following link &lt;a href=&quot;https://servername/ecp?ExchClientVer=15&quot;&gt;https://SERVERNAME/ecp?ExchClientVer=15&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
If it&#39;s the first time you are signing in you may get the OWA screen as below:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilBd_mjdlLojxW71hhmAksSY6Of3fFHWkOYpox0JcjmaHrmw2xJeN0Wrhb_z8qIm3Eor7eXm-UuaxkZQEmOMNst4rVS_ag4xS9ZpvvncZRyA9NRkmHrNquvyvbLoAXn1JKfP2R-Hl6gXQ/s1600/exchange9.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilBd_mjdlLojxW71hhmAksSY6Of3fFHWkOYpox0JcjmaHrmw2xJeN0Wrhb_z8qIm3Eor7eXm-UuaxkZQEmOMNst4rVS_ag4xS9ZpvvncZRyA9NRkmHrNquvyvbLoAXn1JKfP2R-Hl6gXQ/s1600/exchange9.png&quot; height=&quot;167&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Once you sign in, select the language and time zone then you will see the admin center screen like the one below:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB9UbYFKEdutvwIFtTEs2LXUVAo10rx5McTzyXUxwe5DTk6wZDGCPeQdDeTlP8nvDGP56eVA_wUqgtjAVeFiBUvIZqt0op3ULXdy1NJIjIaGxAl8Fx9m2wSmNpu8ty3gcy41U-BxDqoH4/s1600/exchange10.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB9UbYFKEdutvwIFtTEs2LXUVAo10rx5McTzyXUxwe5DTk6wZDGCPeQdDeTlP8nvDGP56eVA_wUqgtjAVeFiBUvIZqt0op3ULXdy1NJIjIaGxAl8Fx9m2wSmNpu8ty3gcy41U-BxDqoH4/s1600/exchange10.png&quot; height=&quot;137&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Ok now click on servers node and in the virtual directories tab and configure the websites for each of the virtual directories and authentication if required.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6vr9OYeyLNSL2axGumnZ28MfxTemi138UKY9T5Y_hY3H_6CpEhzlTaWnI68aFrL8uY0HVkToSppnjtApHhcb1b9PGnNOrfhQDfYdleq6uCH13C95vOTzsjaUpmXf44Fz2ALeNm-Ramso/s1600/exchange11.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6vr9OYeyLNSL2axGumnZ28MfxTemi138UKY9T5Y_hY3H_6CpEhzlTaWnI68aFrL8uY0HVkToSppnjtApHhcb1b9PGnNOrfhQDfYdleq6uCH13C95vOTzsjaUpmXf44Fz2ALeNm-Ramso/s1600/exchange11.png&quot; height=&quot;194&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The example below show the ActiveSync configuration for the internal and external URLs. In my case they are the same as both external and internal DNS records&amp;nbsp;are also the same.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3H5goLpHs-e9nlJVK4kAMrbmvSTkr2YNxwqAs-VctGJwqe0UFQ1-UhoqCAOQQ3L0LR_Yv-tyPrKYMc029RniUME_jzSecks1bCHhma9NZ1jjOMDEW19BAhYNklw6BhH4swdFtQg4su5k/s1600/exchange12.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3H5goLpHs-e9nlJVK4kAMrbmvSTkr2YNxwqAs-VctGJwqe0UFQ1-UhoqCAOQQ3L0LR_Yv-tyPrKYMc029RniUME_jzSecks1bCHhma9NZ1jjOMDEW19BAhYNklw6BhH4swdFtQg4su5k/s1600/exchange12.png&quot; height=&quot;187&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
To configure Outlook Anywhere still in the severs node, double click on your exchange server (or select it and click on Edit) and click on Outlook Anywhere. Now specify the internal and external hostname that users will use to connect to Exchange.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfS0tRJjnHv7XKwfeSGnucQKG2kxBtmqNe8LDzJ_zD3ZVDmQf14z-k20BkxU6DvBu8RfdYfMz16znkQhvLJslignYLrZ1oy1j9uwXVYUXIV8da8WcMsNDmqcJcXt-OHylQ-U_vtfBItKo/s1600/exchange13.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfS0tRJjnHv7XKwfeSGnucQKG2kxBtmqNe8LDzJ_zD3ZVDmQf14z-k20BkxU6DvBu8RfdYfMz16znkQhvLJslignYLrZ1oy1j9uwXVYUXIV8da8WcMsNDmqcJcXt-OHylQ-U_vtfBItKo/s1600/exchange13.png&quot; height=&quot;212&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
Make sure you also have all your receive and send connectors configured.&lt;br /&gt;
Click on Mail Flow then on receive connectors. The most important part is the scoping.&lt;br /&gt;
&lt;br /&gt;
Client frontend scoping:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXHKDl6dTPDrkQRgubA3GdJAXDtJipAdjusDzA4sU9wC1mrn1jG18cXVYK73RvBCe2yMqwCZe-OUW6rkKRyefv42QG7iE-KnSuG9Xqc2Zu1xk9d9bigj-wSsTf-BEGrbi6kQlmJ3V8NwU/s1600/exchange14.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXHKDl6dTPDrkQRgubA3GdJAXDtJipAdjusDzA4sU9wC1mrn1jG18cXVYK73RvBCe2yMqwCZe-OUW6rkKRyefv42QG7iE-KnSuG9Xqc2Zu1xk9d9bigj-wSsTf-BEGrbi6kQlmJ3V8NwU/s1600/exchange14.png&quot; height=&quot;320&quot; width=&quot;262&quot; /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;
&lt;br /&gt;
Client Proxy scoping:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoij4X9_cqA2va793zN3bCPjgtC50-u1GHOuYYQ7GDs5kZPZugyuD_2QXFThSLvSrhVfT0qlhvXZGl9Vu1sKk6fIGb3K6iy3DzRvEKCjkxG-YdoCewuPXU6yGo1KRGkgHizyORA2h_jNM/s1600/exchange15.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoij4X9_cqA2va793zN3bCPjgtC50-u1GHOuYYQ7GDs5kZPZugyuD_2QXFThSLvSrhVfT0qlhvXZGl9Vu1sKk6fIGb3K6iy3DzRvEKCjkxG-YdoCewuPXU6yGo1KRGkgHizyORA2h_jNM/s1600/exchange15.png&quot; height=&quot;320&quot; width=&quot;275&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Default frontend scoping:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHxK4_ufVOSqZea12t_9uHyxLNj9eYkOunfmA0TMsUz2DfQHzIvl-jL7K2O5QLgp7IhxITmb2HMbXADQz9V-L_L__bxnhkNmdmRmHKeI4uIU_UeYOWtFfD5W6V3QLmR7mjQH5oMfkFE5A/s1600/exchange16.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHxK4_ufVOSqZea12t_9uHyxLNj9eYkOunfmA0TMsUz2DfQHzIvl-jL7K2O5QLgp7IhxITmb2HMbXADQz9V-L_L__bxnhkNmdmRmHKeI4uIU_UeYOWtFfD5W6V3QLmR7mjQH5oMfkFE5A/s1600/exchange16.png&quot; height=&quot;320&quot; width=&quot;270&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Default scoping:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkIgm2njILMHMsBUU6khx0ybyp0IPtJMgu0V5S-vpIG9is71juTPpVn1yaYLC1xn-TEl9ouETL1bGgaZ5KxyVnrHLnM9Zms4YJxgH1DOpA22zPnkhCvYgLAINdig2eEnBWL5bRHe9cx_A/s1600/exchange17.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkIgm2njILMHMsBUU6khx0ybyp0IPtJMgu0V5S-vpIG9is71juTPpVn1yaYLC1xn-TEl9ouETL1bGgaZ5KxyVnrHLnM9Zms4YJxgH1DOpA22zPnkhCvYgLAINdig2eEnBWL5bRHe9cx_A/s1600/exchange17.png&quot; height=&quot;320&quot; width=&quot;273&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Outbound Proxy frontend scoping:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkIgm2njILMHMsBUU6khx0ybyp0IPtJMgu0V5S-vpIG9is71juTPpVn1yaYLC1xn-TEl9ouETL1bGgaZ5KxyVnrHLnM9Zms4YJxgH1DOpA22zPnkhCvYgLAINdig2eEnBWL5bRHe9cx_A/s1600/exchange17.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHzTqZ8IQnWQRJd1X5y5OG0MHGF_z5beJb2ARMCxkFMdQF5itglpv0sUVTExDf4Cqr4_Vta1KXdlhKEhi0UQcg3B1Bw2A90cYtt1QxDbuMEp387hu-op3EAuDacB8EAIJSJ-jIbfxUlIY/s1600/exchange18.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHzTqZ8IQnWQRJd1X5y5OG0MHGF_z5beJb2ARMCxkFMdQF5itglpv0sUVTExDf4Cqr4_Vta1KXdlhKEhi0UQcg3B1Bw2A90cYtt1QxDbuMEp387hu-op3EAuDacB8EAIJSJ-jIbfxUlIY/s1600/exchange18.png&quot; height=&quot;320&quot; width=&quot;265&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;Now click on send connectors.&lt;br /&gt;
&lt;br /&gt;
Internet scoping:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWHqyPFWQo3xq340GRliFvOQxt0sZp-6M5X_sHX4KxCC5pnKgzh7chYtwUePPIMIIucMaA7M05SSofKKXGynKqcZ4IbYy2bnYETkLipLQL6XgKAKHDtjd-kqkK0M__tH42CNQ7QJUH2Vw/s1600/exchange19.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWHqyPFWQo3xq340GRliFvOQxt0sZp-6M5X_sHX4KxCC5pnKgzh7chYtwUePPIMIIucMaA7M05SSofKKXGynKqcZ4IbYy2bnYETkLipLQL6XgKAKHDtjd-kqkK0M__tH42CNQ7QJUH2Vw/s1600/exchange19.png&quot; height=&quot;320&quot; width=&quot;284&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;Once you test all is working and you still have old Exchange&amp;nbsp;servers in the environment you can start migrating the mailboxes. Click on recipients and from the mailboxes select the mailbox you want to migrate and click on Move Mailbox To another database.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzX3TXVLM_iYu9pKNZ011f05cJ-CSTt97Cw2Nt1SYGb4iWKP5RH1SPHdNE6w7gAUwzR9peFQZ_5QSvyW-SdIsQodxAuv7qvpj6duhpv1V8FsY5ZfSDYafISap_vgfTJtibl9rPW3gGMS8/s1600/exchange20.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzX3TXVLM_iYu9pKNZ011f05cJ-CSTt97Cw2Nt1SYGb4iWKP5RH1SPHdNE6w7gAUwzR9peFQZ_5QSvyW-SdIsQodxAuv7qvpj6duhpv1V8FsY5ZfSDYafISap_vgfTJtibl9rPW3gGMS8/s1600/exchange20.png&quot; height=&quot;143&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Give the job a name and select the target database(s). Click on Next.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUds5D0LsdHTmj9xa3WgNiz6aHHygpz-8IBqXFtsrkRvZfldYD0hF6RVwe3hUuqrKH6hIpE_YeXEHdgYbDQ1TAGWNDucr2-KHBUizxUwXtvyRMoypNqnNLU1IR9iI63q7_FZpEK11ligw/s1600/exchange21.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUds5D0LsdHTmj9xa3WgNiz6aHHygpz-8IBqXFtsrkRvZfldYD0hF6RVwe3hUuqrKH6hIpE_YeXEHdgYbDQ1TAGWNDucr2-KHBUizxUwXtvyRMoypNqnNLU1IR9iI63q7_FZpEK11ligw/s1600/exchange21.png&quot; height=&quot;256&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the mailboxes which will be sent a notification once the batch is completed and click on New.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga0Nu8NsX3Z1AavLABgYdneSIyuSEq-xRM_3Ai4rtrPRdfR8UOxGCbDbP9cOYMNbYRdnIU-xIk5IB_jbs__MLBmsWHXrUbKXTTvF3gYzFs_Tn_5HhWrTP4ejQvRGwi5ySn2nVRFi77eSo/s1600/exchange22.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga0Nu8NsX3Z1AavLABgYdneSIyuSEq-xRM_3Ai4rtrPRdfR8UOxGCbDbP9cOYMNbYRdnIU-xIk5IB_jbs__MLBmsWHXrUbKXTTvF3gYzFs_Tn_5HhWrTP4ejQvRGwi5ySn2nVRFi77eSo/s1600/exchange22.png&quot; height=&quot;261&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
If you have a large number of mailboxes to migrate it&#39;s easier to use the Management Shell. The following example would migrate all mailboxes from one database to the other. Use the Get-MailboxDatabase to get the names of the source and target databases or look for them in the Exchange admin center.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioQPpvfULQGUhNeV9S0KCQ_SA7fg3X61_bvznVpf4KIeSakIluhw5rTU4puNW7yBXXN1PljFXO0utPZZsHc2cKzeehJHy9avZJ6ru4cwWxZK_h2BWbZGqb8-wprzw92J5POjap5NGMCE4/s1600/exchange23.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioQPpvfULQGUhNeV9S0KCQ_SA7fg3X61_bvznVpf4KIeSakIluhw5rTU4puNW7yBXXN1PljFXO0utPZZsHc2cKzeehJHy9avZJ6ru4cwWxZK_h2BWbZGqb8-wprzw92J5POjap5NGMCE4/s1600/exchange23.png&quot; height=&quot;30&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&amp;nbsp;&lt;/div&gt;
Once you migrate everything else and check all the functionality is working you can shut down your old exchange servers leave them there for a couple weeks and then decommission them.&lt;br /&gt;
&lt;img height=&quot;96&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXHKDl6dTPDrkQRgubA3GdJAXDtJipAdjusDzA4sU9wC1mrn1jG18cXVYK73RvBCe2yMqwCZe-OUW6rkKRyefv42QG7iE-KnSuG9Xqc2Zu1xk9d9bigj-wSsTf-BEGrbi6kQlmJ3V8NwU/s1600/exchange14.png&quot; style=&quot;left: 311px; opacity: 0.3; position: absolute; top: 4818px;&quot; width=&quot;78&quot; /&gt;
&lt;!-- Blogger automated replacement: &quot;https://images-blogger-opensocial.googleusercontent.com/gadgets/proxy?url=http%3A%2F%2F4.bp.blogspot.com%2F-bBBLSgnmDzE%2FU1SV9uVu7kI%2FAAAAAAAABi8%2FXPIzzZClwGs%2Fs1600%2Fexchange14.png&amp;amp;container=blogger&amp;amp;gadget=a&amp;amp;rewriteMime=image%2F*&quot; with &quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXHKDl6dTPDrkQRgubA3GdJAXDtJipAdjusDzA4sU9wC1mrn1jG18cXVYK73RvBCe2yMqwCZe-OUW6rkKRyefv42QG7iE-KnSuG9Xqc2Zu1xk9d9bigj-wSsTf-BEGrbi6kQlmJ3V8NwU/s1600/exchange14.png&quot; --&gt;</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/3485447211596151053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2014/04/install-and-configure-exchange-2013.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/3485447211596151053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/3485447211596151053'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2014/04/install-and-configure-exchange-2013.html' title='Install and Configure Exchange 2013 Step by Step'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwtxDlDZG4ib84pWWsvExRkw4Xi4BxLNp5XQLDfkZKFXmywxBBJPB94DQtTMrHUpD8vJq_yaycxWqRZ48bIzdgt9gyW_XmOuGCshSJix_lwbxbcIEHC2lmYcFJcE3RakvfihVWAJJT-_s/s72-c/exchange1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-3446614327238507513</id><published>2014-04-13T10:53:00.000+10:00</published><updated>2014-04-13T10:53:01.413+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="backlog"/><category scheme="http://www.blogger.com/atom/ns#" term="ddm.box"/><category scheme="http://www.blogger.com/atom/ns#" term="SCCM"/><title type='text'>SCCM 2012 - DDM.BOX Millions of DDRs</title><content type='html'>If you have thousands or even millions of records in the inboxes\auth\ddm.box folder your SCCM is suffering from DDR backlogs.&lt;br /&gt;
&lt;br /&gt;
Usually this is caused by some corrupted record or/and too aggressive Discovery Methods.&lt;br /&gt;
&lt;br /&gt;
There are a few symptoms of DDRs backlogs:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;AD group membership doesn&#39;t work properly&lt;/li&gt;
&lt;li&gt;Some computer records don&#39;t have all information (i.e. AD site, IP Address, etc)&lt;/li&gt;
&lt;li&gt;You can&#39;t browse to the&amp;nbsp;inboxes\auth\ddm.box folder through Explorer&lt;/li&gt;
&lt;li&gt;Some computers don&#39;t show up in the SCCM console&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Your inboxes\auth\ddm.box folder should be clean like the one below:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcYw_a_jj8RiCSB-OaLSJhHNq8KQ2rN8iCfeN3z4D4dYlowzntA7zYNT2nxet8mduPIMin8ZgAnGcWQwPzN1gzggBL-P6VlG4MwNU85M0no5Slb4fOTFw26KVpst-UCVGKYy7WF3beNyM/s1600/ddr1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcYw_a_jj8RiCSB-OaLSJhHNq8KQ2rN8iCfeN3z4D4dYlowzntA7zYNT2nxet8mduPIMin8ZgAnGcWQwPzN1gzggBL-P6VlG4MwNU85M0no5Slb4fOTFw26KVpst-UCVGKYy7WF3beNyM/s1600/ddr1.png&quot; height=&quot;104&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
To count the number of DDRs, open powershell as administrator, browse to the ddm.box folder and type:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;(Get-ChildItem).count&lt;/pre&gt;
&lt;br /&gt;
Note that depending on the number of items it can take several hours to complete.&lt;br /&gt;
&lt;br /&gt;
In average SCCM process 1 DDR per second so as an example if you have 5 million DDRs it can take 2 months to process all of them (considering you disable all discovery methods!!)&lt;br /&gt;
&lt;br /&gt;
I imagine you can&#39;t wait 2 months, can you?&lt;br /&gt;
&lt;br /&gt;
That&#39;s how you fix it:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Adjust your Discovery Methods to a more realistic interval. You can leave the delta discoveries to 5 minutes but your full discoveries shouldn&#39;t be less than 7 days. If you need to decrease to less than 7 days, make sure you have the horse power for this and keep an eye in the ddm.box folder.&lt;/li&gt;
&lt;li&gt;Browse to the SCCM folder\bin\X64 and open compmgr.exe.&lt;/li&gt;
&lt;li&gt;Enter the site server name.&lt;/li&gt;
&lt;li&gt;Expand Components, click on SMS_EXECUTIVE and in the right pane right click the SMS_EXECUTIVE and click on Query.&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6Ggen5OmhRoDKyJV4bKedOalDpzTk1uJt7YND8Hsm92W_DvZdyiQZ8ZH6CPRuWCA6FPXR7dyrUUuYRVFXu10qKCLk4nge7mpdeIBOQI6BE2-PTxIMKCyQn0jmb1ldH9CSQ_6zn5L3vUw/s1600/ddr2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6Ggen5OmhRoDKyJV4bKedOalDpzTk1uJt7YND8Hsm92W_DvZdyiQZ8ZH6CPRuWCA6FPXR7dyrUUuYRVFXu10qKCLk4nge7mpdeIBOQI6BE2-PTxIMKCyQn0jmb1ldH9CSQ_6zn5L3vUw/s1600/ddr2.png&quot; height=&quot;251&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Right click it again and click on Stop.&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9pnILSheekB7qMK0yG0MfEw5oAl76o_i9IdqQ14VF0sDbxyFP81CztGD0bfo59XyzmN92kpoqi9wDo6zydDLuAw1nc9R7hiSi-VZn8a4_4NG46INGMSvJ1uU4xjBrpWY-jiTA2ZD78v8/s1600/ddr3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9pnILSheekB7qMK0yG0MfEw5oAl76o_i9IdqQ14VF0sDbxyFP81CztGD0bfo59XyzmN92kpoqi9wDo6zydDLuAw1nc9R7hiSi-VZn8a4_4NG46INGMSvJ1uU4xjBrpWY-jiTA2ZD78v8/s1600/ddr3.png&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Now from a command prompt or powershell go to the inboxes\auth folder and type:&lt;/li&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;ren ddm.box ddm.old&lt;/pre&gt;
&lt;li&gt;Go back to the Configuration Manager Service Manager and start SMS_EXECUTIVE.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Now SCCM will recreate the ddm.box folder and everything should start working as expected.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/3446614327238507513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2014/04/sccm-2012-ddmbox-millions-of-ddrs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/3446614327238507513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/3446614327238507513'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2014/04/sccm-2012-ddmbox-millions-of-ddrs.html' title='SCCM 2012 - DDM.BOX Millions of DDRs'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcYw_a_jj8RiCSB-OaLSJhHNq8KQ2rN8iCfeN3z4D4dYlowzntA7zYNT2nxet8mduPIMin8ZgAnGcWQwPzN1gzggBL-P6VlG4MwNU85M0no5Slb4fOTFw26KVpst-UCVGKYy7WF3beNyM/s72-c/ddr1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-193702957057822281.post-8615733353127341447</id><published>2014-04-09T19:29:00.000+10:00</published><updated>2014-04-09T19:29:49.275+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="adobe photoshop elements"/><category scheme="http://www.blogger.com/atom/ns#" term="Install"/><category scheme="http://www.blogger.com/atom/ns#" term="Package"/><category scheme="http://www.blogger.com/atom/ns#" term="silent"/><title type='text'>Install Adobe Photoshop Elements 11 silently</title><content type='html'>First of all&amp;nbsp;create a file named &#39;application.xml.override&#39; with the content below and place one copy in the root folder&amp;nbsp;of the source files and another copy under the folder ElementsOrganizer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; line-height: 19px; overflow: auto; padding: 6px 10px;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;Configuration&amp;gt;
&amp;lt;Payload&amp;gt;
&amp;lt;Data key=&quot;EULA&quot;&amp;gt;Supress&amp;lt;/Data&amp;gt;
&amp;lt;Data key=&quot;Registration&quot;&amp;gt;Supress&amp;lt;/Data&amp;gt;
&amp;lt;Data key=&quot;Updates&quot;&amp;gt;Supress&amp;lt;/Data&amp;gt;
&amp;lt;/Payload&amp;gt;
&amp;lt;/Configuration&amp;gt;&lt;/pre&gt;
&lt;br /&gt;
Once you have the files and place just run the following command:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f8f8f8; border-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-size: 12px; height: 58px; line-height: 19px; overflow: auto; padding: 6px 10px; width: 651px;&quot;&gt;&quot;Setup.exe&quot; /UL1033 /V&quot;SERIALNUMBER=XXXX-XXXX-XXXX-XXXX-XXXX-XXXX COUNTRY=183 AgreeToLicense=Yes&quot;&lt;/pre&gt;
&lt;br /&gt;
The following is a list of all country codes:&lt;br /&gt;
&lt;br /&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse: collapse; width: 345px;&quot;&gt;

 &lt;colgroup&gt;&lt;col style=&quot;mso-width-alt: 10276; mso-width-source: userset; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;/col&gt;
 &lt;col style=&quot;width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;/col&gt;
 &lt;tbody&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl64&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px black; height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;xl64&quot; style=&quot;background-color: transparent; border: 0px black; width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Afghanistan&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;
  &lt;/span&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;color: #333333;&quot;&gt;3 &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Albania&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;6&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Algeria&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;4&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;American Samoa&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;10&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Andorra&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;8&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Angola&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;9&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Anguilla&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;300&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Antarctica&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;301&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Antigua and Barbuda&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Argentina&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;11&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Armenia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;7&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Aruba&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;302&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Ascension Island&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;303&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Ashmore and Cartier Islands&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;304&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Australia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;12&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Austria&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;14&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Azerbaijan&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;5&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Bahama, The&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;22&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Bahrain&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;17&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Baker Island&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;305&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Bangladesh&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;23&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Barbados&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;18&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Belarus&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;29&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Belgium&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;21&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Belize&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;24&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Benin&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;28&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Bermuda&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;20&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Bhutan&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;34&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Bolivia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;26&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Bosnia and Herzegovina&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;25&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Botswana&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;19&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Bouvet Island&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;306&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Brazil&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;32&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;British Indian Ocean Territory&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;114&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Brunei&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;37&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Bulgaria&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;35&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Burkina Faso&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;245&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Burundi&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;38&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Cambodia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;40&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Cameroon&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;49&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Canada&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;39&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Cape Verde&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;57&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Cayman Islands&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;307&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Central African Republic&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;55&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Chad&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;41&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Channel Islands&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;308&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Chile&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;46&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;China&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;45&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Christmas Island&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;309&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Clipperton Island&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;310&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Cocos (Keeling) Islands&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;311&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Colombia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;51&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Comoros&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;50&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Congo&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;43&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Congo (DRC)&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;44&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Cook Islands&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;312&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Coral Sea Islands&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;313&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Costa Rica&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;54&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Côte d’Ivoire&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;119&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Croatia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;108&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Cuba&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;56&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Cyprus&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;59&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Czech Republic&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;75&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Denmark&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;61&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Diego Garcia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;314&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Djibouti&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;62&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Dominica&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;63&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Dominican Republic&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;65&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;East Timor&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;7299303&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Ecuador&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;66&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Egypt&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;67&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;El Salvador&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;72&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Equatorial Guinea&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;69&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Eritrea&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;71&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Estonia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;70&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Ethiopia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;73&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Falkland Islands (Islas Malvinas)&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;315&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Faroe Islands&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;81&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Fiji Islands&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;78&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Finland&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;77&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;France&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;84&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;French Guiana&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;317&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;French Polynesia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;318&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;French Southern and Antarctic Lands&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;319&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Gabon&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;87&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Gambia, The&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;86&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Georgia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;88&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Germany&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;94&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Ghana&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;89&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Gibraltar&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;90&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Greece&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;98&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Greenland&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;93&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Grenada&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;91&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Guadeloupe&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;321&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Guam&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;322&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Guantanamo Bay&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;323&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Guatemala&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;99&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Guernsey&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;324&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Guinea&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;100&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Guinea-Bissau&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;196&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Guyana&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;101&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Haiti&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;103&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Heard Island and McDonald Islands&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;325&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Honduras&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;106&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Hong Kong S.A.R.&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;104&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Howland Island&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;326&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Hungary&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;109&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Iceland&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;110&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;India&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;113&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Indonesia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;111&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Iran&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;116&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Iraq&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;121&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Ireland&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;68&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Israel&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;117&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Italy&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;118&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Jamaica&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;124&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Jan Mayen&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;125&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Japan&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;122&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Jarvis Island&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;327&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Jersey&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;328&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Johnston Atoll&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;127&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Jordan&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;126&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Kazakhstan&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;137&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Kenya&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;129&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Kingman Reef&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;329&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Kiribati&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;133&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Korea&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;134&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Kuwait&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;136&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Kyrgyzstan&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;130&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Laos&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;138&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Latvia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;140&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Lebanon&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;139&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Lesotho&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;146&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Liberia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;142&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Libya&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;148&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Liechtenstein&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;145&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Lithuania&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;141&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Luxembourg&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;147&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Macau S.A.R.&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;151&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Macedonia, Former Yugoslav Republic of&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;19618&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Madagascar&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;149&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Malawi&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;156&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Malaysia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;167&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Maldives&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;165&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Mali&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;157&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Malta&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;163&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Man, Isle of&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;15126&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Marshall Islands&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;199&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Martinique&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;330&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Mauritania&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;162&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Mauritius&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;160&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Mayotte&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;331&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Mexico&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;166&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Micronesia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;80&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Midway Islands&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;21242&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Moldova&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;152&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Monaco&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;158&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Mongolia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;154&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Montserrat&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;332&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Morocco&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;159&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Mozambique&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;168&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Myanmar&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;27&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Namibia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;254&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Nauru&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;180&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Nepal&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;178&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Netherlands Antilles&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;333&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Netherlands, The&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;176&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;New Caledonia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;334&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;New Zealand&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;183&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Nicaragua&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;182&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Niger&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;173&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Nigeria&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;175&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Niue&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;335&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Norfolk Island&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;336&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;North Korea&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;131&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Northern Mariana Islands&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;337&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Norway&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;177&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Oman&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;164&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Pakistan&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;190&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Palau&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;195&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Palestinian Authority&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;184&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Palmyra Atoll&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;338&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Panama&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;192&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Papua New Guinea&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;194&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Paraguay&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;185&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Peru&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;187&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Philippines&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;201&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Pitcairn Islands&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;339&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Poland&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;191&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Portugal&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;193&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Puerto Rico&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;202&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Qatar&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;197&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Reunion&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;198&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Romania&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;200&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Rota Island&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;340&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Russia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;203&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Rwanda&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;204&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Saipan&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;341&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Samoa&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;259&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;San Marino&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;214&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;São Tomé and Príncipe&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;233&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Saudi Arabia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;205&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Senegal&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;210&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Serbia and Montenegro&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;269&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Seychelles&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;208&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Sierra Leone&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;213&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Singapore&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;215&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Slovakia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;143&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Slovenia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;212&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Solomon Islands&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;30&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Somalia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;216&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;South Africa&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;209&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;40&quot; style=&quot;height: 30pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;40&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 30pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;South Georgia and the South Sandwich Islands&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;342&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Spain&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;217&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Sri Lanka&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;42&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;St. Helena&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;343&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;St. Kitts and Nevis&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;207&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;St. Lucia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;218&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;St. Pierre and Miquelon&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;206&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;St. Vincent and the Grenadines&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;248&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Sudan&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;219&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Suriname&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;181&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Svalbard&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;220&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Swaziland&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;260&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Sweden&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;221&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Switzerland&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;223&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Syria&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;222&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Taiwan&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;237&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Tajikistan&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;228&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Tanzania&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;239&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Thailand&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;227&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Tinian Island&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;346&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Togo&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;232&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Tokelau&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;347&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Tonga&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;231&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Trinidad and Tobago&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;225&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Tristan da Cunha&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;348&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Tunisia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;234&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Turkey&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;235&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Turkmenistan&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;238&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Turks and Caicos Islands&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;349&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Tuvalu&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;236&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Uganda&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;240&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Ukraine&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;241&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;United Arab Emirates&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;224&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;United Kingdom&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;242&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;United States&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;244&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Uruguay&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;246&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Uzbekistan&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;247&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Vanuatu&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;174&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Vatican City&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;253&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Venezuela&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;249&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Vietnam&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;251&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Virgin Islands&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;252&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Virgin Islands, British&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;351&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Wake Island&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;258&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Wallis and Futuna&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;352&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Yemen&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;261&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Zambia&lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;263&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;
  &lt;td class=&quot;xl65&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); height: 15pt; width: 211pt;&quot; width=&quot;281&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;
  &amp;nbsp;Zimbabwe
  &lt;/span&gt;&lt;/td&gt;
  &lt;td class=&quot;xl65&quot; style=&quot;background-color: transparent; border: 0px rgb(51, 51, 51); width: 48pt;&quot; width=&quot;64&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;264&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/colgroup&gt;&lt;/table&gt;
</content><link rel='replies' type='application/atom+xml' href='http://fbinotto.blogspot.com/feeds/8615733353127341447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fbinotto.blogspot.com/2014/04/install-adobe-photoshop-elements-11.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/8615733353127341447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/193702957057822281/posts/default/8615733353127341447'/><link rel='alternate' type='text/html' href='http://fbinotto.blogspot.com/2014/04/install-adobe-photoshop-elements-11.html' title='Install Adobe Photoshop Elements 11 silently'/><author><name>Felipe Binotto</name><uri>http://www.blogger.com/profile/17110866556065374073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>