# 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: 2958
# x-derived-from-id: 5358
# x-archived: 2016-10-30T01:04:47
# x-published: 2011-09-15T19:35: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)
}