PowerShell-删除DnsServerSigningKey-KeyId$key.KeyId-ZoneName$ZoneName-Force

PowerShell-删除DnsServerSigningKey-KeyId$key.KeyId-ZoneName$ZoneName-Force,powershell,dns,key,Powershell,Dns,Key,以下情况根本不起作用: Remove-DnsServerSigningKey -KeyId $key.KeyId -ZoneName $zonename -Force 其中$zonename是有效的区域,并且密钥id存在且有效。 如果我首先取消一个区域的签名,这个命令会起作用,但我想在辞职后立即执行 逻辑: 获取所有当前区域签名密钥 添加一个新的ZSK 用新的ZSK退出该区 睡眠3秒钟(仅为宽限期) 循环遍历所有以前的键(此时,新键不在列表中) 删除上一个键 尝试删除以前的密钥时,我得

以下情况根本不起作用:

Remove-DnsServerSigningKey -KeyId $key.KeyId -ZoneName $zonename -Force
其中$zonename是有效的区域,并且密钥id存在且有效。 如果我首先取消一个区域的签名,这个命令会起作用,但我想在辞职后立即执行

逻辑:

  • 获取所有当前区域签名密钥
  • 添加一个新的ZSK
  • 用新的ZSK退出该区
  • 睡眠3秒钟(仅为宽限期)
  • 循环遍历所有以前的键(此时,新键不在列表中)
    • 删除上一个键
尝试删除以前的密钥时,我得到:

Remove-DnsServerSigningKey : Failed to delete the signing key __[Key-ID]__ for the zone __[Key-ID]__ on server __[Server-addr]__ Please check 
extended error for additional details.
At C:\Users\Administrator\Desktop\dnssec.ps1:79 char:13
+             Remove-DnsServerSigningKey -KeyId $key.KeyId -ZoneName $zonename -Fo ...
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (__[Key-Id]__:root/Microsoft/...erverSigningKey) [Remove-DnsServerSigningKey], CimException
    + FullyQualifiedErrorId : WIN32 9119,Remove-DnsServerSigningKey
代码如下所示:

function resign {
    param(
        [string]$zonename
    )
    $zonename + " <- Re-Signing"

    ## Grab all current keys (incl active ones)
    $keys = Get-DnsServerSigningKey -ZoneName $zonename

    $zonename + " <- Creating new ZSK"
    #Add a new ZSK 
    Add-DnsServerSigningKey -ZoneName $zonename -ComputerName 127.0.0.1 -CryptoAlgorithm RsaSha256 -Type ZoneSigningKey

    #Resign the zone with the newly added key 
    Invoke-DnsServerZonesign -ZoneName $zonename –DoResign -Force

    Start-Sleep -s 1

    # After the resign, we delete all previous ZONE signing keys (but keep KSK)
    $zonename + " <- Removing ZSKeys"
    foreach ($key in $keys) {
        if ($key.KeyType -eq "ZoneSigningKey") {
            Remove-DnsServerSigningKey -ComputerName 127.0.0.1 -ZoneName $zonename -KeyId $key.KeyId -Force
        }
    }
}
函数辞职{
param(
[字符串]$zonename
)

$zonename+“简而言之,通过删除已签名的区域解决了此问题, 删除旧的ZSK并保留旧的KSK,生成新的ZSK并再次签署区域

基本上,我打电话给unsign,然后在辞职中再次签名。这很难看,不是它想要的工作方式。但是它工作了