Private/Wissen/X_Technology/X71_AzureCloud.ps1
<#
# Microsoft Azure Cloud PowerShell mit und in der Azure Cloud nutzen - **Hashtags** Sicherheit Azure Remoting Cloud - **Version** 2020.01.17 #> # https://portal.azure.com # ? Azur bietet folgende Dienste an: # ! http://azure.microsoft.com/de-de/services # ! Die neuen CmdLets enthalten "Rm" im Noun und sind zu bevorzugen. # Azure wurde 2010 eingeführt Get-Module -Name Azure* -ListAvailable # ! 57 Modules Get-Command -Name * -Module Azure* | Group-Object -Property CommandType # ! 2.487 Cmdlets $azureProfile = Login-AzureRmAccount Get-AzureRmSubscription #region VM anlegen $newResourceGroup = New-AzureRmResourceGroup -Name "DemoResourceGroup" -Location "West Europe" -Verbose $newStorageAccount = New-AzureRmStorageAccount -Name "demostorageaccountkak" -SkuName Standard_LRS -ResourceGroupName $newResourceGroup.ResourceGroupName -Location $newResourceGroup.Location -Verbose $newVhdUri = $newStorageAccount.PrimaryEndpoints.Blob + "vhds/DemoVM_OS.vhd" $newPublicIpAddress = New-AzureRmPublicIpAddress -Name "DemoVM_NIC1" -DomainNameLabel "akademo" -AllocationMethod Dynamic -ResourceGroupName $newResourceGroup.ResourceGroupName -Location $newResourceGroup.Location -Force -Verbose $newVNSubnetConfig = New-AzureRmVirtualNetworkSubnetConfig -Name "Subnet-1" -AddressPrefix "10.0.0.0/24" -Verbose $newVN = New-AzureRmVirtualNetwork -Name "DemoVNet" -AddressPrefix "10.0.0.0/16" -Subnet $newVNSubnetConfig -ResourceGroupName $newResourceGroup.ResourceGroupName -Location $newResourceGroup.Location -Force -Verbose $newNetworkInterface = New-AzureRmNetworkInterface -Name "DemoVM_NIC1" -SubnetId $newVN.Subnets[0].Id -PublicIpAddressId $newPublicIpAddress.Id -ResourceGroupName $newResourceGroup.ResourceGroupName -Location $newResourceGroup.Location -Force -Verbose $newAdministratorName = "DemoAdmin" $newAdministratorPassword = "Asdfg09876Yxcvb" | ConvertTo-SecureString -AsPlainText -Force $newCredential = [PSCredential]::new($newAdministratorName, $newAdministratorPassword) $newVMImage = Get-AzureRmVMImage -Location "West Europe" -PublisherName "MicrosoftWindowsServer" -Offer "WindowsServer" -Skus "2019-Datacenter" | Sort-Object -Property Version -Descending | Select-Object -First 1 $newVM = New-AzureRmVMConfig -Name "DemoVM" -VMSize "Basic_A0" | Add-AzureRmVMNetworkInterface -Id $newNetworkInterface.Id | Set-AzureRmVMOperatingSystem -Windows -ProvisionVMAgent -EnableAutoUpdate:$false -ComputerName "DemoVM" -Credential $newCredential -Verbose | Set-AzureRmVMSourceImage -PublisherName $newVMImage.PublisherName -Offer $newVMImage.Offer -Skus $newVMImage.Skus -Version $newVMImage.Version -Verbose | Set-AzureRmVMOSDisk -Name "DemoVM_OS" -VhdUri $newVhdUri -Caching ReadWrite -CreateOption FromImage -Verbose $newJob = New-AzureRmVM -VM $newVM -ResourceGroupName $newResourceGroup.ResourceGroupName -Location $newResourceGroup.Location -AsJob -Verbose $newJob | Get-Job | Receive-Job -Keep $newJob = $newVM | Start-AzureRmVM -ResourceGroupName $newResourceGroup.ResourceGroupName -Verbose -AsJob $newJob | Get-Job | Receive-Job -Keep $demoVM = Get-AzureRmVm -Name "DemoVM" -ResourceGroupName $newResourceGroup.ResourceGroupName $networkInterfaceName = $demoVM.NetworkProfile.NetworkInterfaces[0].Id -split "/" | Select-Object -Last 1 $networkInterface = Get-AzureRmNetworkInterface -Name $networkInterfaceName -ResourceGroupName "DemoResourceGroup" $publicIpAddressName = $networkInterface.IpConfigurations.PublicIPAddress.Id -split "/" | Select-Object -Last 1 $publicIpAddress = Get-AzureRmPublicIpAddress -Name $publicIpAddressName -ResourceGroupName "DemoResourceGroup" $rdpUrl = "$($publicIpAddress.DnsSettings.Fqdn):3389" mstsc.exe /v:$rdpUrl # ! Wieder alles löschen $newJob = Get-AzureRmResourceGroup -Name "DemoResourceGroup" -Location "West Europe" | Remove-AzureRmResourceGroup -Verbose -AsJob $newJob | Get-Job | Receive-Job -Keep #endregion |