تلقين المهام المتعلقة بنظام أسماء النطاقات بواسطة أوامر PowerShell DNS

السجلات DNS عادةً ما تُدار بشكل ديناميكي من قبل خادم DNS الخاص بك. ومع ذلك، في بعض الأحيان، قد تجد أنك بحاجة إلى إنشاء أو تحرير أو إزالة أنواع مختلفة من سجلات DNS يدويًا. أو حتى إضافة مهام DNS مختلفة إلى نصوص الأتمتة. في مثل هذه الحالات، يكون استخدام أوامر PowerShell DNS هو السبيل للذهاب.

تحتوي هذه المقالة على فيديو مصاحب أُنشئ بواسطة David Lamb, مساهم في TechSnips. لا تتردد في مشاهدته أو، إذا كنت تفضل النص، فتابع القراءة!

عرض سجلات DNS باستخدام أوامر PowerShell DNS

يمكنك عرض جميع سجلات الموارد لـ منطقة DNS معينة ببساطة باستخدام أمر PowerShell DNS Get-DnsServerResourceRecord. باستخدام هذا الأمر، يمكنك تحديد معلمة ZoneName التي ستقوم بسرد جميع سجلات DNS في تلك المنطقة.

كما يمكنك رؤية أدناه، يُنشئ هذا قائمة طويلة جدًا من السجلات.

PS51> Get-DnsServerResourceRecord -ZoneName corp.ad
Listing DNS records with PowerShell

تسلط هذه السلوكية الضوء على إحدى مزايا هذا الأمر بالذات على وحدة التحكم الرسومية لـ DNS. حيث يوفر لك العرض جميع السجلات لهذه المنطقة، بغض النظر عن الحافظة التي يتواجدون فيها. في الوحدة الرسومية، سيستغرق الأمر وقتًا طويلاً لتجميع هذه المعلومات.

الآن، قم بتنقيص هذه القائمة قليلاً. باستخدام نفس الأمر، ولكن إضافة معلمة RRType للبحث عن سجلات A (مضيفات IPv4) وتصفية السجلات حيث أن وقت العمر (TTL) أكبر من 15 دقيقة يعطينا قائمة أكثر إدارة. يمكنك استخدام الأمر Where-Object للتصفية حسب العديد من خصائص سجلات DNS المختلفة.

PS51> Get-DnsServerResourceRecord -ZoneName corp.ad -RRType A | Where-Object TimeToLive -GE "00:15:00"
Finding DNS records with a TimeToLive greater than 15 minutes

وبالإضافة إلى ذلك، يمكنك أيضًا البحث عن سجلات في منطقة DNS مختلفة وحتى على خوادم DNS مختلفة.

في المثال أدناه، سنبحث عن سجلات A في منطقة canada.corp.ad على خادم DNS DC03

PS51> Get-DnsServerResourceRecord -ComputerName DC03 -ZoneName canada.corp.ad -RRType A
Finding DNS A records

إضافة وإزالة سجلات المضيف A

لإضافة سجل مضيف، ستحتاج إلى استخدام أداة PowerShell DNS الأمر Add-DnsServerResourceRecordA. في المثال أدناه، ستحتاج إلى إضافة سجل مضيف لطابعة جديدة تقوم بإضافتها إلى الشبكة. سيتم إضافتها إلى منطقة corp.ad بالاسم reddeerprint01، وعنوان IP الخاص بها هو 192.168.2.56.

PS51> Add-DnsServerResourceRecordA -Name reddeerprint01 -ZoneName corp.ad -IPv4Address 192.168.2.56
PS51> Get-DnsServerResourceRecord -ZoneName corp.ad -RRType A
Creating a DNS record

إذا تبين أنك بحاجة إلى إزالة سجل، ربما تم إيقاف تشغيل الطابعة، يمكنك استخدام الكود التالي لإزالة سجل المضيف الذي أنشأناه للتو:

PS51> Remove-DnsServerResourceRecord -ZoneName corp.ad -Name reddeerprint01 -RRType A

إضافة وإزالة سجلات المضيف AAAA

إنه أمر سهل تمامًا أيضًا إضافة سجل مضيف IPv6. بالطبع، تختلف هذه السجلات قليلاً، حيث يتم سردها كسجلات AAAA. قد تلاحظ أننا نستخدم الآن cmdlet PowerShell DNS Add-DnsServerResourceRecordAAAA. إنها تغيير طفيف، ولكنه مهم.

أضف سجلًا إلى منطقة corp.ad لخادم IT Intranet الجديد في fc00:0128 وثم تحقق بسرعة من أنه تم إنشاؤه باستخدام الأمر التالي.

PS51> Add-DnsServerResourceRecordAAAA -Name it-intranet -ZoneName corp.ad -IPv6Address "fc00::0128"
PS51> Get-DnsServerResourceRecord -ZoneName corp.ad -RRType AAAA
Creating an AAA host record

إضافة سجلات البحث العكسي (PTR)

باستخدام cmdlets PowerShell DNS، يمكنك أيضًا إضافة سجلات PTR. يتيح سجل البحث العكسي للعميل استعلام خادم DNS لطلب اسم المضيف لعنوان IP المقدم.

إنشاء سجل PTR هو عملية سهلة نسبيًا، ولكن هناك معلومة مهمة واحدة يجب أن تعرفها قبل أن تبدأ في إضافة سجلات PTR. لا تتم إنشاء مناطق البحث العكسي بشكل افتراضي. ستحتاج إلى إعداد منطقة البحث العكسي قبل إضافة السجلات. لحسن الحظ، من السهل فعل ذلك.

إنشاء منطقة DNS

استخدم cmdlet PowerShell DNS Add-DnsServerPrimaryZone لإنشاء منطقة DNS جديدة. في هذا السياق، نظرًا لأنك تقوم بإنشاء منطقة بحث عكسي، قدم لها معرف الشبكة.

في هذا المثال، اخترت أيضًا تعيين نطاق التكرار لكامل غابة AD، واستهدفت بشكل محدد DC03 كخادم DNS المفضل:

PS51> Add-DnsServerPrimaryZone -ComputerName DC03 -NetworkId "192.168.2.0/24" -ReplicationScope Forest
PS51> Get-DnsServerZone -ComputerName DC03
Creating a DNS primary zone

الآن أن النطاق المقلوب للبحث موجود، يمكنك إضافة سجل PTR لطابعة جديدة تسمى CYQF-Printer-01.canada.corp.ad والتي تمتلك عنوان IP هو 192.168.2.56. نظرًا لأن هذا السجل هو لنطاق canada.corp.ad، فسوف تستهدف خادم DNS DC03.

الآن بعد إنشاء النطاق، دعنا نقوم بإنشاء سجل PTR باستخدام الأمر Add-DnsServerResourceRecordPtr. عند استخدام هذا الأمر، من المهم ملاحظة بعض الأمور.

  • يجب عليك تحديد اسم النطاق باستخدام معرف الشبكة بالترتيب العكسي، ثم إضافة .in-addr.arpa. لذلك بالنسبة لمعرف الشبكة 192.168.2.0/24، اسم النطاق هو 2.168.192.in-addr.arpa.
  • المعلمة Name هي جزء المضيف من عنوان IP. بالنسبة لطابعتنا عند 192.168.2.56، ال Name هو 56.

بمجرد الحصول على تلك القطع من المعلومات، يكون الكود اللازم لإنشاء سجل PTR بسيطًا نسبيًا، إن كان طويلاً قليلا:

PS51> Add-DnsServerResourceRecordPtr `
    -Name "56" `
    -PtrDomainName "CYQF-Printer-01.canada.corp.ad" `
    -ZoneName "2.168.192.in-addr.arpa" `
    -computerName DC03

PS51> Get-DnsServerResourceRecord -ComputerName DC03 -ZoneName "2.168.192.in-addr.arpa"
Creating a PTR record

إضافة سجلات الاسم البديل (CNAME)

لإنهاء هذا البرنامج التعليمي، قم بإنشاء سجل اسم مستضاف بديل أو سجل CNAME باستخدام الأمر Add-DnsServerResourceRecordCName.

تسمح هذه السجلات لك بتحديد اسم بديل لسجل المضيف الموجود في النطاق. يصبح هذا مفيدًا بشكل خاص، على سبيل المثال، إذا أردت توفير عنوان لتطبيق الشؤون المالية لمستخدميك الماليين.

يمكنك إنشاء اختصار يسمى finance وتوجيهه إلى خادم الويب webapp25.corp.ad. بمجرد أن يتم نقل التطبيق إلى الخادم الجديد بمضيف جديد، ستقوم بتغيير سجل CNAME ليشير إلى finance الذي يشير إلى المضيف الجديد. بهذه الطريقة، لن يضطروا المستخدمون إلى تحديث علاماتهم. يمكنهم الاستمرار في الوصول إلى تطبيقهم باستخدام العنوان finance.corp.ad.

PS51> Add-DnsServerResourceRecordCName -ZoneName corp.ad -HostNameAlias "webapp25.corp.ad" -Name "finance"
PS51> Get-DnsServerResourceRecord -ZoneName corp.ad -RRType CName
Creating a CNAME record

إذا كنت ترغب في الغوص في DNS ورؤية بعض الإمكانيات المتقدمة الأخرى، تأكد من مراجعة جميع المشاركات الأخرى حول DNS هنا.

الملخص

هذا يختتم دورتنا التعليمية حول استخدام PowerShell مع سجلات DNS. بالمعرفة التي اكتسبتها هنا، يجب أن تكون قادرًا الآن على إدارة سجلات DNS بشكل تفاعلي أو حتى تلقائي إذا قررت ذلك!

Source:
https://adamtheautomator.com/powershell-dns/