Sunday, 19 September 2010

Provision-LyncDnsRecords.ps1

  1. <# 
  2. .SYNOPSIS 
  3.     This script creates the DNS entries needed for a Lync 2010 SE deployment. 
  4. .DESCRIPTION 
  5.     This script creates a couple of wrapper functions to create DNS A and SRV records, then 
  6.     calls those functions to create the needed A and SRV records for a simple 
  7.     Lync 2010 SE deployment. 
  8. .NOTES 
  9.     File Name  : Provision-LyncDnsRecords.ps1 
  10.     Author     : Thomas Lee - tfl@psp.co.uk 
  11.     Requires   : PowerShell Version 2.0 
  12. .LINK 
  13.     This script posted to: 
  14.         http://pshscripts.blogspot.com/2010/09/provision-lync-dnsrecordsps1.html 
  15.      
  16. #> 
  17. function Get-DnsARecord { 
  18. Get-WmiObject -ComputerName DC1 -Namespace 'root\MicrosoftDNS' -class MicrosoftDNS_AType  -filter "ContainerName ='reskit.org'" | ft ownername, ipaddress -AutoSize  
  19. } 
  20. Set-Alias gda get-DNSARecord 
  21.   
  22. function New-DnsARecord { 
  23. param ( 
  24. $zone = "reskit.org", 
  25. $name = "Testxxx.reskit.org", 
  26. $address = "131.107.2.200",  
  27. $server = "dc1.reskit.org", 
  28. $class = 1, 
  29. $ttl = 3600 
  30. ) 
  31. # get class, and create the record 
  32. $rec = [WmiClass]"\\DC1\root\MicrosoftDNS:MicrosoftDNS_AType" 
  33. $result = $rec.CreateInstanceFromPropertydata($server, $zone, $name, $class, $ttl, $address) 
  34. }  
  35.    
  36. function Get-DnsSrvRecord { 
  37. Get-WmiObject -ComputerName DC1 -Namespace 'root\MicrosoftDNS' -class MicrosoftDNS_SrvType  -filter "ContainerName ='reskit.org'" |  
  38.    ft ownername,port,srvdomainname -AutoSize 
  39. } 
  40. Set-Alias gds get-DNSsrvRecord 
  41.  
  42. function New-DnsSrvRecord { 
  43. param ( 
  44. $zone = "reskit.org", 
  45. $name = "SRVFake.reskit.org", 
  46. $target = "se.reskit.org", 
  47. $port   = 9999, 
  48. $priority = 0, 
  49. $weight = 0, 
  50. $server = "dc1.reskit.org", 
  51. $class = 1, 
  52. $ttl = 3600 
  53. ) 
  54. $rec = [WmiClass]"\\DC1\root\MicrosoftDNS:MicrosoftDNS_SRVType" 
  55.  
  56. $result = $rec.CreateInstanceFromPropertydata($server, $zone, $name, $class, $ttl, $priority, $weight, $port, $target) 
  57. } 
  58.  
  59. # Create the needed records 
  60.  
  61. # The machines 
  62. # DC - Domain Controller, CA, IIS 
  63. New-DNSARecord reskit.org dc1.reskit.org        10.100.100.25 
  64. # SE - SE Server 
  65. New-DNSARecord reskit.org dc1.reskit.org        10.100.100.20 
  66. # Monitoring Server 
  67. New-DNSARecord reskit.org monitor.reskit.org    10.100.100.210 
  68. # Archive Server 
  69. New-DNSARecord reskit.org archive.reskit.org    10.100.100.220 
  70. # Reverse Proxy - Inside edge 
  71. New-DNSARecord reskit.org proxy.reskit.org      10.100.100.200 
  72. # Edge Consolidated - Inside edge 
  73. New-DNSARecord reskit.org edge.reskit.org       10.100.100.201 
  74.  
  75. # Services 
  76. # Dialin URL 
  77. New-DNSARecord reskit.org dialin.reskit.org     10.100.100.20 
  78. # Meeting URL 
  79. New-DNSARecord reskit.org meet.reskit.org       10.100.100.20 
  80. # Administration URL 
  81. New-DNSARecord reskit.org admin.reskit.org      10.100.100.20 
  82. # Web Services external URL 
  83. New-DNSARecord reskit.org external.reskit.org   10.100.100.200 
  84. New-DNSARecord reskit.org external1.reskit.org  10.100.100.200 
  85.  
  86. # Client Autodiscover SRV 
  87. New-DnsSrvRecord reskit.org _SipInternalTls._tcp.reskit.org se.reskit.org 5061  
  88.  
  89. # Display A records 
  90. gda  
  91.  
  92. # Display Srv Records 
  93. gds  

No comments: