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

New-AzureRmDnsRecordSet

创建 DNS 记录集。

重要

由于 Az PowerShell 模块现在已具有 AzureRM PowerShell 模块的所有功能及更多功能,因此我们将于 2024 年 2 月 29 日停用 AzureRM PowerShell 模块。

若要避免服务中断,请更新脚本,在 2024 年 2 月 29 日结束之前将使用 AzureRM PowerShell 模块的脚本更新为使用 Az PowerShell 模块。 若要自动更新脚本,请按照快速入门指南操作。

语法

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

说明

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

示例

示例 1:创建类型为 A 的 RecordSet

PS C:\> $Records = @()
PS C:\> $Records += New-AzureRmDnsRecordConfig -IPv4Address 1.2.3.4
PS C:\> $RecordSet = New-AzureRmDnsRecordSet -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:

PS C:\> $RecordSet = New-AzureRmDnsRecordSet -Name "www" -RecordType A -ResourceGroupName "MyResourceGroup" -TTL 3600 -ZoneName "myzone.com" -DnsRecords (New-AzureRmDnsRecordConfig -IPv4Address 1.2.3.4)

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

PS C:\> $Records = @()
PS C:\> $Records += New-AzureRmDnsRecordConfig -IPv4Address 1.2.3.4
PS C:\> $Records += New-AzureRmDnsRecordConfig -IPv4Address 5.6.7.8
PS C:\> $RecordSet = New-AzureRmDnsRecordSet -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

PS C:\> $Records = @()
PS C:\> $Records += New-AzureRmDnsRecordConfig -Ipv6Address 2001:db8::1
PS C:\> $RecordSet = New-AzureRmDnsRecordSet -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

PS C:\> $Records = @()
PS C:\> $Records += New-AzureRmDnsRecordConfig -Cname www.contoso.com
PS C:\> $RecordSet = New-AzureRmDnsRecordSet -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

PS C:\> $Records = @()
PS C:\> $Records += New-AzureRmDnsRecordConfig -Exchange "mail.microsoft.com" -Preference 5
PS C:\> $RecordSet = New-AzureRmDnsRecordSet -Name "www" -RecordType AAAA -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

PS C:\> $Records = @()
PS C:\> $Records += New-AzureRmDnsRecordConfig -Nsdname ns1-01.azure-dns.com
PS C:\> $RecordSet = New-AzureRmDnsRecordSet -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

PS C:\> $Records = @()
PS C:\> $Records += New-AzureRmDnsRecordConfig -Ptrdname www.contoso.com
PS C:\> $RecordSet = New-AzureRmDnsRecordSet -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

PS C:\> $Records = @()
PS C:\> $Records += New-AzureRmDnsRecordConfig -Priority 0 -Weight 5 -Port 8080 -Target sipservice.contoso.com
PS C:\> $RecordSet = New-AzureRmDnsRecordSet -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

PS C:\> $Records = @()
PS C:\> $Records += New-AzureRmDnsRecordConfig -Value "This is a TXT Record"
PS C:\> $RecordSet = New-AzureRmDnsRecordSet -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

PS C:\> $Records = @()
PS C:\> $Records += New-AzureRmDnsRecordConfig -Ipv4Address 1.2.3.4
PS C:\> $RecordSet = New-AzureRmDnsRecordSet -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:创建通配符记录集

PS C:\> $Records = @()
PS C:\> $Records += New-AzureRmDnsRecordConfig -Ipv4Address 1.2.3.4
PS C:\> $RecordSet = New-AzureRmDnsRecordSet -Name "*" -RecordType A -ResourceGroupName "MyResourceGroup" -TTL 3600 -ZoneName "myzone.com" -DnsRecords $Records

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

示例 11:创建空记录集

PS C:\>$RecordSet = New-AzureRmDnsRecordSet -Name "www" -RecordType A -ResourceGroupName "MyResourceGroup" -TTL 3600 -ZoneName "myzone.com" -DnsRecords @()

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

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

PS C:\>$RecordSet = New-AzureRmDnsRecordSet -Name "www" -RecordType A -ResourceGroupName "MyResourceGroup" -TTL 3600 -ZoneName "myzone.com" -DnsRecords (New-AzureRmDnsRecordConfig -Ipv4Address 1.2.3.4) -Confirm:$False -Overwrite

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

参数

-Confirm

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

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

-DefaultProfile

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

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

-DnsRecords

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

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

-Metadata

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

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

-Name

指定要创建的 RecordSet 的名称。

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

-Overwrite

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

Type:SwitchParameter
Position:Named
Default value:None
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
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-ResourceGroupName

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

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

-TargetResourceId

别名目标资源 ID。

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

-Ttl

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

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

-WhatIf

显示在此 cmdlet 运行的情况下将会发生什么。 此 cmdlet 未运行。

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

-Zone

指定要在其中创建 RecordSet 的 DnsZone。 或者,可以使用 ZoneNameResourceGroupName 参数指定区域。

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

-ZoneName

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

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

输入

String

DnsZone

参数:区域 (ByValue)

UInt32

RecordType

Hashtable

DnsRecordBase[]

参数:DnsRecords (ByValue)

输出

DnsRecordSet

备注

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