2016-01-20 5 views
0

Я пытаюсь автоматизировать создание и удаление записей CName в нашем внутреннем DNS. Мы работаем под управлением Windows Server 2012 R2 и используем командлеты сервера DNS PowerShell.Удалить конкретную запись CName [PowerShell]

опрашивающие и создание синонимов не является проблемой, эта линия создает web.test.dev.contoso.com CNAME и связывает его с записью dev01.contoso.com. AName

Add-DnsServerResourceRecordCName -ZoneName "contoso.com" -HostNameAlias "dev01.contoso.com." -Name "web.test.dev" 

Этой строка извлекает web.test.dev.contoso.com CNAME, которая связана с dev01.contoso.com. AName

Get-DnsServerResourceRecord -RRType CName -ZoneName "contoso.com" | ? {$_.RecordData.HostNameAlias -eq "dev01.contoso.com." -and $_.HostName -eq "web.test.dev" 

Но удаление записи CNAME является вопрос, я могу извлечь CNAME и передать его в Remove-DnsServerResourceRecord командлет likeso:

Get-DnsServerResourceRecord -RRType CName -ZoneName "contoso.com" | ? {$_.RecordData.HostNameAlias -eq "dev01.contoso.com." -and $_.HostName -eq "web.test.dev" | Remove-DnsServerResourceRecord -ZoneName $zoneName -RRType "CName" 

Но я получаю эту ошибку:

The input object cannot be bound to any parameters for the command either because the command does not take pipeline input or the input and its properties do not match any of the parameters that take 
pipeline input. 
    + CategoryInfo   : InvalidArgument: (DnsServerResourceRecord:PSObject) [Remove-DnsServerResourceRecord], ParameterBindingException 
    + FullyQualifiedErrorId : InputObjectNotBound,Remove-DnsServerResourceRecord 

Кто-нибудь был в состоянии удалить запись CNAME с помощью командлета Remove-DnsServerResourceRecord на основе значений Входа или же он просто удалить все синонимами с определенным именем ?

EDIT: В соответствии с ответом Фрод F, в финале команда:

Get-DnsServerResourceRecord -RRType CName -ZoneName "contoso.com" | ? {$_.RecordData.HostNameAlias -eq "dev01.contoso.com." -and $_.HostName -eq "web.test.dev" | Remove-DnsServerResourceRecord -ZoneName $zoneName -Force 
+0

Что произойдет, если вы просто использовать сырую команду, без конвейерная? (ошибка указывает на проблему с конвейером) –

ответ

2

Вы не можете использовать -RRType "CName" с трубопроводом (ввод объекта). Удалите это, и он должен работать.

Только зонирование и зонирование являются действительными необязательными параметрами при использовании трубопровода.

Syntax:

Parameter Set: InputObject
Remove-DnsServerResourceRecord [-ZoneName] <String> [-CimSession <CimSession[]> ] [-ComputerName <String> ] [-Force] [-InformationAction <System.Management.Automation.ActionPreference> {SilentlyContinue | Stop | Continue | Inquire | Ignore | Suspend} ] [-InformationVariable <System.String> ] [-PassThru] [-ThrottleLimit <Int32> ] [-ZoneScope <System.String> ] [-Confirm] [-WhatIf] [ <CommonParameters>] [ <WorkflowParameters>]

+1

Сохранено снова SO, спасибо Frode F! – ShaneC