首页 > 系统相关 >PowerShell脚本,可以用于自动加入或退出域:BAT批处理脚本,可以用于自动加入或退出域:

PowerShell脚本,可以用于自动加入或退出域:BAT批处理脚本,可以用于自动加入或退出域:

时间:2024-05-20 10:55:56浏览次数:28  
标签:脚本 username domain 加入 admin System 自动 password

PowerShell中创建网页版的自动加入或退出域脚本,您可以使用PowerShell Web Access(PWA)功能。PWA允许您在Web浏览器中通过安全的HTTPS连接远程运行PowerShell命令,并可与Windows身份验证一起使用。

以下是一个示例脚本,可用于创建PWA网页版的自动加入或退出域:

powershellCopy Code
# 安装PWA组件
Install-WindowsFeature -Name "WindowsPowerShellWebAccess" -IncludeManagementTools

# 配置PWA
Set-PswaAuthorizationRule -UserName "domain_admin_username" -ComputerName "*" -ConfigurationName "Default" -Enabled $true
Set-PswaAuthorizationRule -UserName "domain_user_username" -ComputerName "*" -ConfigurationName "Default" -Enabled $true
Set-PswaAuthorizationRule -UserName "local_admin_username" -ComputerName "*" -ConfigurationName "Default" -Enabled $true
Set-PswaAuthorizationRule -UserName "local_user_username" -ComputerName "*" -ConfigurationName "Default" -Enabled $true
Set-PswaAuthorizationRule -UserName "domain_admin_username" -ComputerName "localhost" -ConfigurationName "Default" -Enabled $true
Set-PswaAuthorizationRule -UserName "domain_user_username" -ComputerName "localhost" -ConfigurationName "Default" -Enabled $true
Set-PswaAuthorizationRule -UserName "local_admin_username" -ComputerName "localhost" -ConfigurationName "Default" -Enabled $true
Set-PswaAuthorizationRule -UserName "local_user_username" -ComputerName "localhost" -ConfigurationName "Default" -Enabled $true

# 重启IIS服务
Restart-Service -Name "W3SVC"

# 创建PWA网页
$Html = @"
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>域操作</title>
</head>
<body>
    <h1>域操作</h1>
    <p>请选择要执行的操作:</p>
    <button onclick="JoinDomain()">加入域</button>
    <button onclick="LeaveDomain()">退出域</button>

    <script type="text/javascript">
        function JoinDomain() {
            var xhr = new XMLHttpRequest();
            xhr.open("POST", "/pswa/Default/Invoke", true);
            xhr.setRequestHeader("Content-type", "application/json");

            var command = {};
            command.Command = "Add-Computer -DomainName your_domain_name -Credential (New-Object System.Management.Automation.PSCredential('domain_admin_username', (ConvertTo-SecureString 'domain_admin_password' -AsPlainText -Force))) -Restart";
            command.UserName = "domain_admin_username";
            command.Password = "domain_admin_password";

            xhr.onreadystatechange = function() {
                if (xhr.readyState == 4 && xhr.status == 200) {
                    alert("加入域成功!请重新启动计算机。");
                }
            };

            xhr.send(JSON.stringify(command));
        }

        function LeaveDomain() {
            var xhr = new XMLHttpRequest();
            xhr.open("POST", "/pswa/Default/Invoke", true);
            xhr.setRequestHeader("Content-type", "application/json");

            var command = {};
            command.Command = "Remove-Computer -Credential (New-Object System.Management.Automation.PSCredential('domain_admin_username', (ConvertTo-SecureString 'domain_admin_password' -AsPlainText -Force))) -Force -Restart";
            command.UserName = "domain_admin_username";
            command.Password = "domain_admin_password";

            xhr.onreadystatechange = function() {
                if (xhr.readyState == 4 && xhr.status == 200) {
                    alert("退出域成功!请重新启动计算机。");
                }
            };

            xhr.send(JSON.stringify(command));
        }
    </script>
</body>
</html>
"@

# 将HTML写入文件
$Html | Out-File -FilePath "C:\inetpub\wwwroot\index.html" -Encoding UTF8

# 显示文件路径
Write-Host "请在浏览器中打开以下网址:"
Write-Host "https://localhost/index.html"

将上述脚本中的 "your_domain_name" 替换为实际的域名,"domain_admin_username" 和 "domain_admin_password" 替换为域管理员的用户名和密码。

