github.com/StackExchange/dnscontrol/v4@v4.11.0/documentation/provider/msdns.md (about) 1 This provider updates a Microsoft DNS server. 2 3 It interacts with the server via PowerShell commands. As a result, DNSControl 4 must be run on Windows and will automatically disable itself when run on 5 non-Windows systems. 6 7 DNSControl will use `New-PSSession` to execute the commands remotely if 8 `computername` is set in `creds.json` (see below). 9 10 # Caveats 11 12 * Two systems updating a zone is never a good idea. If Windows Dynamic 13 DNS and DNSControl are both updating a zone, there will be 14 unhappiness. DNSControl will blindly remove the dynamic records 15 unless precautions such as `IGNORE*` and `NO_PURGE` are in use. 16 17 # Running on Non-Windows systems 18 19 Currently this driver disables itself when run on Non-Windows systems. 20 21 It should be possible for non-Windows hosts with PowerShell Core installed to 22 execute commands remotely via SSH. The module used to talk to PowerShell 23 supports this. It should be easy to implement. Volunteers requested. 24 25 ## Configuration 26 27 To use this provider, add an entry to `creds.json` with `TYPE` set to `MSDNS` 28 along with other settings: 29 30 * `dnsserver`: (optional) the name of the Microsoft DNS Server to communicate with. 31 * `psusername`: (optional) the username to connect to the PowerShell PSSession host. 32 * `pspassword`: (optional) the password to connect to the PowerShell PSSession host. 33 34 Example: 35 36 {% code title="creds.json" %} 37 ```json 38 { 39 "msdns": { 40 "TYPE": "MSDNS", 41 "dnsserver": "ny-dc01", 42 "psusername": "mywindowsusername", 43 "pspassword": "mysupersecurepassword" 44 } 45 } 46 ``` 47 {% endcode %} 48 49 An example DNS configuration: 50 51 {% code title="dnsconfig.js" %} 52 ```javascript 53 var REG_NONE = NewRegistrar("none"); 54 var DSP_MSDNS = NewDnsProvider("msdns"); 55 56 D("example.com", REG_NONE, DnsProvider(DSP_MSDNS), 57 A("test", "1.2.3.4"), 58 END) 59 ``` 60 {% endcode %}