运行环境:Windows Server 2012 R2

此powershell脚本为自动修改本机DNS并加入到域中

但有的时候会提示【本地计算机当前不是域的一部分。请重新执行脚本!】错误,如遇到该错误可按照提示重新执行脚本

若多次执行后还是报错,错误原因是脚本将本机加入到域中,但是域控中未出现本机所致

终级解决方案:退出域后手动加域,这种方式大概率在域控中能找到本机

# 自动修改本机DNS并加入到域中
# author:lttr <www.cnblogs.com/GoCircle>
# date:2019-08-09
# eg.
# C:\domain.ps1 -DNS "1.1.1.1","2.2.2.2" -Domain "test.com" -UserName "admin" -Password "123" [CmdletBinding()]
param
(
# DNS列表,可设置两个
[Parameter(Mandatory=$true,Position=0)][string[]]$DNS,
# 域名
[Parameter(Mandatory=$true,Position=1)][string]$Domain,
# 域账户
[Parameter(Mandatory=$true,Position=2)][string]$UserName,
# 域账户密码
[Parameter(Mandatory=$true,Position=3)][SecureString]$Password
) $wmi = Get-WmiObject win32_networkadapterconfiguration -filter "ipenabled = 'true'"
#设置DNS  
$wmi.SetDNSServerSearchOrder($DNS)>$null
# 验证DNS是否设置成功
if(($wmi.DNSServerSearchOrder | ForEach-Object{ $DNS -Match $_ }).Count -eq $DNS.Count){
write-host "DNS success"
#加入域
$pwd = $Password | ConvertTo-SecureString -asPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential("$Domain\$UserName",$pwd)
$server = (Get-WmiObject -Class Win32_ComputerSystem | Select-Object Name).Name
Add-Computer -ComputerName $server -DomainName $Domain -Credential $credential -PassThru -Verbose -ErrorAction SilentlyContinue -WarningAction silentlyContinue
Start-Sleep -Seconds 3 # 测试是否加入到域中
try{
if(Test-ComputerSecureChannel -Server "$server.$Domain"){
Reset-ComputerMachinePassword -Server $Domain -Credential $credential
write-host success!
pause
Restart-Computer -Force
}else{
Write-Warning "本地计算机当前不是域的一部分。请重新执行脚本!"
}
}catch{
Write-Warning "本地计算机当前不是域的一部分。请重新执行脚本!"
} }else{
Write-Warning "DNS设置失败,请重新执行脚本!"
}

使用PowerShell 修改DNS并加入域中的更多相关文章

  1. POWERSHELL将域中的计算机移动到指定OU

    POWERSHELL处理域中计算机的过程 由于集团公司规模较大,存在几个分公司并处在不同地理位置.采用域集中管理,各分公司都有自己的域控制器,分别负责各分公司的DNS解析,DHCP地址分配,及客户端登 ...

  2. .net 修改AD域中的密码

    1.通过vs 2013 新建一个web站点(不是空项目),这个会带一下模板, 2.然后新建一个页面UpdatePassWord.aspx aspx页面内容: <%@ Page Title=&qu ...

  3. win2008加入域控之尝试解析加入域中域控制器的dns名称失败解决办法

    记录下今天遇到以前没遇到的问题 加入域的时候提示“尝试解析加入域中控制器的DNS”名称失败 可能的原因: 如果确认dns没问题 dc正常访问,那可能就是因为域控制器无法向dns注册srv记录. SRV ...

  4. 域账号修改后,导致vs中的git连接失败

    域账号修改后,导致vs中的git连接失败, fatal: Authentication failed for https://blog.csdn.net/qq_34665539/article/det ...

  5. windows server 2008 R2域中的DC部署 分类: AD域 Windows服务 2015-06-06 21:09 68人阅读 评论(0) 收藏

    整个晚上脑子都有点呆滞,想起申请注册好的博客还从来都不曾打理,上来添添生机.从哪里讲起呢,去年有那么一段时间整个人就陷在域里拔不出来,于是整理了一些文档,害怕自己糊里糊涂的脑子将这些东西会在一觉醒来全 ...

  6. Linux 如何查看修改DNS配置

    DNS服务器介绍 DNS是计算机域名系统(Domain Name System 或Domain Name Service) 的缩写,它是由域名解析器和域名服务器组成的.域名服务器是指保存有该网络中所有 ...

  7. centos 修改DNS,网关,IP地址

    1.CentOS 修改DNS 修改对应网卡的DNS的配置文件 # vi /etc/resolv.conf  修改以下内容 nameserver 8.8.8.8 #google域名服务器 nameser ...

  8. CentOS 设置网络(修改IP&修改网关&修改DNS)--update.14.08.15

    自己电脑上装的虚拟机用桥接方式连接物理机,虚拟机重启后ip会发生变化,非常阻碍Xshell的连接和hosts指定的dns. 通过修改IP为static模式,保持IP不变. ============== ...

  9. CentOS 修改DNS,固定IP等操作(网络)

    1.修改DNS 修改对应网卡的DNS的配置文件 vi /etc/resolv.conf 内容格式(西工大) nameserver 114.114.114.114 nameserver 202.117. ...

随机推荐

  1. MFC 下拉框Combo Box

    下拉框常用的事件是Change事件.属性常用:Data(英文;分隔),Sort(是否排序) // OnInitDialog()中 m_cbx.SetCurSel();//设置默认选项 //OnBnCl ...

  2. Vivado与Modelsim联合仿真

    [转载]: 1:https://blog.csdn.net/weixin_37603007/article/details/82823965 2:https://blog.csdn.net/Piece ...

  3. js上传文件夹

    用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个php文件夹上传下载的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助.此控件PC全平台支持包括mac,li ...

  4. 一个参数既可以是const还可以是volatile

    可以的,例如只读的状态寄存器.它是volatile因为它可能被意想不到地改变.它是const因为程序不应该试图去修改它. 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器 ...

  5. 51 Nod 1191消灭兔子

    1191 消灭兔子 1 秒 131,072 KB 40 分 4 级题 有N只兔子,每只有一个血量B[i],需要用箭杀死免子.有M种不同类型的箭可以选择,每种箭对兔子的伤害值分别为D[i],价格为P[i ...

  6. Noip2016 提高组 Day2 T1 组合数问题

    题目描述 组合数表示的是从n个物品中选出m个物品的方案数.举个例子,从(1,2,3) 三个物品中选择两个物品可以有(1,2),(1,3),(2,3)这三种选择方法.根据组合数的定 义,我们可以给出计算 ...

  7. Linux之GDB命令(二)

    gdb命令: 前提条件:可执行文件必须包含调试信息 gcc -g gdb 文件名 –启动gdb调试 查看代码命令   当前文件:     list 行号(函数名)   指定文件:     list 文 ...

  8. jQuery的入口函数

    原生的JS的入口函数指的是:window.onload = function(){}: 如下所示: //原生js的入口函数.页面上所有内容加载完毕, 才执行.//不仅要等文本加载完毕, 而且要等图片也 ...

  9. 【java设计模式】-03抽象工厂模式

    抽象工厂 简述 抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类.在抽象工厂模式中,接口是负责创建一个相关对象的工厂 ...

  10. Linux 常用命令安装

    系统版本: Centos-7-x86_64-minimal 1. 网络相关 1.1 MTR 跟踪路由,还可以测试丢包率.网络延迟 yum -y  install  mtr 2. 文件相关 2.1 sz ...