运行上述脚本后,将会自动安装PWA组件并配置授权规则。然后将会在 "C:\inetpub\wwwroot" 目录下创建一个名为 "index.html" 的网页文件,并在控制台中显示该文件的访问URL。通过该URL即可在Web浏览器中访问该页面,并选择相应的操作以执行自动加入或退出域的任务。

请注意,在运行这个脚本之前,请确保已经安装了IIS,并谨慎操作,以免对系统造成意外影响。

使用PowerShell和Windows Forms创建简单界面的示例脚本,可用于自动加入或退出域:

powershellCopy Code
Add-Type -AssemblyName System.Windows.Forms

# 创建窗体
$Form = New-Object System.Windows.Forms.Form
$Form.Text = "域操作"
$Form.Size = New-Object System.Drawing.Size(300,200)
$Form.FormBorderStyle = "FixedDialog"
$Form.StartPosition = "CenterScreen"

# 创建标签
$Label = New-Object System.Windows.Forms.Label
$Label.Location = New-Object System.Drawing.Point(20,20)
$Label.Size = New-Object System.Drawing.Size(200,20)
$Label.Text = "请选择要执行的操作:"
$Form.Controls.Add($Label)

# 创建加入域按钮
$JoinButton = New-Object System.Windows.Forms.Button
$JoinButton.Location = New-Object System.Drawing.Point(20,50)
$JoinButton.Size = New-Object System.Drawing.Size(120,30)
$JoinButton.Text = "加入域"
$JoinButton.Add_Click({
    $domain = "your_domain_name"
    $username = "domain_admin_username"
    $password = "domain_admin_password"

    $securePassword = ConvertTo-SecureString -String $password -AsPlainText -Force
    $credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $securePassword

    Add-Computer -DomainName $domain -Credential $credential -Restart
})
$Form.Controls.Add($JoinButton)

# 创建退出域按钮
$LeaveButton = New-Object System.Windows.Forms.Button
$LeaveButton.Location = New-Object System.Drawing.Point(150,50)
$LeaveButton.Size = New-Object System.Drawing.Size(120,30)
$LeaveButton.Text = "退出域"
$LeaveButton.Add_Click({
    $username = "domain_admin_username"
    $password = "domain_admin_password"

    $securePassword = ConvertTo-SecureString -String $password -AsPlainText -Force
    $credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $securePassword

    Remove-Computer -Credential $credential -Force -Restart
})
$Form.Controls.Add($LeaveButton)

# 显示窗体
$Form.ShowDialog()

将上述脚本中的 "your_domain_name" 替换为实际的域名,"domain_admin_username" 和 "domain_admin_password" 替换为域管理员的用户名和密码。

运行上述脚本后,将显示一个具有两个按钮(加入域和退出域)的窗体。根据需要选择相应的操作,单击对应的按钮即可执行操作。

请注意,在运行这个脚本之前,请确保已经安装了PowerShell,并谨慎操作,以免对系统造成意外影响。

PowerShell脚本,可以用于自动加入或退出域:

自动加入域的脚本(auto_join_domain.ps1):

powershellCopy Code
$domain = "your_domain_name"
$username = "domain_admin_username"
$password = "domain_admin_password" | ConvertTo-SecureString -asPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($username,$password)

Write-Host "Joining the domain..."
Add-Computer -DomainName $domain -Credential $credential -Restart

将上述脚本中的 "your_domain_name" 替换为实际的域名,"domain_admin_username" 和 "domain_admin_password" 替换为域管理员的用户名和密码。

自动退出域的脚本(auto_leave_domain.ps1):

powershellCopy Code
$username = "domain_admin_username"
$password = "domain_admin_password" | ConvertTo-SecureString -asPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($username,$password)

Write-Host "Leaving the domain..."
Remove-Computer -Credential $credential -Force -Restart

将上述脚本中的 "domain_admin_username" 和 "domain_admin_password" 替换为域管理员的用户名和密码。

请注意,在运行这些脚本之前,请确保以管理员权限运行PowerShell脚本,并谨慎操作,以免对系统造成意外影响。

可以用于自动加入或退出域:

自动加入域的脚本(auto_join_domain.bat):

Copy Code
@echo off
set domain=your_domain_name
set username=domain_admin_username
set password=domain_admin_password

echo Joining the domain...
netdom join %computername% /domain:%domain% /userd:%username% /passwordd:%password%
if %errorlevel%==0 (
    echo Domain join successful.
    echo Rebooting the system...
    shutdown /r /t 0
) else (
    echo Domain join failed.
    pause
)

exit

将上述脚本中的 "your_domain_name" 替换为实际的域名,"domain_admin_username" 和 "domain_admin_password" 替换为域管理员的用户名和密码。

