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