PowerShell操作DNS创建SRV记录
需求来源:某个组织的Active Directory域,其中的一部分域控制器的SRV记录会无缘无故的丢掉,dcdiag检查dns的时候,发现一大堆报错,看到报错基本就不想弄了,实在太多……
PowerShell可以快速的创建A记录和DNS记录。
我们看一下标准的SRV记录是什么样子的PS C:\>Get-WmiObject -Namespace root\MicrosoftDNS -class microsoftdns_srvtype | ? {$_.DnsServerName -eq "dc.contoso.com"} __GENUS : 2 __CLASS : MicrosoftDNS_SRVType __SUPERCLASS : MicrosoftDNS_ResourceRecord __DYNASTY : CIM_ManagedSystemElement __RELPATH : MicrosoftDNS_SRVType.ContainerName="_msdcs.contoso.com",DnsServerName="DC.contoso.com",DomainName="_tcp.Default-First-Site-Name._sites.dc._msdcs.contoso.com",OwnerName="_kerberos. _tcp.Default-First-Site-Name._sites.dc._msdcs.contoso.com",RecordClass=1,RecordData="0 100 88 dc2.contoso.com." __PROPERTY_COUNT : 18 __DERIVATION : {MicrosoftDNS_ResourceRecord, CIM_LogicalElement, CIM_ManagedSystemElement} __SERVER : DC __NAMESPACE : root\MicrosoftDNS __PATH : \\DC\root\MicrosoftDNS:MicrosoftDNS_SRVType.ContainerName="_msdcs.contoso.com",DnsServerName="DC.contoso.com",DomainName="_tcp.Default-First-Site-Name._sites.dc._msdcs.contoso.com ",OwnerName="_kerberos._tcp.Default-First-Site-Name._sites.dc._msdcs.contoso.com",RecordClass=1,RecordData="0 100 88 dc2.contoso.com." Caption : ContainerName : _msdcs.contoso.com Description : DnsServerName : DC.contoso.com DomainName : _tcp.Default-First-Site-Name._sites.dc._msdcs.contoso.com InstallDate : Name : OwnerName : _kerberos._tcp.Default-First-Site-Name._sites.dc._msdcs.contoso.com Port : 88 Priority : 0 RecordClass : 1 RecordData : 0 100 88 dc2.contoso.com. SRVDomainName : dc2.contoso.com. Status : TextRepresentation : _kerberos._tcp.Default-First-Site-Name._sites.dc._msdcs.contoso.com IN SRV 0 100 88 dc2.contoso.com. Timestamp : 3633513 TTL : 600 Weight : 100 PSComputerName : DC我们注意一下,有用的地方是如下几行ContainerName : _msdcs.contoso.com DnsServerName : DC.contoso.com OwnerName : _kerberos._tcp.Default-First-Site-Name._sites.dc._msdcs.contoso.com RecordData : 0 100 88 dc2.contoso.com. TextRepresentation : _kerberos._tcp.Default-First-Site-Name._sites.dc._msdcs.contoso.com IN SRV 0 100 88 dc2.contoso.com.首先要说明的就是容器名,这里主要是注意,msdcs这个容器。另外dnsservername就是当前需要操作的域控制器名。
在TextRepresentation : _kerberos._tcp.Default-First-Site-Name._sites.dc._msdcs.contoso.com IN SRV 0 100 88 dc2.contoso.com. 这句中,则包含了我们要手动输入的所有信息。
我们构造一句话,最后一句就实现了目标功能$dnsServerName="dc.contoso.com"
$containerName="_msdcs.contoso.com"
$mydns = [WMIClass]"ROOT\MicrosoftDNS:MicrosoftDNS_ResourceRecord"
$mydns.CreateInstanceFromTextRepresentation($dnsServerName,$containerName,_kerberos._tcp.Default-First-Site-Name._sites IN SRV 0 100 88 dc3332.contoso.com.)最后再来完善一下,在非5大角色的域控制器上运行 dcdiag /test:dns /s:domainname /v 看一下dns输出记录。可以添加相应条目#脚本需要在PowerShell中运行,首先打开cmd,然后输入PowerShell。 最后在脚本当前目录,输入 .\xxxx.ps1
$hostdc= Read-Host “(请输入需要添加SRV记录的域控制器的netbios名)”
$dnsServerName="dc.contoso.com"
$containerName="_msdcs.contoso.com"
$containerName2="contoso.com"
$site ="Default-First-Site-Name" #此处输入站点名
$mydns = [WMIClass]"ROOT\MicrosoftDNS:MicrosoftDNS_ResourceRecord"
#增加 “DC”“站点”中的kerberos的tcp srv记录
$mydns.CreateInstanceFromTextRepresentation($dnsServerName,$containerName,"_kerberos._tcp.$site._sites.dc IN SRV 0 100 88 $hostdc")|select RR
#增加“GC”“站点”中的tcp ldap记录
$mydns.CreateInstanceFromTextRepresentation($dnsServerName,$containerName,"_ldap._tcp.$site._sites.gc IN SRV 0 100 88 $hostdc")|select RR
- 用powershell批量创建dns中的A记录
- 如何验证是否为域控制器创建了 SRV DNS 记录
- 如何验证是否为域控制器创建了 SRV DNS 记录
- PowerShell操作DNS创建SRV记录
- 如何验证是否为域控制器创建了 SRV DNS 记录
- 通过DNS TXT记录执行powershell
- Windows Server 批量创建DNS区域及记录(使用bat脚本)
- DNS:配置/查询资源记录,A、AAAA、CNAME、TXT、NS、MX、SOA、SRV、PTR
- 【转】什么是DNS,A记录,子域名,CNAME别名,MX记录,TXT记录,SRV 记录,TTL值,泛域名(泛解析),域名转向,域名绑定
- ES 对各字段创建分词 和mapping创建 个人操作记录
- 09 ORM 多表操作,创建表,添加记录
- Gerrit上分支操作记录(创建分支、删除分支)
- 名词解释:DNS,A记录,子域名,CNAME别名,PTR,MX,TXT,SRV,TTL
- 数据库sql语句笔试题--包含创建数据库、表、插入记录、查询等操作
- 在PowerShell中操作Excel - 创建一个简单的报表
- openshift/origin工作记录(6)——本地DNS服务器的创建与配置
- elasticsearch创建index和type操作日志记录
- 在redhat上安装ftp服务器并创建用户的操作步骤记录
- 活动目录向DNS注册SRV记录不成功的原因
- 在redhat上安装ftp服务器并创建用户的操作步骤记录