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 %}