<# THE SAMPLE CODE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ESRI OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) SUSTAINED BY YOU OR A THIRD PARTY, HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ARISING IN ANY WAY OUT OF THE USE OF THIS SAMPLE CODE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #> $ResourceGroupName = "Resource_Group_Name" #Replace with your value $Location = "NorthEurope" #Replace with your value $VNetName = "Vnet_Name" #Replace with your value $VmName = "vm-win16-01" #Replace with your value $Credential = Get-Credential $VnetProperties = @{ Name = $VNetName ResourceGroupName = $ResourceGroupName } $VNet = Get-AzureRmVirtualNetwork @VnetProperties $PublicIPProperties = @{ Name = "$VmName-PubIP" ResourceGroupName = $ResourceGroupName Location = $Location AllocationMethod = "Dynamic" } $PublicIP = New-AzureRmPublicIpAddress @PublicIPProperties $NicProperties = @{ Name = "$VmName-NIC" ResourceGroupName = $ResourceGroupName Location = $Location SubnetID = $VNet.Subnets[0].Id PublicIPAddressID = $PublicIP.Id } $Nic = New-AzureRmNetworkInterface @NicProperties $vmConfigProperties = @{ VMName = $VmName VMSize = "Standard_D2s_v3" } $VmConfig = New-AzureRmVMConfig @vmConfigProperties $VmConfigOS = @{ VM = $VmConfig Windows = $true ComputerName = $VmName Credential = $Credential ProvisionVMAgent = $true EnableAutoUpdate = $false } $VmConfig = Set-AzureRmVMOperatingSystem @VmConfigOS $VmNicProperties = @{ VM = $VmConfig Id = $Nic.Id } $VmConfig = Add-AzureRmVMNetworkInterface @VmNicProperties $SourceImageProperties = @{ VM = $VmConfig PublisherName = "MicrosoftWindowsServer" Offer = "WindowsServer" Skus = "2016-Datacenter" Version = "Latest" } $VmConfig = Set-AzureRmVMSourceImage @SourceImageProperties $BootDiagnosticsProperties = @{ VM = $VmConfig Disable = $true } $VmConfig = Set-AzureRmVMBootDiagnostics @BootDiagnosticsProperties $VmProperties = @{ ResourceGroupName = $ResourceGroupName Location = $Location VM = $VmConfig Verbose = $true } New-AzureRmVm @VmProperties $CustomScriptExtensionProperties = @{ Name = "InstallDBATools-GitHub" VMName = $VmName ResourceGroupName = $ResourceGroupName Location = $Location FileUri = "GitHub_Raw_File_Path" #Replace with your value Run = "Install-DBATools.ps1" } Set-AzureRmVMCustomScriptExtension @CustomScriptExtensionProperties