首页 > 其他分享 >rustdesk域控灵活使用

rustdesk域控灵活使用

时间:2024-05-22 22:18:42浏览次数:34  
标签:exe rustdesk 灵活 -- 配置 域控 安装 RustDesk

简介:

rustdesk是一个非常好用的可以私域部署的远程协助软件,俗称远程桌面。好处就太多了。

我的环境为了安全,全面封禁3389端口,封禁135,136,137,138,443。好在没要求服务器封禁,否则我的域控,MDT,都不能用了。

环境又复杂,管理范围跨郑州,开封,虽说不远,还有开封灌汤包、驴肉汤、鲤鱼焙面…………

我还是懒的跑。

为了更快捷,简单的处理一些小故障,就需要一个远程协助系统,且最好能处理windows UAC问题。

经不断摸索,终于找到了在域环境下灵活使用rustdesk的方法。

服务器安装:

WINDOWS & PM2 或者 NSSM :: RustDesk文档

Synology DSM 7.2 :: RustDesk文檔(DOCKER)

rustdesk/rustdesk-server: RustDesk Server Program (github.com) (S6版叠加单服务)

我使用了S6单服务版本。有一个问题是掉电重启后,服务异常,需要手动down up 一下。

注意修改一下RELAY地址为你服务器的IP地址或域名,端口21117不要改。

version: '3'

services:
  rustdesk-server:
    container_name: rustdesk-server
    ports:
      - 21115:21115
      - 21116:21116
      - 21116:21116/udp
      - 21117:21117
      - 21118:21118
      - 21119:21119
    image: rustdesk/rustdesk-server-s6:latest
    environment:
      - "RELAY=rustdesk.example.com:21117"
      - "ENCRYPTED_ONLY=1"
    volumes:
      - ./data:/data
    restart: unless-stopped

docker compose 启动后,到data目录下,找一个pub文件,里面将是连接密钥。

简单客户端

下载对应版本的客户端,然后配置服务器地址,密钥就可以了。

点击三个竖点,

 再找到网络

 设置ID服务器地址,和key,就可以了。

首页显示就绪,就是配置好了。

 控制端和被控端是一样的。双方都就绪后,就可以通过输入对方的ID,来远程协助了。

中级安装

每次这么干是不是有点麻烦?

官方支持将配置放入 rustdesk.exe 文件名中 (仅支持 Windows)

将 rustdesk.exe 更改为 rustdesk-host=<主机 IP 或名称>,key=<公钥字符串>.exe,例如 rustdesk-host=192.168.1.137,key=xfdsfsd32=32.exe。 

 好了,这样就可以免配置了。直接运行就可以了,程序自动从文件名中读取配置。

高级安装

Client Deployment :: Documentation for RustDesk

这都不叫install了,叫deployment,部署。

这就开始域控了。

准备

先随便配置一个能用的客户端,去网络配置。箭头指的左边是导入,右边是导出。

 导出的信息是编码的,大概这样

9JSPjtCNChWQxkHb182MTJ0UvF2cQhDWlBXcqNlT0pGUQNXNBRlaOlVY1hFU4IiOikXZrJCLiIiOikGchJCL23455kXYsVmciwiIyIjLy4CO2EjLykTMiojI0N3boJye

删空配置,你可以再导入测试一下。

官网的powershell脚本,bat脚本,就随你喜欢来挑了。

放到计算机启动脚本即可。计算机启动脚本默认应该是管理员权限。

随手改一下脚本吧,GitHub不好访问啊。

powershell脚本

$ErrorActionPreference= 'silentlycontinue'

# Assign the value random password to the password variable
$rustdesk_pw=(-join ((65..90) + (97..122) | Get-Random -Count 12 | % {[char]$_}))

# 这里粘贴你导出的配置
$rustdesk_cfg="configstrinsdfasdfasdasdfasdfawefwaefawefaefaswefawefawefaefawefawefaewfasdfasdfasdfawefawefafdg"

################################### Please Do Not Edit Below This Line #########################################

