Export/Private/Test-Parameters.ps1
function Global:Test-Parameters { [CmdletBinding()] param( $ResourceGroupName, $ObjectID, $SubscriptionName, $KeyVaultName, $StorageAccountName, $IgnoreExistingKeyVault, $IgnoreExistingStorageAccount ) process { $somethingmissing = $false $optionalMissing = $false Write-Verbose "Validating Parameters" if (-not($ObjectID)) { Write-Verbose "Missing Parameter: `$ObjectID" Write-Verbose " Obtain it by using Get-AzADUser and search for your User" $somethingmissing = $true } if (-not($KeyVaultName)) { Write-Verbose "Missing Parameter: `$KeyVaultName" $somethingmissing = $true } else { $keyVault = Get-AzKeyVault -ResourceGroupName $ResourceGroupName -VaultName $KeyVaultName -ErrorAction SilentlyContinue if (-not($keyVault)) { $StatusCode = $null $uri = "https://$($KeyVaultName).vault.azure.net" try { $response = invoke-WebRequest -Uri $Uri -ErrorAction Stop $StatusCode = $Response.StatusCode } catch [System.Net.WebException] { $StatusCode = $_.Exception.Response.StatusCode.value__ } if (-not($IgnoreExistingKeyVault)) { if ($null -ne $StatusCode) { throw "KeyVaultName $KeyVaultName is already in use." } } } } if (-not($StorageAccountName)) { Write-Verbose "Missing Parameter: `$StorageAccountName" $somethingmissing = $true } else { $storageAccount = Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName -ErrorAction SilentlyContinue if (-not($storageAccount)) { $StatusCode = $null $uri = "https://$($StorageAccountName).blob.core.windows.net/" try { $response = invoke-WebRequest -Uri $Uri -ErrorAction Stop $StatusCode = $Response.StatusCode } catch [System.Net.WebException] { $StatusCode = $_.Exception.Response.StatusCode.value__ } if (-not($IgnoreExistingStorageAccount)) { if ($null -ne $StatusCode) { throw "StorageAccount name $StorageAccountName is already in use." } } } } if (-not($SubscriptionName)) { Write-Verbose "Missing Parameter: `$SubscriptionName" Write-Verbose " This one is optional, but make sure that you're connected to the correct subscription" Write-Verbose " Currently used subscription is: $((Get-AzContext).Subscription.Name)" $optionalMissing = $true } Write-Verbose "Parameters validated." if ($somethingmissing) { return $false } else { return $true } } } |