# New-AzKeyVault-Script.ps1 # #Requires -Version 7.0 "Running PowerShell $($PSVersionTable.PSVersion)." [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 #Check of NuGet is installed. if (Get-PackageProvider -ListAvailable -Name NuGet -ErrorAction SilentlyContinue) { Write-Host "NuGet Already Installed" } else { try { Install-PackageProvider -Name NuGet -Confirm:$False -Force } catch [Exception] { $_.message exit } } #Check of Az.Accounts is installed. if (Get-Module -ListAvailable -Name Az.Accounts) { Write-Host "Az.Accounts Already Installed" } else { try { Install-Module -Name Az.Accounts -Repository PSGallery -Confirm:$False -Force } catch [Exception] { $_.message exit } } #Check for update Az.Accounts Get-Module -Name Az.Accounts -ListAvailable | ForEach-Object { $moduleName = $_.Name $currentVersion = [Version]$_.Version Write-Host "Current version $moduleName [$currentVersion]" # Get latest version from gallery $latestVersion = [Version](Find-Module -Name $moduleName).Version # Only proceed if latest version in gallery is greater than your current version if ($latestVersion -gt $currentVersion) { Write-Host "Found latest version $modulename [$latestVersion] from $($latestVersionModule.Repository)" # Check if latest version is already installed before updating $latestVersionModule = Get-InstalledModule -Name $moduleName -RequiredVersion $latestVersion -ErrorAction SilentlyContinue if ($null -eq $latestVersionModule) { Write-Host "Updating $moduleName Module from [$currentVersion] to [$latestVersion]" Update-Module -Name $moduleName -RequiredVersion $latestVersion -Force } else { Write-Host "No update needed, $modulename [$latestVersion] already exists" } # Uninstall outdated version Write-Host "Uninstalling $moduleName [$currentVersion]" Uninstall-Module -Name $moduleName -RequiredVersion $currentVersion -Force } # Otherwise we already have most up to date version else { Write-Host "$moduleName already up to date" } } Import-Module Az.Accounts Connect-AzAccount #ResourceName $resourceGroupName = "AzKeyVault" #Location $location = "westeurope" #AzKeyVault $AzKeyVault = "AzKeyVault$(Get-Random -Minimum 1000 -Maximum 9999)" # Create resource group if ($null -eq (Get-AzResourceGroup -Name $resourceGroupName -ErrorAction SilentlyContinue)) { New-AzResourceGroup -Name $resourceGroupName -Location $location } New-AzKeyVault -Name $AzKeyVault -ResourceGroupName $resourceGroupName -Location $location $secretvalue = ConvertTo-SecureString "secretvalue" -AsPlainText -Force $secret = Set-AzKeyVaultSecret -VaultName $AzKeyVault -Name "ADMIN" -SecretValue $secretvalue $secret = Get-AzKeyVaultSecret -VaultName "<your-unique-keyvault-name>" -Name "ExamplePassword" -AsPlainText