powershells实现一键自动修改计算机名且同时加入域控

脚本内容说明

1、实现在修改计算机名的同时,自动加入域控

2、修改计算机名可以采用自动获取电脑序列号的形式或者是手动输入的形式,按需选择

3、注意脚本运行后命令执行提示没有权限问题

4、注意运行脚本本身需要管理员权限问题

5、以上内容下文均有解决方案

add_domain.ps1 脚本如下:

#获取权限Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser ///默认Restricted
#访问 .NET Framework
#PowerShell会在启动下一个命令之前等待| Out-Null

[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') | Out-Null

# 输入计算机名称并进行计算机名称设置//也可以设置成自动获取当前序列号命名为计算机名

$newcomputer=[Microsoft.VisualBasic.Interaction]::InputBox("Please enter a computer name. `nFor example`nGHT-20210616(日期)+01(序号)", "Computer Name", "$env:computername")

#定义当前计算机名
$oldcomputer=Get-WMIObject  Win32_ComputerSystem    
$Cname = $oldcomputer.name

#Rename-Computer -NewName $computer | Out-Null
#删除fibocom账户
net user fibocom /del
#定义域控相关信息
$domain = "xxx.com"
$password = "xxxxx" | ConvertTo-SecureString -asPlainText -Force
$username = "xxx.com\xxxxxx"
$ADUser="xxx.com\xxx股份有限公司"

$credential = New-Object System.Management.Automation.PSCredential($username,$password)
Add-Computer -ComputerName $Cname -DomainName $domain -NewName $newcomputer -Credential $credential
#Add-Computer  -DomainName $domain -Credential $credential
Add-LocalGroupMember -Group "Administrators" -Member $ADUser
cmd /c "pause"
##Restart-Computer -Force
#是否加上一条删除本地脚本命令就不用手动删除了
#remove-item $MyInvocation.MyCommand.Path -force

因为可能涉及到需要用管理员权限运行powershell 脚本,

所以我们可以新增一个提权的操作去调用 ,

run.ps1脚本如下:


#获取权限Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser ///默认Restricted
Set-ExecutionPolicy remotesigned -Scope CurrentUser
#取到文件本身
$x = $MyInvocation.MyCommand.Definition
#取到父路径
$a = Split-Path -Parent $MyInvocation.MyCommand.Definition
#调用命令 管理员身份运行powershell
powershell -noprofile -command "&{ start-process powershell -ArgumentList '-noprofile -file $a\add_domain.ps1 ' -verb RunAs}"
cmd /c "pause"

你可能感兴趣的:(microsoft,运维,网络,服务器,windows)