# Run as administrator and stays in the current directory
if (-Not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))
{
    if ([int](Get-CimInstance -Class Win32_OperatingSystem | Select-Object -ExpandProperty BuildNumber) -ge 6000)
    {
        Start-Process PowerShell -Verb RunAs -ArgumentList "-NoProfile -ExecutionPolicy Bypass -Command `"cd '$pwd'; & '$PSCommandPath';`"";
        Exit;
    }
}

# This function will return the latest version and download link as an object
function getLatest()
{# 这里写你方便的下载地址,
    $Downloadlink = "http://192.168.1.1/rustdesk-1.2.4-x86_64.exe"    # 这里写对应的版本号,为了启动脚本判断更新。
    $Version = "1.2.4"# Create object to return
    $params += @{Version = $Version}
    $params += @{Downloadlink = $Downloadlink}
    $Result = New-Object PSObject -Property $params
    
    return($Result)
}

$RustDeskOnGitHub = getLatest

#从注册表获取已安装的版本号
$rdver = ((Get-ItemProperty  "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\RustDesk\").Version)

if ($rdver -eq $RustDeskOnGitHub.Version)
{
    Write-Output "RustDesk $rdver is the newest version."
    Exit
}

if (!(Test-Path C:\Temp))
{
    New-Item -ItemType Directory -Force -Path C:\Temp > null
}

cd C:\Temp

Invoke-WebRequest $RustDeskOnGitHub.Downloadlink -Outfile "rustdesk.exe"
Start-Process .\rustdesk.exe --silent-install
Start-Sleep -seconds 20

$ServiceName = 'Rustdesk'
$arrService = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue

if ($arrService -eq $null)
{
    Write-Output "Installing service"
    cd $env:ProgramFiles\RustDesk
    Start-Process .\rustdesk.exe --install-service
    Start-Sleep -seconds 20
}

while ($arrService.Status -ne 'Running')
{
    Start-Service $ServiceName
    Start-Sleep -seconds 5
    $arrService.Refresh()
}

cd $env:ProgramFiles\RustDesk\
.\rustdesk.exe --get-id | Write-Output -OutVariable rustdesk_id

.\rustdesk.exe --config $rustdesk_cfg

.\rustdesk.exe --password $rustdesk_pw

Write-Output "..............................................."
# Show the value of the ID Variable
Write-Output "RustDesk ID: $rustdesk_id"

# Show the value of the Password Variable
Write-Output "Password: $rustdesk_pw"
Write-Output "..............................................."

bat脚本

@echo off

REM Assign the value random password to the password variable
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
set alfanum=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
set rustdesk_pw=
for /L %%b in (1, 1, 12) do (
    set /A rnd_num=!RANDOM! %% 62
    for %%c in (!rnd_num!) do (
        set rustdesk_pw=!rustdesk_pw!!alfanum:~%%c,1!
    )
)

REM Get your config string from your Web portal and Fill Below
rem 这里是你复制出来的配置字符串 set rustdesk_cfg="configstring" REM ############################### Please Do Not Edit Below This Line ######################################### if not exist C:\Temp\ md C:\Temp\ cd C:\Temp\ rem 这里改你方便的下载连接 curl -L "https://github.com/rustdesk/rustdesk/releases/download/1.2.3/rustdesk-1.2.3-x86_64.exe" -o rustdesk.exe rustdesk.exe --silent-install timeout /t 20 cd "C:\Program Files\RustDesk\" rustdesk.exe --install-service timeout /t 20 for /f "delims=" %%i in ('rustdesk.exe --get-id ^| more') do set rustdesk_id=%%i rustdesk.exe --config %rustdesk_cfg% rustdesk.exe --password %rustdesk_pw% echo ............................................... REM Show the value of the ID Variable echo RustDesk ID: %rustdesk_id% REM Show the value of the Password Variable echo Password: %rustdesk_pw% echo ...............................................

使用启动脚本安装,已经够方便了。

我也把一些关键代码改了改,更适合国内使用。并做了中文注释。

定制安装

其实我并不想所有的终端都安装远程桌面,终端用户的无知是无下限的,多个图标都跟你嚷嚷半天。

那么如何定制安装,是我历经多天的寻找和实验得出的结论。

其实定制安装的核心在两点:

一:--silent-install。

二:编码配置到文件名。

简单安装和中级安装,都不算安装,rustdesk将安装到用户目录,且防火墙我也一直无法调试为自动允许。

--silent-install,才是真正的安装,安装到C:\Program Files目录去,且自动配置防火墙,当然这就需要管理员权限才可以安装成功。

编码配置到文件名,则是因为将配置编译到执行文件,更麻烦,虽然官方给了github actions编译,但是也要等待一小时左右。还是改文件名方便。

测试

硬编码配置到文件名

 使用--silent-install 参数进行安装

 输入管理员账号密码。

 安装完成后,测试能否被控,主控我们管理员随时手动开防护墙,测不测都行的。

套皮RunAsSpc

 将runasspc解压后,只需要x64目录下这两个文件。

打开runasspcadmin.

Path,直接写改好的文件名,

选Domain,域用户,一般域名自动填好,用户名密码填好,Optional,填入--silent-install参数。

最后Save CryPtfile,保存配置证书?管他啥名字呢。

 将这几个文件随便复制到某个新机器,就可以执行RunAsSpc测试了。

高级自定义

其实只需要3个文件,原始安装文件、RunAsSpc、crypt。

这样还是不够方便,一次下载三个?解压了用户也不知道是要执行RunAsSpc呀。

winrar自解压,自运行。虽说用了段时间bandzip,7zip,还是rar的图标让终端用户熟悉啊。

当然你自定义图标也行。

一:添加3个文件到rar,并选择自解压

 二:高级标签,自解压选项

 三:设置标签-解压后运行RunAsSpc

四:模式标签--解压到临时文件夹

五:确定生成自解压自执行程序

 好了,再找台机测试把。

后记

简单总结集中安装方式的重要区别

 
 
  防火墙 UAC管理员
简单安装 需配置 不支持
中级安装 需配置 不支持
高级安装 自动配置 支持
自定义安装 自动配置 支持

标签:exe,rustdesk,灵活,--,配置,域控,安装,RustDesk
From: https://www.cnblogs.com/jackadam/p/18207257

相关文章

  • Windows Active Directory(AD)域控制器(Domain Controller, DC)在企业IT管理中扮演着至关
    WindowsActiveDirectory(AD)域控制器(DomainController,DC)在企业IT管理中扮演着至关重要的角色,其优势、好处和作用体现在以下几个方面:优势与好处:集中化管理:权限与资源管理集中化,便于统一配置和控制,减少了管理的复杂度和成本。简化用户和计算机账户的创建、修改和删除......
  • 流水线 YAML 高级用法来了!大幅降低重复代码、灵活编排多任务
    作者:木烟在YAML化配置流水线时,你是否会遇到以下问题?单流水线中批量执行类似任务场景时,YAML中需要定义多个类似逻辑的Job,Job越多,流水线YAML配置的越长,YAML中的重复代码越多,代码复用性低,可读性差;管理员统一管理多流水线,多应用技术架构和研发流程类似,仅些许构建、部署参......
  • 流水线 YAML 高级用法来了!大幅降低重复代码、灵活编排多任务
    作者:木烟在YAML化配置流水线时,你是否会遇到以下问题?单流水线中批量执行类似任务场景时,YAML中需要定义多个类似逻辑的Job,Job越多,流水线YAML配置的越长,YAML中的重复代码越多,代码复用性低,可读性差;管理员统一管理多流水线,多应用技术架构和研发流程类似,仅些许构建、部署参......
  • FlexibleButton - 一个小巧灵活的C语言按键处理库+SerialChart - 能将串口数据实时绘
    1、FlexibleButton-一个小巧灵活的C语言按键处理库FlexibleButton是一个基于标准C语言的小巧灵活的按键处理库,支持单击、连击、短按、长按、自动消抖,可以自由设置组合按键,可用于中断和低功耗场景。项目主页:https://github.com/murphyzhao/FlexibleButton该按键库解耦了......
  • RustDesk 自建服务器部署和使用教程
    RustDesk是一个强大的开源远程桌面软件,是中国开发者的作品,它使用Rust编程语言构建,提供安全、高效、跨平台的远程访问体验。可以说是目前全球最火的开源远程桌面软件了,GitHub星星数量达到了惊人的64k!与TeamViewer、ToDesk等专有远程访问解决方案相比,RustDesk作为一个开源......
  • JuiceFS v1.2-beta1,Gateway 升级,多用户场景权限管理更灵活
    JuiceFSv1.2-beta1今天正式发布。在这个版本中,除了进行了大量使用体验优化和bug修复外,新增三个特性:Gateway功能扩展:新增了“身份和访问管理(IdentityandAccessManagement,IAM)”与“事件通知”,为用户提供更安全、灵活和自动化的数据管理和监控能力,适用于多用户环境和复......
  • WPF多语言支持:简单灵活的动态切换,让你的程序支持多国语言
     概述:本示例演示了在WPF应用程序中实现多语言支持的详细步骤。通过资源字典和数据绑定,以及使用语言管理器类,应用程序能够在运行时动态切换语言。这种方法使得多语言支持更加灵活,便于维护,同时提供清晰的代码结构。在WPF中实现多语言的一种常见方法是使用资源字典和数据绑定。......
  • C++ 多级继承与多重继承:代码组织与灵活性的平衡
    C++多级继承多级继承是一种面向对象编程(OOP)特性,允许一个类从多个基类继承属性和方法。它使代码更易于组织和维护,并促进代码重用。多级继承的语法在C++中,使用:符号来指定继承关系。多级继承的语法如下:classDerivedClass:publicBaseClass1,publicBaseClass2,...{......
  • 通过STS来对AWS资源进行更灵活的权限控制
    一、前言背景:一个S3 bucket,存储用户的文件,每个用户只允许上传、下载自己目录下的文件。如何让Policy更灵活、更动态,可以让获取到的权限凭证可以匹配到单个终端用户的S3文件目录下。本节主要介绍,以编程方式调用 AWSSecurityTokenService(AWSSTS)的API,获取访问AWS资源的......
  • 打造灵活可配置的凉鞋ERP以适应不同业务需求
      为了满足客户需求和提高客户满意度,企业需要有一套高效、准确的订单管理系统。顺通订单助手正是这样一款能够满足企业需求的订单管理工具,本文将深入探讨顺通订单助手的各项功能及如何提升客户满意度。顺通订单助手的最大优势在于其高效的处理能力。这种高效的处理能力减少了......