自动退出域的脚本(auto_leave_domain.bat):

Copy Code
@echo off
set username=domain_admin_username
set password=domain_admin_password

echo Leaving the domain...
netdom remove %computername% /domain /userd:%username% /passwordd:%password% /force
if %errorlevel%==0 (
    echo Domain leave successful.
    echo Rebooting the system...
    shutdown /r /t 0
) else (
    echo Domain leave failed.
    pause
)

exit

将上述脚本中的 "domain_admin_username" 和 "domain_admin_password" 替换为域管理员的用户名和密码。

请注意,在运行这些脚本之前,请确保以管理员权限运行批处理文件,并谨慎操作,以免对系统造成意外影响。

 

VBS脚本,可以用于自动加入或退出域:

自动加入域的脚本(auto_join_domain.vbs):

vbscriptCopy Code
Dim objNetwork, strDomain, strUsername, strPassword

strDomain = "your_domain_name"
strUsername = "domain_admin_username"
strPassword = "domain_admin_password"

Set objNetwork = CreateObject("WScript.Network")

WScript.Echo "Joining the domain..."
objNetwork.AddWindowsDomain strDomain, strUsername, strPassword

If Err.Number = 0 Then
    WScript.Echo "Domain join successful."
    WScript.Echo "Rebooting the system..."
    Set objShell = CreateObject("WScript.Shell")
    objShell.Run "shutdown /r /t 0", 0, True
Else
    WScript.Echo "Domain join failed."
    WScript.Quit 1
End If

将上述脚本中的 "your_domain_name" 替换为实际的域名,"domain_admin_username" 和 "domain_admin_password" 替换为域管理员的用户名和密码。

自动退出域的脚本(auto_leave_domain.vbs):

vbscriptCopy Code
Dim objNetwork, strUsername, strPassword

strUsername = "domain_admin_username"
strPassword = "domain_admin_password"

Set objNetwork = CreateObject("WScript.Network")

WScript.Echo "Leaving the domain..."
objNetwork.RemoveWindowsDomain strUsername, strPassword, 0

If Err.Number = 0 Then
    WScript.Echo "Domain leave successful."
    WScript.Echo "Rebooting the system..."
    Set objShell = CreateObject("WScript.Shell")
    objShell.Run "shutdown /r /t 0", 0, True
Else
    WScript.Echo "Domain leave failed."
    WScript.Quit 1
End If

将上述脚本中的 "domain_admin_username" 和 "domain_admin_password" 替换为域管理员的用户名和密码。

请注意,在运行这些脚本之前,请确保以管理员权限运行VBS脚本,并谨慎操作,以免对系统造成意外影响。

JavaScript(.js)通常用于在Web浏览器中编写脚本,而不是用于执行本地操作系统任务。因此,在JavaScript中直接加入或退出域可能会受到限制。但你可以使用Node.js来运行JavaScript脚本,并借助相应的模块来实现自动加入或退出域的功能。

以下是一个示例使用Node.js和node-powershell模块的JavaScript脚本,可以用于自动加入或退出域:

自动加入域的脚本(auto_join_domain.js):

javascriptCopy Code
const PowerShell = require('node-powershell');

const domain = 'your_domain_name';
const username = 'domain_admin_username';
const password = 'domain_admin_password';

const ps = new PowerShell();

ps.addCommand(`$password = ConvertTo-SecureString -String "${password}" -AsPlainText -Force;
    $credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "${username}", $password;
    Add-Computer -DomainName "${domain}" -Credential $credential -Restart`);

ps.invoke()
    .then(output => {
        console.log('Join domain successful.');
        console.log(output);
    })
    .catch(err => {
        console.error('Failed to join domain.');
        console.error(err);
    })
    .finally(() => {
        ps.dispose();
    });

将上述脚本中的 "your_domain_name" 替换为实际的域名,"domain_admin_username" 和 "domain_admin_password" 替换为域管理员的用户名和密码。

自动退出域的脚本(auto_leave_domain.js):

javascriptCopy Code
const PowerShell = require('node-powershell');

const username = 'domain_admin_username';
const password = 'domain_admin_password';

const ps = new PowerShell();

ps.addCommand(`$password = ConvertTo-SecureString -String "${password}" -AsPlainText -Force;
    $credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "${username}", $password;
    Remove-Computer -Credential $credential -Force -Restart`);

ps.invoke()
    .then(output => {
        console.log('Leave domain successful.');
        console.log(output);
    })
    .catch(err => {
        console.error('Failed to leave domain.');
        console.error(err);
    })
    .finally(() => {
        ps.dispose();
    });

