ZBLOG

# 设置脚本执行策略以跳过当前进程的执行策略限制 Set-ExecutionPolicy Bypass -Scope Process -Force # 定义变量 $StaticIP = "192.168.1.100" # 静态 IP 地址 $SubnetMask = "255.255.255.0" # 子网掩码 $Gateway = "192.168.1.1" # 网关 $DNS = "192.168.1.2&qu

设置脚本执行策略以跳过当前进程的执行策略限制

Set-ExecutionPolicy Bypass -Scope Process -Force

定义变量

\(StaticIP = "192.168.1.100" # 静态 IP 地址 \)SubnetMask = “255.255.255.0” # 子网掩码 \(Gateway = "192.168.1.1" # 网关 \)DNS = “192.168.1.2” # DNS 服务器 \(NewComputerName = "NewPCName" # 新计算机名 \)DomainName = “yourdomain.com” # 域名 \(DomainUser = "yourdomainuser" # 域用户 \)DomainPassword = ConvertTo-SecureString “yourdomainpassword” -AsPlainText -Force # 域密码(创建安全字符串) \(AutoLogonUser = "yourautologonuser" # 自动登录用户名 \)AutoLogonPassword = ConvertTo-SecureString “yourautologonpassword” -AsPlainText -Force # 自动登录密码(创建安全字符串)

封装网络设置为一个函数

function Set-NetworkSettings {

try {
    # 获取网络适配器,选择状态为“Up”的在线网络适配器,如果没有则抛出异常。
    $Adapter = Get-NetAdapter | Where-Object { $_.Status -eq 'Up' }
    if (-not $Adapter) {
        throw "无法找到状态为“Up”的网络适配器。"
    }

    # 配置静态 IP、子网掩码和默认网关
    New-NetIPAddress -InterfaceIndex $Adapter.ifIndex -IPAddress $StaticIP -PrefixLength $SubnetMask.Length -DefaultGateway $Gateway

    # 配置 DNS 服务器地址
    Set-DnsClientServerAddress -InterfaceIndex $Adapter.ifIndex -ServerAddresses $DNS

    # 修改计算机名
    Rename-Computer -NewName $NewComputerName -Force
} catch {
    Write-Error "设置 IP、DNS 或计算机名时出错:$_"
    exit 1
}

}

封装自动登录设置为一个函数

function Set-AutoLogon {

try {
    # 创建 PSCredential 对象,用于配置自动登录。
    $AutoLogonCred = New-Object System.Management.Automation.PSCredential($AutoLogonUser, $AutoLogonPassword)

    # 配置自动登录,并强制重启计算机。
    $RegPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
    Set-ItemProperty -Path $RegPath -Name "AutoAdminLogon" -Value "1"
    Set-ItemProperty -Path $RegPath -Name "DefaultUserName" -Value $AutoLogonUser
    Set-ItemProperty -Path $RegPath -Name "DefaultPassword" -Value $AutoLogonPassword
    Restart-Computer -Force
} catch {
    Write-Error "设置自动登录或重启计算机时出错:$_"
    exit 1
}

}

封装加入域操作为一个函数

function Join-Domain {

try {
     # 创建 PSCredential 对象,用于将计算机添加到域。
     # 如果用户名和密码包含特殊字符,可以使用 ConvertTo-SecureString 命令创建安全字符串。
    $DomainCred = New-Object System.Management.Automation.PSCredential($DomainUser, $DomainPassword)

    # 将计算机加入域,并强制重启计算机。
    Add-Computer -DomainName $DomainName -Credential $DomainCred -Restart -Force
} catch {
    Write-Error "将计算机加入域时出错:$_"
    exit 1
}

}

执行网络设置

Set-NetworkSettings

执行自动登录设置

Set-AutoLogon

执行加入域操作

Join-Domain

注释:

  1. 设置脚本执行策略以跳过当前进程的执行策略限制。
  2. 定义需要用到的变量。
  3. 封装网络设置为一个函数,该函数会获取状态为“Up”的在线网络适配器,并配置静态 IP、子网掩码和默认网关,然后配置 DNS 服务器地址并修改计算机名。如果出现异常,则会输出错误信息并退出脚本。
  4. 封装自动登录设置为一个函数,该函数会创建 PSCredential 对象,并使用该对象配置自动登录。然后强制重启计算机。如果出现异常,则会输出错误信息并退出脚本。
  5. 封装加入域操作为一个函数,该函数会创建 PSCredential 对象,并使用该对象将计算机添加到域。然后强制重启计算机。如果出现异常,则会输出错误信息并退出脚本。
  6. 执行网络设置、自动登录设置和加入域操作。
  7. 在每句代码前添加注释,以便其他人可以更容易地理解代码。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=1047

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?