Hosts file - add a record

We’ve seen how to read the Hosts file – this is how we add a record

function add-hostfilecontent {            
 [CmdletBinding(SupportsShouldProcess=$true)]            
 param (            
  [parameter(Mandatory=$true)]            
  [ValidatePattern("\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b")]            
  [string]$IPAddress,            
              
  [parameter(Mandatory=$true)]            
  [string]$computer            
 )            
 $file = Join-Path -Path $($env:windir) -ChildPath "system32\drivers\etc\hosts"            
 if (-not (Test-Path -Path $file)){            
   Throw "Hosts file not found"            
 }            
 $data = Get-Content -Path $file             
 $data += "$IPAddress  $computer"            
 Set-Content -Value $data -Path $file -Force -Encoding ASCII             
}

 

Take an IP address and computer as parameters.  Test if the hosts file exists

Read the contents, add the new record and write back.

This ensures that the new record is actually on a new line all by itself

Published Mon, Oct 24 2011 21:07 by RichardSiddaway

Comments

# Hosts file – add an IPv6 address

This builds on adding an IPv4 address - msmvps.com/.../hosts

Tuesday, November 08, 2011 1:21 PM by Richard Siddaway's Blog

# Hosts file – add an IPv6 address

This builds on adding an IPv4 address - msmvps.com/.../hosts

Tuesday, November 08, 2011 1:46 PM by Richard Siddaway's Blog

Leave a Comment

(required) 
(required) 
(optional)
(required) 
If you can't read this number refresh your screen
Enter the numbers above: