你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

New-AzDnsRecordSet

创建 DNS 记录集。

语法

New-AzDnsRecordSet
   -Name <String>
   -ZoneName <String>
   -ResourceGroupName <String>
   -Ttl <UInt32>
   -RecordType <RecordType>
   [-Metadata <Hashtable>]
   [-DnsRecords <DnsRecordBase[]>]
   [-Overwrite]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzDnsRecordSet
   -Name <String>
   -ZoneName <String>
   -ResourceGroupName <String>
   [-Ttl <UInt32>]
   -RecordType <RecordType>
   -TargetResourceId <String>
   [-Metadata <Hashtable>]
   [-DnsRecords <DnsRecordBase[]>]
   [-Overwrite]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzDnsRecordSet
   -Name <String>
   -Zone <DnsZone>
   -Ttl <UInt32>
   -RecordType <RecordType>
   [-Metadata <Hashtable>]
   [-DnsRecords <DnsRecordBase[]>]
   [-Overwrite]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzDnsRecordSet
   -Name <String>
   -Zone <DnsZone>
   [-Ttl <UInt32>]
   -RecordType <RecordType>
   -TargetResourceId <String>
   [-Metadata <Hashtable>]
   [-DnsRecords <DnsRecordBase[]>]
   [-Overwrite]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

说明

New-AzDnsRecordSet cmdlet 使用指定名称和键入指定区域创建新的域名系统(DNS)记录集。 RecordSet 对象是一组具有相同名称和类型的 DNS 记录。 请注意,该名称相对于区域,而不是完全限定的名称。 DnsRecords 参数指定记录集中的记录。 此参数采用使用 New-AzDnsRecordConfig 构造的 DNS 记录数组。 可以使用管道运算符将 DnsZone 对象传递给此 cmdlet,也可以将 DnsZone 对象作为 Zone 参数传递,或者也可以按名称指定区域。 可以使用 Confirm 参数并$ConfirmPreference Windows PowerShell 变量来控制 cmdlet 是否提示你进行确认。 如果匹配 的 RecordSet 已存在(同名和记录类型),则必须指定 Overwrite 参数,否则 cmdlet 将不会创建新的 RecordSet

示例

示例 1:创建 A 类型的 RecordSet

$Records = @()
$Records += New-AzDnsRecordConfig -IPv4Address 1.2.3.4
$RecordSet = New-AzDnsRecordSet -Name "www" -RecordType A -ResourceGroupName "MyResourceGroup" -TTL 3600 -ZoneName "myzone.com" -DnsRecords $Records

# When creating a RecordSet containing a single record, the above sequence can also be condensed into a single line:

$RecordSet = New-AzDnsRecordSet -Name "www" -RecordType A -ResourceGroupName "MyResourceGroup" -TTL 3600 -ZoneName "myzone.com" -DnsRecords (New-AzDnsRecordConfig -IPv4Address 1.2.3.4)

# To create a record set containing multiple records, use New-AzDnsRecordConfig to add each record to the $Records array,
# then call New-AzDnsRecordSet, as follows:

$Records = @()
$Records += New-AzDnsRecordConfig -IPv4Address 1.2.3.4
$Records += New-AzDnsRecordConfig -IPv4Address 5.6.7.8
$RecordSet = New-AzDnsRecordSet -Name "www" -RecordType A -ResourceGroupName "MyResourceGroup" -TTL 3600 -ZoneName "myzone.com" -DnsRecords $Records

此示例在区域 myzone.com 创建 名为 www 的 RecordSet 。 记录集的类型为 A,其 TTL 为 1 小时(3600 秒)。 它包含单个 DNS 记录。

示例 2:创建 AAAA 类型的 RecordSet

$Records = @()
$Records += New-AzDnsRecordConfig -Ipv6Address 2001:db8::1
$RecordSet = New-AzDnsRecordSet -Name "www" -RecordType AAAA -ResourceGroupName "MyResourceGroup" -TTL 3600 -ZoneName "myzone.com" -DnsRecords $Records

此示例在区域 myzone.com 创建 名为 www 的 RecordSet 。 记录集的类型为 AAAA,其 TTL 为 1 小时(3600 秒)。 它包含单个 DNS 记录。 若要仅使用一行pn_PowerShell_short创建 RecordSet ,或创建具有多个记录的记录集,请参阅示例 1。

示例 3:创建 CNAME 类型的 RecordSet

$Records = @()
$Records += New-AzDnsRecordConfig -Cname www.contoso.com
$RecordSet = New-AzDnsRecordSet -Name "www" -RecordType CNAME -ResourceGroupName "MyResourceGroup" -TTL 3600 -ZoneName "myzone.com" -DnsRecords $Records

此示例在区域 myzone.com 创建 名为 www 的 RecordSet 。 记录集的类型为 CNAME,其 TTL 为 1 小时(3600 秒)。 它包含单个 DNS 记录。 若要仅使用一行pn_PowerShell_short创建 RecordSet ,或创建具有多个记录的记录集,请参阅示例 1。

示例 4:创建 MX 类型的 RecordSet

$Records = @()
$Records += New-AzDnsRecordConfig -Exchange "mail.microsoft.com" -Preference 5
$RecordSet = New-AzDnsRecordSet -Name "mail" -RecordType MX -ResourceGroupName "MyResourceGroup" -TTL 3600 -ZoneName "myzone.com" -DnsRecords $Records

此命令在区域 myzone.com 中创建 名为 www 的 RecordSet 。 记录集的类型为 MX,其 TTL 为 1 小时(3600 秒)。 它包含单个 DNS 记录。 若要仅使用一行pn_PowerShell_short创建 RecordSet ,或创建具有多个记录的记录集,请参阅示例 1。

示例 5:创建 NS 类型的 RecordSet

$Records = @()
$Records += New-AzDnsRecordConfig -Nsdname ns1-01.azure-dns.com
$RecordSet = New-AzDnsRecordSet -Name "ns1" -RecordType NS -ResourceGroupName "MyResourceGroup" -TTL 3600 -ZoneName "myzone.com" -DnsRecords $Records

此命令在区域 myzone.com 中创建 名为 ns1 的 RecordSet 。 记录集的类型为 NS,其 TTL 为 1 小时(3600 秒)。 它包含单个 DNS 记录。 若要仅使用一行pn_PowerShell_short创建 RecordSet ,或创建具有多个记录的记录集,请参阅示例 1。

示例 6:创建 PTR 类型的 RecordSet

$Records = @()
$Records += New-AzDnsRecordConfig -Ptrdname www.contoso.com
$RecordSet = New-AzDnsRecordSet -Name "4" -RecordType PTR -ResourceGroupName "MyResourceGroup" -TTL 3600 -ZoneName "3.2.1.in-addr.arpa" -DnsRecords $Records

此命令在区域 3.2.1.in-addr.arpa 中创建 名为 4 的 RecordSet 。 记录集的类型为 PTR,其 TTL 为 1 小时(3600 秒)。 它包含单个 DNS 记录。 若要仅使用一行pn_PowerShell_short创建 RecordSet ,或创建具有多个记录的记录集,请参阅示例 1。

示例 7:创建 SRV 类型的 RecordSet

$Records = @()
$Records += New-AzDnsRecordConfig -Priority 0 -Weight 5 -Port 8080 -Target sipservice.contoso.com
$RecordSet = New-AzDnsRecordSet -Name "_sip._tcp" -RecordType SRV -ResourceGroupName "MyResourceGroup" -TTL 3600 -ZoneName "myzone.com" -DnsRecords $Records

此命令在区域 myzone.com 中创建 名为 _sip._tcp 的 RecordSet 。 记录集的类型为 SRV,其 TTL 为 1 小时(3600 秒)。 它包含单个 DNS 记录,指向 IP 地址 2001.2.3.4。 服务(sip)和协议(tcp)被指定为记录集名称的一部分,而不是记录数据的一部分。 若要仅使用一行pn_PowerShell_short创建 RecordSet ,或创建具有多个记录的记录集,请参阅示例 1。

示例 8:创建 TXT 类型的 RecordSet

$Records = @()
$Records += New-AzDnsRecordConfig -Value "This is a TXT Record"
$RecordSet = New-AzDnsRecordSet -Name "text" -RecordType TXT -ResourceGroupName "MyResourceGroup" -TTL 3600 -ZoneName "myzone.com" -DnsRecords $Records

此命令在区域 myzone.com 创建一个名为 文本的 RecordSet 。 记录集的类型为 TXT,其 TTL 为 1 小时(3600 秒)。 它包含单个 DNS 记录。 若要仅使用一行pn_PowerShell_short创建 RecordSet ,或创建具有多个记录的记录集,请参阅示例 1。

示例 9:在区域顶点创建 RecordSet

$Records = @()
$Records += New-AzDnsRecordConfig -Ipv4Address 1.2.3.4
$RecordSet = New-AzDnsRecordSet -Name "@" -RecordType A -ResourceGroupName "MyResourceGroup" -TTL 3600 -ZoneName "myzone.com" -DnsRecords $Records

此命令在 区域 myzone.com 的顶点(或根)处创建 RecordSet 。 为此,记录集名称指定为“@”(包括双引号)。 不能在区域的顶点创建 CNAME 记录。 这是 DNS 标准的约束;它不是 Azure DNS 的限制。 若要仅使用一行pn_PowerShell_short创建 RecordSet ,或创建具有多个记录的记录集,请参阅示例 1。

示例 10:创建野生卡记录集

$Records = @()
$Records += New-AzDnsRecordConfig -Ipv4Address 1.2.3.4
$RecordSet = New-AzDnsRecordSet -Name "*" -RecordType A -ResourceGroupName "MyResourceGroup" -TTL 3600 -ZoneName "myzone.com" -DnsRecords $Records

此命令在区域 myzone.com 中创建 名为 * 的 RecordSet 。 这是一个野生卡记录集。 若要仅使用一行pn_PowerShell_short创建 RecordSet ,或创建具有多个记录的记录集,请参阅示例 1。

示例 11:创建空记录集

$RecordSet = New-AzDnsRecordSet -Name "www" -RecordType A -ResourceGroupName "MyResourceGroup" -TTL 3600 -ZoneName "myzone.com" -DnsRecords @()

此命令在区域 myzone.com 中创建 名为 www 的 RecordSet 。 记录集的类型为 A,其 TTL 为 1 小时(3600 秒)。 这是一个空记录集,充当可以稍后向其添加记录的占位符。

示例 12:创建记录集并取消所有确认

$RecordSet = New-AzDnsRecordSet -Name "www" -RecordType A -ResourceGroupName "MyResourceGroup" -TTL 3600 -ZoneName "myzone.com" -DnsRecords (New-AzDnsRecordConfig -Ipv4Address 1.2.3.4) -Confirm:$False -Overwrite

此命令创建 RecordSetOverwrite 参数可确保此记录集覆盖具有相同名称和类型的任何预先存在的记录集(该记录集中的现有记录丢失)。 值为 $False 的 Confirm 参数将取消确认提示。

参数

-Confirm

提示你在运行 cmdlet 之前进行确认。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

用于与 azure 通信的凭据、帐户、租户和订阅

Type:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DnsRecords

指定要包含在记录集中的 DNS 记录数组。 可以使用 New-AzDnsRecordConfig cmdlet 创建 DNS 记录对象。 有关更多信息,请参见示例。

Type:DnsRecordBase[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Metadata

指定要与 RecordSet 关联的元数据数组。 元数据是使用表示为哈希表的名称/值对指定的,例如 @{“dept”=“shopping”;”env“=”production“}。

Type:Hashtable
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Name

指定要创建的 RecordSet 的名称

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Overwrite

指示此 cmdlet 覆盖指定的 RecordSet (如果已存在)。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RecordType

指定要创建的 DNS 记录的类型。 有效值为:

  • A
  • AAAA
  • CNAME
  • MX
  • NS
  • PTR
  • SRV
  • 创建区域且无法手动创建时,会自动创建 TXT SOA 记录。
Type:RecordType
Accepted values:A, Aaaa, CAA, Cname, MX, NS, PTR, SOA, SRV, TXT, Tlsa, DS, Naptr
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ResourceGroupName

指定包含 DNS 区域的资源组。 还必须指定 ZoneName 参数以指定区域名称。 或者,可以使用 Zone 参数传入 DNS Zone 对象来指定区域和资源组。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-TargetResourceId

别名目标资源 ID。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Ttl

指定 DNS RecordSet 的生存时间(TTL)。

Type:UInt32
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Zone

指定要在其中创建 RecordSetDnsZone。 或者,可以使用 ZoneName 和 ResourceGroupName 参数指定区域

Type:DnsZone
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ZoneName

指定要在其中创建 RecordSet 的区域的名称。 还必须使用 ResourceGroupName 参数指定包含区域的资源组。 或者,可以使用 Zone 参数传入 DNS Zone 对象来指定区域和资源组。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

输入

String

DnsZone

UInt32

RecordType

Hashtable

DnsRecordBase[]

输出

DnsRecordSet

备注

可以使用 Confirm 参数来控制此 cmdlet 是否提示你进行确认。 默认情况下,如果 $ConfirmPreference Windows PowerShell 变量的值为“中”或“较低”,cmdlet 会提示你进行确认。 如果指定“确认”或“确认:$True”,则此 cmdlet 会在运行之前提示你进行确认。 如果指定 Confirm:$False,cmdlet 不会提示你进行确认。