PowerShell操作DNS建立SRV記錄

2021-09-05 06:57:52 字數 3828 閱讀 8646

powershell可以快速的建立a記錄和dns記錄。

我們看一下標準的srv記錄是什麼樣子的

ps c:\>get-wmiobject -namespace root\microsoftdns -class microsoftdns_srvtype | ? 

__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       : 

__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。 最後在指令碼當前目錄,輸入   .\***x.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並加入域中

執行環境 windows server 2012 r2 此powershell指令碼為自動修改本機dns並加入到域中 但有的時候會提示 本地計算機當前不是域的一部分。請重新執行指令碼!錯誤,如遇到該錯誤可按照提示重新執行指令碼 若多次執行後還是報錯,錯誤原因是指令碼將本機加入到域中,但是域控中未出現...

Powershell 遠端操作

1.檢視winrm是否開啟 get service winrm 2.enable psremoting force 3.進行信任設定 set item wsman localhost client trustedhosts restart service winrm 4.測試遠端連線 test ws...

PowerShell操作之檔案查詢和操作

需求 一 建立資料夾 步驟1 我們在桌面建立資料夾test01,步驟如下 new itemc users terry.zhou desktop test01 typedirectory出現如下報錯 步驟2 這個原因是因為我們在桌面已經有同名資料夾,我們可以執行以下命令,如果有同名資料夾存在則捕獲異常...