PoshCode Archive  Hex Artifact Content

Artifact c98ac3ace844296712303188fb8bc1b77c581f2fe58c21624dba3d2d4cbd7b0e:

  • File Set-IPAddress.ps1 — part of check-in [c38d374741] at 2018-06-10 13:21:30 on branch trunk — A function to set an IP Address (user: Andy Schneider size: 1322)

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 49 50 41 64 64 72 65 73 73 0d 0a 23 20  et-IPAddress..# 
0040: 64 65 73 63 72 69 70 74 69 6f 6e 3a 20 41 20 66  description: A f
0050: 75 6e 63 74 69 6f 6e 20 74 6f 20 73 65 74 20 61  unction to set a
0060: 6e 20 49 50 20 41 64 64 72 65 73 73 0d 0a 23 20  n IP Address..# 
0070: 76 65 72 73 69 6f 6e 3a 20 30 2e 31 0d 0a 23 20  version: 0.1..# 
0080: 74 79 70 65 3a 20 66 75 6e 63 74 69 6f 6e 0d 0a  type: function..
0090: 23 20 61 75 74 68 6f 72 3a 20 41 6e 64 79 20 53  # author: Andy S
00a0: 63 68 6e 65 69 64 65 72 0d 0a 23 20 6c 69 63 65  chneider..# lice
00b0: 6e 73 65 3a 20 43 43 30 0d 0a 23 20 66 75 6e 63  nse: CC0..# func
00c0: 74 69 6f 6e 3a 20 53 65 74 2d 49 50 41 64 64 72  tion: Set-IPAddr
00d0: 65 73 73 0d 0a 23 20 78 2d 70 6f 73 68 63 6f 64  ess..# x-poshcod
00e0: 65 2d 69 64 3a 20 33 31 36 35 0d 0a 23 20 78 2d  e-id: 3165..# x-
00f0: 61 72 63 68 69 76 65 64 3a 20 32 30 31 35 2d 30  archived: 2015-0
0100: 35 2d 32 34 54 32 31 3a 32 38 3a 31 31 0d 0a 23  5-24T21:28:11..#
0110: 20 78 2d 70 75 62 6c 69 73 68 65 64 3a 20 32 30   x-published: 20
0120: 31 32 2d 30 31 2d 31 36 54 30 33 3a 34 35 3a 30  12-01-16T03:45:0
0130: 30 0d 0a 23 0d 0a 23 20 41 6e 64 79 20 53 63 68  0..#..# Andy Sch
0140: 6e 65 69 64 65 72 0d 0a 23 20 47 65 74 2d 50 6f  neider..# Get-Po
0150: 77 65 72 53 68 65 6c 6c 2e 63 6f 6d 0d 0a 23 0d  werShell.com..#.
0160: 0a 66 75 6e 63 74 69 6f 6e 20 53 65 74 2d 49 50  .function Set-IP
0170: 41 64 64 72 65 73 73 20 7b 0d 0a 09 09 70 61 72  Address {....par
0180: 61 6d 28 09 5b 73 74 72 69 6e 67 5d 24 6e 65 74  am(.[string]$net
0190: 77 6f 72 6b 69 6e 74 65 72 66 61 63 65 20 3d 24  workinterface =$
01a0: 28 72 65 61 64 2d 68 6f 73 74 20 22 45 6e 74 65  (read-host "Ente
01b0: 72 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68  r the name of th
01c0: 65 20 4e 49 43 20 28 69 65 20 4c 6f 63 61 6c 20  e NIC (ie Local 
01d0: 41 72 65 61 20 43 6f 6e 6e 65 63 74 69 6f 6e 29  Area Connection)
01e0: 22 29 2c 0d 0a 09 09 09 5b 73 74 72 69 6e 67 5d  "),.....[string]
01f0: 24 69 70 20 3d 20 24 28 72 65 61 64 2d 68 6f 73  $ip = $(read-hos
0200: 74 20 22 45 6e 74 65 72 20 61 6e 20 49 50 20 41  t "Enter an IP A
0210: 64 64 72 65 73 73 20 28 69 65 20 31 30 2e 31 30  ddress (ie 10.10
0220: 2e 31 30 2e 31 30 29 22 29 2c 0d 0a 09 09 09 5b  .10.10)"),.....[
0230: 73 74 72 69 6e 67 5d 24 6d 61 73 6b 20 3d 20 24  string]$mask = $
0240: 28 72 65 61 64 2d 68 6f 73 74 20 22 45 6e 74 65  (read-host "Ente
0250: 72 20 74 68 65 20 73 75 62 6e 65 74 20 6d 61 73  r the subnet mas
0260: 6b 20 28 69 65 20 32 35 35 2e 32 35 35 2e 32 35  k (ie 255.255.25
0270: 35 2e 30 29 22 29 2c 0d 0a 09 09 09 5b 73 74 72  5.0)"),.....[str
0280: 69 6e 67 5d 24 67 61 74 65 77 61 79 20 3d 20 24  ing]$gateway = $
0290: 28 72 65 61 64 2d 68 6f 73 74 20 22 45 6e 74 65  (read-host "Ente
02a0: 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 6e 61  r the current na
02b0: 6d 65 20 6f 66 20 74 68 65 20 4e 49 43 20 79 6f  me of the NIC yo
02c0: 75 20 77 61 6e 74 20 74 6f 20 72 65 6e 61 6d 65  u want to rename
02d0: 22 29 2c 0d 0a 09 09 09 5b 73 74 72 69 6e 67 5d  "),.....[string]
02e0: 24 64 6e 73 31 20 3d 20 24 28 72 65 61 64 2d 68  $dns1 = $(read-h
02f0: 6f 73 74 20 22 45 6e 74 65 72 20 74 68 65 20 66  ost "Enter the f
0300: 69 72 73 74 20 44 4e 53 20 53 65 72 76 65 72 20  irst DNS Server 
0310: 28 69 65 20 31 30 2e 32 2e 30 2e 32 38 29 22 29  (ie 10.2.0.28)")
0320: 2c 0d 0a 09 09 09 5b 73 74 72 69 6e 67 5d 24 64  ,.....[string]$d
0330: 6e 73 32 2c 0d 0a 09 09 09 5b 73 74 72 69 6e 67  ns2,.....[string
0340: 5d 24 72 65 67 69 73 74 65 72 44 6e 73 20 3d 20  ]$registerDns = 
0350: 22 54 52 55 45 22 0d 0a 09 09 20 29 0d 0a 09 09  "TRUE".... )....
0360: 24 64 6e 73 20 3d 20 24 64 6e 73 31 0d 0a 09 09  $dns = $dns1....
0370: 69 66 28 24 64 6e 73 32 29 7b 24 64 6e 73 20 3d  if($dns2){$dns =
0380: 22 24 64 6e 73 31 2c 24 64 6e 73 32 22 7d 0d 0a  "$dns1,$dns2"}..
0390: 09 09 24 69 6e 64 65 78 20 3d 20 28 67 77 6d 69  ..$index = (gwmi
03a0: 20 57 69 6e 33 32 5f 4e 65 74 77 6f 72 6b 41 64   Win32_NetworkAd
03b0: 61 70 74 65 72 20 7c 20 77 68 65 72 65 20 7b 24  apter | where {$
03c0: 5f 2e 6e 65 74 63 6f 6e 6e 65 63 74 69 6f 6e 69  _.netconnectioni
03d0: 64 20 2d 65 71 20 24 6e 65 74 77 6f 72 6b 69 6e  d -eq $networkin
03e0: 74 65 72 66 61 63 65 7d 29 2e 49 6e 74 65 72 66  terface}).Interf
03f0: 61 63 65 49 6e 64 65 78 0d 0a 09 09 24 4e 65 74  aceIndex....$Net
0400: 49 6e 74 65 72 66 61 63 65 20 3d 20 47 65 74 2d  Interface = Get-
0410: 57 6d 69 4f 62 6a 65 63 74 20 57 69 6e 33 32 5f  WmiObject Win32_
0420: 4e 65 74 77 6f 72 6b 41 64 61 70 74 65 72 43 6f  NetworkAdapterCo
0430: 6e 66 69 67 75 72 61 74 69 6f 6e 20 7c 20 77 68  nfiguration | wh
0440: 65 72 65 20 7b 24 5f 2e 49 6e 74 65 72 66 61 63  ere {$_.Interfac
0450: 65 49 6e 64 65 78 20 2d 65 71 20 24 69 6e 64 65  eIndex -eq $inde
0460: 78 7d 0d 0a 09 09 24 4e 65 74 49 6e 74 65 72 66  x}....$NetInterf
0470: 61 63 65 2e 45 6e 61 62 6c 65 53 74 61 74 69 63  ace.EnableStatic
0480: 28 24 69 70 2c 20 24 73 75 62 6e 65 74 6d 61 73  ($ip, $subnetmas
0490: 6b 29 0d 0a 09 09 24 4e 65 74 49 6e 74 65 72 66  k)....$NetInterf
04a0: 61 63 65 2e 53 65 74 47 61 74 65 77 61 79 73 28  ace.SetGateways(
04b0: 24 67 61 74 65 77 61 79 29 0d 0a 09 09 24 4e 65  $gateway)....$Ne
04c0: 74 49 6e 74 65 72 66 61 63 65 2e 53 65 74 44 4e  tInterface.SetDN
04d0: 53 53 65 72 76 65 72 53 65 61 72 63 68 4f 72 64  SServerSearchOrd
04e0: 65 72 28 24 64 6e 73 29 0d 0a 09 09 24 4e 65 74  er($dns)....$Net
04f0: 49 6e 74 65 72 66 61 63 65 2e 53 65 74 44 79 6e  Interface.SetDyn
0500: 61 6d 69 63 44 4e 53 52 65 67 69 73 74 72 61 74  amicDNSRegistrat
0510: 69 6f 6e 28 24 72 65 67 69 73 74 65 72 44 6e 73  ion($registerDns
0520: 29 0d 0a 09 09 0d 0a 7d 0d 0a                    )......}..