The Domain Name System (DNS) Handler provides a simple and programmatic way to interact with designated DNS servers and update DNS records.
The handler makes use of Windows Management Instrumentation (WMI) protocol to communicate with the DNS server. DNS administrator may need to grant the user, under which the handler runs, with sufficient permissions and do additional setup on the selected DNS server.
At a high level, the flow of actions is:
1. Initialize - It will read the DNS server details from the Action Config values in the Synapse plan.
2. Execute - It will parse the incoming Action Parameter data, validate and interact with a relevant DNS server accordingly. Result plan is returned upon completion advising the operation success or failure. 3. Progress - It will advertise the run-time status.
The Config section of the plan specifies the one-to-one matching relationship between each domain suffix and its corresponding DNS server.
|DnsServers||Key-value pairs string array||Yes||Parent element. Requires at least one child element key-value pair.|
|ServerName||String||Yes||DNS server name.|
The Parameter section specifies what a client should send in during run-time.
|Action||String||Yes||Specify to "add" or "delete" a DNS record. Case-insensitive.|
|RecordType||String||Yes||Specify the DNS record type. Valid values are "AType" and "PtrType". Case-insensitive.|
|Hostname||String||Yes||Hostname of the server.|
|IpAddress||String||Yes||Ip address of the server. Must match the hostname in the DNS record.|
|DnsZone||string||No||DNS zone. Only required when adding "PtrType" record.|
|RequestOwner||string||Yes||Specify the request owner. This is captured for audit purpose.|
|Note||string||Yes||Specify the purpose of the request. This is captured for audit purpose.|
Multiple DNS actions are allowed.
This test script can be modified to simulate a test request sent from client to Synapse to invoke the handler.
Handler response contained in the
$result PowerShell variable may look like this in "json" format.
If the value of "ExitCode" is 0, it means the operation is successful. The value of -1 indicates the operation fails. "Note" will provide brief summary of the success or the reason of failure.