# 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) }