将上述脚本中的 "domain_admin_username" 和 "domain_admin_password" 替换为域管理员的用户名和密码。

请注意,在运行这些脚本之前,请确保已经安装了Node.js和node-powershell模块,并谨慎操作,以免对系统造成意外影响。

标签:脚本,username,domain,加入,admin,System,自动,password
From: https://www.cnblogs.com/suv789/p/18201405

相关文章

  • 如何自动(定时/间隔/重复)执行 同步文件、备份打包加密压缩文件
    首先,需要用到的这个工具:度娘网盘提取码:qwu2蓝奏云提取码:2r1z 参考下列两个之前发布的教程结合使用即可:《快捷自由定时重启、注销、关机》《如何从多个文件夹内转移全部文件(忽略文件夹的结构)(进行复制)(再打包)》就是先设定好勾选对'来源路径’Zip打包,并且勾选备份模式备份......
  • 如何快速断行、分割行、切割行、换行、限制每行字数、平均分割每行字数、序号自动换行
    首先,需要用到的这个工具:度娘网盘提取码:qwu2蓝奏云提取码:2r1z 打开工具,切换到“文章工作域”(嗯...默认就是) 找到这个,多内容断行分割点击打开,出现如下窗口设置   相关的设置都在上面,涉及的功能有:限制每行字数、根据行数均等字数的换行、整理出指定关键内容起......
  • 油猴脚本编写
    1.注释的功能解析//==UserScript==//@nametestFileName文件名称//@namespacehttp://tampermonkey.net/命名空间大概是用于保证脚本的唯一性//@version2024-05-14//@descriptiontrytotakeovertheworld!//@authorYou//@match......
  • 文件拷贝脚本
    #include<FileConstants.au3>#include<Array.au3>Global$sourceFolder="G:\test_bak"Global$destinationFolder="G:\select"Global$listFilePath="G:\list.txt"Global$logFilePath="G:\search_log.tx......
  • Ansible自动化运维工具
    目录一、什么是Ansible1、简介2、架构3、工作流程二、部署Ansible批量管理1、涉及主机2、安装部署Ansible2.1、yum安装2.2、其他方式3、设置免密登录3.1、控制节点设置hosts解析3.2、生成密钥对3.3、将公钥发送给受管节点3.4、测试免密登录4、定义主机清单4.1、ansible常见的配置......
  • 夸克自动签到转存到emby
    夸克自动签到不同于之前的阿里盘内夸克签到脚本,这里可以自动转存管理文件,添加到emby中b站视频地址:https://www.bilibili.com/video/BV1ry411a7Lt一、准备你有服务器或者nas等等,有docker或者青龙都行。由于nas在家关机了,我在外地。就不演示推到emby了。来自于Cp0204/quark-aut......
  • Visual Studio 2015 编写 CUDA 关键字高亮并自动补全_cuda vs 波浪线
    CSDN搬家失败,手动导出markdown后再导入博客园第一步,是在vs2015里面设置vc++文件支持.cu;cuh;文件。方法:工具->选项->文本编辑器->文件扩展名。得到如图所示的界面:注意,在右侧可以添加vc++类型的文件扩展名,这是我的设置效果,操作就不用细说了。![[output/attachme......
  • [20240515]建立完善t2sh.sql脚本.txt
    [20240515]建立完善t2sh.sql脚本.txt--//建立一个简单输入简单文本计算sql_id,hash_values的sql脚本,主要用于简单sql语句以及对象的full_hash_value,sql_id,hash_value计算.--Copyright2023lfree.Allrightsreserved.--LicensedundertheApacheLicense,Version2.0.Se......
  • [20240516]建立任意进制转10进制脚本xto10.sql脚本.txt
    [20240516]建立任意进制转10进制脚本xto10.sql脚本.txt--//bashshell64进制编码从0开始.0-9,a-z,A-Z.这样仅仅62个编码.还剩下2个.@_--//这样完整的编码如下:$base64=$(echo{0..9}{a..z}{A..Z}@_)$echo$base640123456789abcdefghijklmnop......
  • [20240518]任意进制转换xtoy.sql脚本.txt
    [20240518]任意进制转换xtoy.sql脚本.txt--//前几天尝试改进10进制转任意进制,以及其他进制转10进制脚本,有了这两个脚本就可以通过10进制实现任意进制的转换.$cat10tox.sqlsettermoffcolumn2new_value2selectnull"2"fromdualwhere1=2;selectnvl('&2',16)"2"from......