У меня есть установка контроллера домена для тестирования с одной рабочей станцией Windows 10, присоединенной к домену.
Допустим, я хочу удалить текущий DC и развернуть новый с тем же IP, но с другим доменным именем.
Используя сценарий PowerShell, Remove-Computer будет успешным только в том случае, если контроллер домена выключен или действует правило брандмауэра, блокирующее обмен данными с DC.
Как я могу автоматизировать и успешно отсоединить рабочую станцию с помощью PowerShell без предварительного отключения питания контроллера домена или добавления правила брандмауэра?
Вот сценарий, который я использую, чтобы покинуть домен (если он уже присоединился к нему), а затем присоединиться к новому домену.
Write-Host "Attempting to join this workstation to the domain..."
$password = ConvertTo-SecureString 'mypassword' -AsPlainText -Force
$credentials = New-Object System.Management.Automation.PSCredential ("HOMELAB\Administrator", $password)
$rule = Get-NetFirewallRule -DisplayName DOMAINCONTROLLER -ErrorAction SilentlyContinue
$isDomainMember = (Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain
if ($isDomainMember) {
Write-Host "Leaving domain..."
if($rule -eq $null) {
Write-Host "Adding firewall rule to block domain"
$addrule = New-NetFirewallRule -DisplayName DOMAINCONTROLLER -Direction Outbound –LocalPort Any -Protocol TCP -Action Block -RemoteAddress 192.168.239.144
}
$result = Remove-Computer -PassThru -Force -ErrorAction SilentlyContinue
}
if (Get-NetFirewallRule -DisplayName DOMAINCONTROLLER -ErrorAction SilentlyContinue) {
Write-Host "Removing firewall rule"
Remove-NetFirewallRule -DisplayName DOMAINCONTROLLER
}
$join = Add-Computer -DomainName homelab.local -Credential $credentials -PassThru -ErrorAction SilentlyContinue
if ($join.HasSucceeded) {
Write-Host -BackgroundColor Green -ForegroundColor Yellow "Success!"
} else {
Write-Host -BackgroundColor Red -ForegroundColor Yellow "Fail"
}
Спасибо!