PoshCode Archive  Hex Artifact Content

Artifact 2e3f14a36e2da526a7387e7ebf5fea117d81a3fbdbcf86e25bd366b75054554f:

  • File Set-PrimaryDnsSuffix.ps1 — part of check-in [047f7f3d20] at 2018-06-10 14:13:42 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: 1266)

0000: 23 20 65 6e 63 6f 64 69 6e 67 3a 20 61 73 63 69  # encoding: asci
0010: 69 0d 0a 23 20 61 70 69 3a 20 70 6f 77 65 72 73  i..# api: powers
0020: 68 65 6c 6c 0d 0a 23 20 74 69 74 6c 65 3a 20 53  hell..# title: S
0030: 65 74 2d 50 72 69 6d 61 72 79 44 6e 73 53 75 66  et-PrimaryDnsSuf
0040: 66 69 78 0d 0a 23 20 64 65 73 63 72 69 70 74 69  fix..# descripti
0050: 6f 6e 3a 20 53 65 74 73 20 74 68 65 20 73 79 73  on: Sets the sys
0060: 74 65 6d 20 70 72 69 6d 61 72 79 20 44 4e 53 20  tem primary DNS 
0070: 73 75 66 66 69 78 20 62 79 20 70 2d 69 6e 76 6f  suffix by p-invo
0080: 6b 69 6e 67 20 74 68 65 20 57 69 6e 33 32 20 41  king the Win32 A
0090: 50 49 2e 20 52 65 74 75 72 6e 73 20 74 72 75 65  PI. Returns true
00a0: 20 66 6f 72 20 73 75 63 63 65 73 73 2c 20 66 61   for success, fa
00b0: 6c 73 65 20 66 6f 72 20 66 61 69 6c 75 72 65 2e  lse for failure.
00c0: 0d 0a 23 20 76 65 72 73 69 6f 6e 3a 20 30 2e 31  ..# version: 0.1
00d0: 0d 0a 23 20 74 79 70 65 3a 20 66 75 6e 63 74 69  ..# type: functi
00e0: 6f 6e 0d 0a 23 20 61 75 74 68 6f 72 3a 20 41 6e  on..# author: An
00f0: 64 79 20 41 72 69 73 6d 65 6e 64 69 0d 0a 23 20  dy Arismendi..# 
0100: 6c 69 63 65 6e 73 65 3a 20 43 43 30 0d 0a 23 20  license: CC0..# 
0110: 66 75 6e 63 74 69 6f 6e 3a 20 53 65 74 2d 50 72  function: Set-Pr
0120: 69 6d 61 72 79 44 6e 73 53 75 66 66 69 78 0d 0a  imaryDnsSuffix..
0130: 23 20 78 2d 70 6f 73 68 63 6f 64 65 2d 69 64 3a  # x-poshcode-id:
0140: 20 36 33 34 37 0d 0a 23 20 78 2d 64 65 72 69 76   6347..# x-deriv
0150: 65 64 2d 66 72 6f 6d 2d 69 64 3a 20 36 33 34 38  ed-from-id: 6348
0160: 0d 0a 23 20 78 2d 61 72 63 68 69 76 65 64 3a 20  ..# x-archived: 
0170: 32 30 31 36 2d 30 36 2d 32 39 54 30 39 3a 35 39  2016-06-29T09:59
0180: 3a 35 33 0d 0a 23 20 78 2d 70 75 62 6c 69 73 68  :53..# x-publish
0190: 65 64 3a 20 32 30 31 36 2d 30 35 2d 31 37 54 32  ed: 2016-05-17T2
01a0: 33 3a 34 35 3a 30 30 0d 0a 23 0d 0a 23 0d 0a 66  3:45:00..#..#..f
01b0: 75 6e 63 74 69 6f 6e 20 53 65 74 2d 50 72 69 6d  unction Set-Prim
01c0: 61 72 79 44 6e 73 53 75 66 66 69 78 20 7b 0d 0a  aryDnsSuffix {..
01d0: 09 70 61 72 61 6d 20 28 5b 73 74 72 69 6e 67 5d  .param ([string]
01e0: 20 24 53 75 66 66 69 78 29 0d 0a 09 0d 0a 09 23   $Suffix)......#
01f0: 20 68 74 74 70 3a 2f 2f 6d 73 64 6e 2e 6d 69 63   http://msdn.mic
0200: 72 6f 73 6f 66 74 2e 63 6f 6d 2f 65 6e 2d 75 73  rosoft.com/en-us
0210: 2f 6c 69 62 72 61 72 79 2f 6d 73 37 32 34 32 32  /library/ms72422
0220: 34 28 76 3d 76 73 2e 38 35 29 2e 61 73 70 78 0d  4(v=vs.85).aspx.
0230: 0a 09 24 43 6f 6d 70 75 74 65 72 4e 61 6d 65 50  ..$ComputerNameP
0240: 68 79 73 69 63 61 6c 44 6e 73 44 6f 6d 61 69 6e  hysicalDnsDomain
0250: 20 3d 20 36 0d 0a 09 0d 0a 09 41 64 64 2d 54 79   = 6......Add-Ty
0260: 70 65 20 2d 54 79 70 65 44 65 66 69 6e 69 74 69  pe -TypeDefiniti
0270: 6f 6e 20 40 22 0d 0a 09 75 73 69 6e 67 20 53 79  on @"...using Sy
0280: 73 74 65 6d 3b 0d 0a 09 75 73 69 6e 67 20 53 79  stem;...using Sy
0290: 73 74 65 6d 2e 52 75 6e 74 69 6d 65 2e 49 6e 74  stem.Runtime.Int
02a0: 65 72 6f 70 53 65 72 76 69 63 65 73 3b 0d 0a 0d  eropServices;...
02b0: 0a 09 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70  ..namespace Comp
02c0: 75 74 65 72 53 79 73 74 65 6d 20 7b 0d 0a 09 20  uterSystem {... 
02d0: 20 20 20 70 75 62 6c 69 63 20 63 6c 61 73 73 20     public class 
02e0: 49 64 65 6e 74 69 66 69 63 61 74 69 6f 6e 20 7b  Identification {
02f0: 0d 0a 09 20 20 20 20 20 20 20 20 5b 44 6c 6c 49  ...        [DllI
0300: 6d 70 6f 72 74 28 22 6b 65 72 6e 65 6c 33 32 2e  mport("kernel32.
0310: 64 6c 6c 22 2c 20 43 68 61 72 53 65 74 20 3d 20  dll", CharSet = 
0320: 43 68 61 72 53 65 74 2e 41 75 74 6f 29 5d 0d 0a  CharSet.Auto)]..
0330: 09 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20  .        static 
0340: 65 78 74 65 72 6e 20 62 6f 6f 6c 20 53 65 74 43  extern bool SetC
0350: 6f 6d 70 75 74 65 72 4e 61 6d 65 45 78 28 69 6e  omputerNameEx(in
0360: 74 20 4e 61 6d 65 54 79 70 65 2c 20 73 74 72 69  t NameType, stri
0370: 6e 67 20 6c 70 42 75 66 66 65 72 29 3b 0d 0a 09  ng lpBuffer);...
0380: 09 09 0d 0a 09 20 20 20 20 20 20 20 20 70 75 62  .....        pub
0390: 6c 69 63 20 73 74 61 74 69 63 20 62 6f 6f 6c 20  lic static bool 
03a0: 53 65 74 50 72 69 6d 61 72 79 44 6e 73 53 75 66  SetPrimaryDnsSuf
03b0: 66 69 78 28 73 74 72 69 6e 67 20 73 75 66 66 69  fix(string suffi
03c0: 78 29 20 7b 0d 0a 09 20 20 20 20 20 20 20 20 20  x) {...         
03d0: 20 20 20 74 72 79 20 7b 0d 0a 09 20 20 20 20 20     try {...     
03e0: 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72             retur
03f0: 6e 20 53 65 74 43 6f 6d 70 75 74 65 72 4e 61 6d  n SetComputerNam
0400: 65 45 78 28 24 43 6f 6d 70 75 74 65 72 4e 61 6d  eEx($ComputerNam
0410: 65 50 68 79 73 69 63 61 6c 44 6e 73 44 6f 6d 61  ePhysicalDnsDoma
0420: 69 6e 2c 20 73 75 66 66 69 78 29 3b 0d 0a 09 20  in, suffix);... 
0430: 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 09 20             }... 
0440: 20 20 20 20 20 20 20 20 20 20 20 63 61 74 63 68             catch
0450: 20 28 45 78 63 65 70 74 69 6f 6e 29 20 7b 0d 0a   (Exception) {..
0460: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
0470: 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0d 0a   return false;..
0480: 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a  .            }..
0490: 09 20 20 20 20 20 20 20 20 7d 0d 0a 09 20 20 20  .        }...   
04a0: 20 7d 0d 0a 09 7d 0d 0a 22 40 0d 0a 09 5b 43 6f   }...}.."@...[Co
04b0: 6d 70 75 74 65 72 53 79 73 74 65 6d 2e 49 64 65  mputerSystem.Ide
04c0: 6e 74 69 66 69 63 61 74 69 6f 6e 5d 3a 3a 53 65  ntification]::Se
04d0: 74 50 72 69 6d 61 72 79 44 6e 73 53 75 66 66 69  tPrimaryDnsSuffi
04e0: 78 28 24 68 61 70 70 79 2e 63 6f 6d 29 0d 0a 7d  x($happy.com)..}
04f0: 0d 0a                                            ..