如何在 powershell 中规范化此 URL?
How do I normalize this URL in powershell?
我有以下 Azure Key Vault 资源代码:
$tempkeyid = (Get-AzKeyVaultKey -VaultName $vaultname -Name $tempkeyname).Id
$tempkeyid = $tempkeyid.Substring(0, $tempkeyid.LastIndexOf('/'))
$tempkeyid
New-AzSynapseWorkspaceKey -ResourceGroupName $resourcegroup -WorkspaceName $workspacename -Name $tempkeyname -EncryptionKeyIdentifier $tempkeyid
第 2 行存在是因为密钥保管库 returns 版本标识符,但第 4 行需要无版本标识符
第 3 行中 $tempkeyid 的值为:
https://keyvaultname.vault.azure.net:443/keys/keyname
我收到错误:
New-AzSynapseWorkspaceKey: Key Vault URL should be a normalized URL
我尝试使用下面的代码对 URL 进行编码和解码,但编码尝试遇到相同的错误,而解码尝试遇到错误“无效的 URI:URI 的格式可能不确定”。我不确定如何以其他方式对其进行规范化,或者不确定具体是什么未规范化。 $tempkeyid 的值在我看来是正确的。
$tempkeyid = [System.Web.HttpUtility]::UrlEncode($tempkeyid)
$tempkeyid = [System.Web.HttpUtility]::UrlDecode($tempkeyid)
编码与URI规范化不同,URI规范化是指以标准格式表达uri。 (参见 wikipedia entry)。在您的情况下,我猜它不喜欢使用默认端口 (:443)。要系统地获得规范化的 uri,请尝试这样的事情:
$tempkeyiduri = [System.Uri]($tempkeyid)
$tempkeyid = $tempkeyiduri.AbsoluteUri
我有以下 Azure Key Vault 资源代码:
$tempkeyid = (Get-AzKeyVaultKey -VaultName $vaultname -Name $tempkeyname).Id
$tempkeyid = $tempkeyid.Substring(0, $tempkeyid.LastIndexOf('/'))
$tempkeyid
New-AzSynapseWorkspaceKey -ResourceGroupName $resourcegroup -WorkspaceName $workspacename -Name $tempkeyname -EncryptionKeyIdentifier $tempkeyid
第 2 行存在是因为密钥保管库 returns 版本标识符,但第 4 行需要无版本标识符
第 3 行中 $tempkeyid 的值为:
https://keyvaultname.vault.azure.net:443/keys/keyname
我收到错误:
New-AzSynapseWorkspaceKey: Key Vault URL should be a normalized URL
我尝试使用下面的代码对 URL 进行编码和解码,但编码尝试遇到相同的错误,而解码尝试遇到错误“无效的 URI:URI 的格式可能不确定”。我不确定如何以其他方式对其进行规范化,或者不确定具体是什么未规范化。 $tempkeyid 的值在我看来是正确的。
$tempkeyid = [System.Web.HttpUtility]::UrlEncode($tempkeyid)
$tempkeyid = [System.Web.HttpUtility]::UrlDecode($tempkeyid)
编码与URI规范化不同,URI规范化是指以标准格式表达uri。 (参见 wikipedia entry)。在您的情况下,我猜它不喜欢使用默认端口 (:443)。要系统地获得规范化的 uri,请尝试这样的事情:
$tempkeyiduri = [System.Uri]($tempkeyid)
$tempkeyid = $tempkeyiduri.AbsoluteUri