PoshCode Archive  Artifact Content

Artifact 79f66768ad15e8792b222dc5184a0e905cbc549df020d45522f6359ceb28da56:

  • File Set-PrimaryDnsSuffix.ps1 — part of check-in [68b1a9d007] at 2018-06-10 14:07:01 on branch trunk — Sets the system primary DNS suffix by p-invoking the Win32 API. Returns true for success, false for failure. (user: Andy Arismendi size: 1263)

# encoding: ascii
# api: powershell
# title: Set-PrimaryDnsSuffix
# description: Sets the system primary DNS suffix by p-invoking the Win32 API. Returns true for success, false for failure.
# version: 0.1
# type: function
# author: Andy Arismendi
# license: CC0
# function: Set-PrimaryDnsSuffix
# x-poshcode-id: 6051
# x-derived-from-id: 6076
# x-archived: 2016-06-29T10:14:18
# x-published: 2016-10-18T16:26:00
#
#
function Set-PrimaryDnsSuffix {
	param ([string] $Suffix)
	
	# http://msdn.microsoft.com/en-us/library/ms724224(v=vs.85).aspx
	$ComputerNamePhysicalDnsDomain = 6
	
	Add-Type -TypeDefinition @"
	using System;
	using System.Runtime.InteropServices;

	namespace ComputerSystem {
	    public class Identification {
	        [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
	        static extern bool SetComputerNameEx(int NameType, string lpBuffer);
			
	        public static bool SetPrimaryDnsSuffix(string suffix) {
	            try {
	                return SetComputerNameEx($ComputerNamePhysicalDnsDomain, suffix);
	            }
	            catch (Exception) {
	                return false;
	            }
	        }
	    }
	}
"@
	[ComputerSystem.Identification]::SetPrimaryDnsSuffix($Suffix)
}