Upload files to "Microsoft"
This commit is contained in:
parent
0c5fc55594
commit
c020dcd77c
97
Microsoft/Migrate-DHCP.ps1
Normal file
97
Microsoft/Migrate-DHCP.ps1
Normal file
|
|
@ -0,0 +1,97 @@
|
||||||
|
<#
|
||||||
|
.Synopsis
|
||||||
|
Script to Automated DHCP Migration
|
||||||
|
.DESCRIPTION
|
||||||
|
Takes DHCP Configuration from Source server and converts to Destination (local server) configuration.
|
||||||
|
.EXAMPLE
|
||||||
|
.\migrate-dhcp.ps1 -source sbs2011server
|
||||||
|
.EXAMPLE
|
||||||
|
.\migrate-dhcp.ps1 -source sbs2011server -detailed
|
||||||
|
#>
|
||||||
|
param(
|
||||||
|
[Parameter(Mandatory=$True,Position=0)]
|
||||||
|
[string]$source,
|
||||||
|
[switch]$detailed
|
||||||
|
)
|
||||||
|
$destination = $env:Computername
|
||||||
|
$sourceIp = [System.Net.Dns]::GetHostAddresses($source)
|
||||||
|
$sourceIP = $sourceIP.IPAddressToString
|
||||||
|
$currentIP = get-netIPConfiguration
|
||||||
|
$destIntAlias = $currentIP.InterfaceAlias
|
||||||
|
$destIP = $currentIP.IPv4Address.IPAddress.ToString()
|
||||||
|
$destIPv6 = $currentIP.ipv6linklocaladdress.ipAddress
|
||||||
|
Write-Output "DHCP Migration "
|
||||||
|
Write-Output "Source : $source"
|
||||||
|
Write-Output "Source IP : $sourceIP"
|
||||||
|
Write-Output "Destination : $destination"
|
||||||
|
Write-Output "Destination IP : $destIP"
|
||||||
|
Write-Output "Destination IPv6 : $destIPv6"
|
||||||
|
Write-Output "Reading DHCP Configuration.. Please Wait"
|
||||||
|
$dhcpConfig = netsh dhcp server "\\$source" dump
|
||||||
|
if(($dhcpConfig) -like "Unable*")
|
||||||
|
{
|
||||||
|
Write-Output "Error Collecting DHCP Configuration : $source"
|
||||||
|
Write-Output "Check DHCP Service is Running on Source Server!"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Write-Output "Processing DHCP Configuration.. Please Wait"
|
||||||
|
foreach ($line in $dhcpConfig)
|
||||||
|
{
|
||||||
|
|
||||||
|
if(($line) -like "dhcp*")
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if($line.Contains($source))
|
||||||
|
{
|
||||||
|
$line = $line.Replace("$source","$destination")
|
||||||
|
}
|
||||||
|
if($line.Contains($sourceIp))
|
||||||
|
{
|
||||||
|
if($line.Contains("Add iprange") -or ($line.Contains("optionvalue 3") -or ($line.Contains("add excluderange"))))
|
||||||
|
{
|
||||||
|
# Skip Line Changes
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$line = $line.Replace("$sourceIP","$destIP")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if($line.Contains("23 IPV6ADDRESS"))
|
||||||
|
{
|
||||||
|
$line = $line.Split("""")
|
||||||
|
$sourcev6 = $line[1]
|
||||||
|
$line = $line.Replace("$sourcev6","$destIPv6")
|
||||||
|
$line = $line.Replace("%3","")
|
||||||
|
}
|
||||||
|
if($line.Contains("Local Area Connection"))
|
||||||
|
{
|
||||||
|
$line = $line.Replace("Local Area Connection","$destIntAlias")
|
||||||
|
}
|
||||||
|
$command = "netsh $line"
|
||||||
|
if($detailed)
|
||||||
|
{
|
||||||
|
Write-Output $command
|
||||||
|
}
|
||||||
|
cmd /c $command | Out-Null
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
$errorMessage = $_.exception.message
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Add-DhcpServerInDC -DnsName $destination -IPAddress $destIP
|
||||||
|
Set-DhcpServerv4DnsSetting -ComputerName $destination -DynamicUpdates Always -DeleteDnsRROnLeaseExpiry $true
|
||||||
|
$username = "$env:UserDomain\$env:userName"
|
||||||
|
$pwd = Read-Host -AsSecureString -Prompt "Enter Password for $username for DHCP/DNS Update"
|
||||||
|
$cred = New-Object System.Management.Automation.PSCredential($username,$pwd)
|
||||||
|
Set-DHCPServerDNSCredential $cred
|
||||||
|
Set-DHCPServerSetting -ConflictDetectionAttempts 2
|
||||||
|
Write-Output "Disable DHCP Service on : $source"
|
||||||
|
Write-Output "Stop DHCP Service on : $source"
|
||||||
|
Get-Service -ComputerName $source -ServiceName dhcpserver | Set-Service -StartupType Disabled
|
||||||
|
Get-Service -ComputerName $source -ServiceName dhcpserver | Stop-Service -Force
|
||||||
|
Write-Output "DHCP Configuration Complete"
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue