Windows自动加入AD域

##########################################################
# Author: Tyrone Zuo                                     #
# Describe: Auto Join AD Control                         #
##########################################################



import subprocess
import time

domain = "xxx.com"  #域名字
ou_path = "CN=Computers,DC=xxx,DC=com"  # 根据自己AD属性修改
username = "username"
password = "password"

command = f"""
$username = "{username}"
$password = "{password}" | ConvertTo-SecureString -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($username, $password)
Add-Computer -DomainName "{domain}" -OUPath "{ou_path}" -Credential $credential  -Restart
"""

try:
    result = subprocess.run(
        ["powershell", "-Command", command],
        capture_output=True,
        text=True,
        check=True
    )
    print("STDOUT:", result.stdout)
    print("STDERR:", result.stderr)
except subprocess.CalledProcessError as e:
    print("Failed to join domain:", e.stderr)


time.sleep(5)    # 可以看清console输出

代码说明

1.账号和密码:

        将管理员账号和密码直接写入脚本中(username 和 password 变量)。

        注意:将密码硬编码在脚本中可能存在安全风险,建议在生产环境中使用更安全的方式(如从环境变量或加密文件中读取)。

2.PowerShell 命令:

        使用ConvertTo-SecureString 将明文密码转换为安全字符串。

        使用New-Object 创建 PSCredential 对象。

        调用Add-Computer 命令,并将 PSCredential 对象传递给 -Credential 参数。

        在Add-Computer 命令中添加 -Restart 参数,表示加域成功后自动重启电脑。

3.执行命令:    

        使用subprocess.run 执行 PowerShell 命令,并捕获输出和错误。

4.错误处理:

        使用try-except 捕获可能的异常,并打印错误信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值