首页 > 其他分享 >无域控的环境下实现仅允许指定电脑才能安装某款软件的方案

无域控的环境下实现仅允许指定电脑才能安装某款软件的方案

时间:2024-11-07 22:50:59浏览次数:7  
标签:脚本 某款 XXX 电脑 文件夹 shared 软件 安装 无域

背景

公司没有使用域控,也没有任何终端管理软件,购买了正版Xshell软件,要求实现仅允许提交过申请的电脑才能安装此软件

难点

因为没有使用域控,也没有任何终端管理软件,软件分发存在可复制性,难以管控

实现思路

1、内网要有一台设备提供服务,用于提供鉴别设备是否允许安装
2、软件不直接分发给用户,而是将脚本分发给用户,用户运行脚本后,将连接服务器判断当前设备是否允许安装,允许的情况下才下载安装包并安装

具体步骤

1、此处我以一台windows电脑做为服务器,创建了一个名为shared的普通用户。

这个用户仅仅只用于访问共享文件夹。为了安全考虑,在组策略中禁止了本地登录和远程登录访问的权限
在这里插入图片描述
在这里插入图片描述

2、我新建了一个名为shared的文件夹,并共享了出去,添加shared用户为只读权限

在这里插入图片描述

3、在共享文件夹中,放置安装包,许可文件,allowlist.csv文件。

目前Xshell的激活方式是把软件安装包和LocalServer.ini文件放在同一目录下,这样直接安装安装包之后就会自动激活软件。
在这里插入图片描述

allowlist.csv里面主要是记录计算机名信息,后面脚本会去遍历查询里面的信息,来判断到底允不允许去安装软件,你也可以使用.txt文件
在这里插入图片描述

4、编写脚本,注意脚本最开头要留2个空行,等下会有用。将脚本保存成.bat文件

脚本其实是AI帮忙写的,AI真的太好用了



@echo off
setlocal enabledelayedexpansion

:: 获取计算机名
set ComputerName=%COMPUTERNAME%
echo 计算机名: %ComputerName%

:: 指定服务器地址,此处请修改成你刚刚设置共享文件夹的服务器ip地址!!!
set ServerIP=192.168.XXX.XXX

:: 测试服务器连通情况
:: > nul 2>&1的作用是为了不让命令执行之后有显示
ping -n 1 %ServerIP% > nul 2>&1
if %errorlevel% neq 0 (
    echo 连接内网服务器失败,错误代码: %errorlevel%
    mshta "javascript:var sh=new ActiveXObject('WScript.Shell'); sh.Popup('连接内网服务器失败,请检查设备是否已连接研究院内网,如网络无异常请联系管理员!', 0, '警告', 48);window.close();"
    exit /b 1
) else (
    echo 成功连接到内网服务器
)

:: 指定共享文件夹的路径,此处请设置成你的服务器共享文件夹路径!!!
set SharePath=\\192.168.XXX.XXX\shared

:: 指定用户名和密码,此处请输入你刚刚创建的用户名和密码!!!
set UserName=shared
set Password=XXXXXXXXXXX

:: 连接到共享文件夹
net use %SharePath% /user:%UserName% %Password%  > nul 2>&1

:: 指定要搜索的文本文件路径!!!
set FilePath=\\192.168.XXX.XXX\shared\allowlist.csv

:: 指定要运行的软件路径
set AppPath=%temp%\Xshell-8.0.0060r.exe

:: 搜索计算机名,检查计算机名是否在共享文件夹的allowlist.csv里面
findstr /m "%ComputerName%" "%FilePath%"  > nul 2>&1
if %errorlevel%==0 (
    echo 在允许安装的设备列表中找到计算机名: %ComputerName%
    echo 正在下载软件安装包,请稍候。。。
    :: 如果找到计算机名,则将软件和激活许可下载到本地%temp%目录下面,并运行安装包
    copy /Y \\192.168.XXX.XXX\shared\Xshell-8.0.0060r.exe %temp%\Xshell-8.0.0060r.exe  > nul 2>&1
    copy /Y \\192.168.XXX.XXX\shared\LocalServer.ini %temp%\LocalServer.ini  > nul 2>&1
    start "" "%AppPath%"
) else (
    echo 未在允许安装的设备列表中找到计算机名: %ComputerName%
    :: 如果没有找到计算机名,则显示消息框
    mshta "javascript:var sh=new ActiveXObject('WScript.Shell'); sh.Popup('您的计算机未在允许安装的设备列表中,请联系管理员!', 0, '警告', 48);window.close();"
)

net use %SharePath% /delete > nul 2>&1

endlocal
exit /b

5、脚本加密。这个脚本肯定是不能就这样直接发给用户去用的,否则用户直接就能看到脚本的原理以及服务器的账号和密码,所以要加密一下。

下载minihex十六进制编辑器
在这里插入图片描述

6、使用minihex打开刚刚的.bat脚本文件,如果你刚刚有在脚本最开头留出2行空行,那么脚本开头就会是0D 0A 0D 0A。

在这里插入图片描述

7、将前两个字节改成FF FE

在这里插入图片描述

8、保存之后,再使用记事本打开.bat文件,就会显示乱码了。同时目录下会多出一个.bak,这个是修改前的自动备份

在这里插入图片描述

9、此时测试脚本效果,如果计算机名在allowlist.csv文件中搜不到的,就不会去下载和安装软件,只有在allowlist.csv中搜得到的才会去下载和安装

不允许安装界面:
在这里插入图片描述
允许安装界面:
在这里插入图片描述

10、测试通过后,就可以自行更新allowlist.csv文件,然后将脚本分发给用户让他们自行运行来下载安装软件。不过由于文件共享是内网的共享,所以要提醒用户在内网环境中运行脚本

后话

此案例是为了给大家一些启发,如果要实现不在内网环境也能鉴别权限并安装软件的话,你还可以修改脚本,使用ftp服务来替代共享文件夹并发布到公网,这样就能实现了。

如果觉得单单是靠计算机名来鉴别权限还不够的话,依然可以修改脚本,添加例如ip地址,网卡mac地址等鉴别方式,总之就是这套方案的自定义程度很高,且毫无成本。

关于脚本加密这块,之前也使用过将脚本转成exe文件的形式,还试过创建自解压压缩包的形式把安装包一起封装成一个自解压文件,但是在win11自带的安全中心中都很容易就会报毒,也有人说将vbs脚本转成exe文件,然后vbs调用bat的形式来做到免杀,但是过于麻烦就没有去研究了。目前使用minihex来实现加密的形式已经能满足我的公司需求了并且不会报毒(虽然破解这个有点简单)

标签:脚本,某款,XXX,电脑,文件夹,shared,软件,安装,无域
From: https://blog.csdn.net/Junson142099/article/details/143481030

相关文章

  • 教你使用win10实现电脑的定时任务执行
    制作定时任务:步骤一、按下win+s输入“任务计划程序”如下图: 提示:最好以管理员身份运行,避免任务无权限失败的情况。 步骤二、进入到任务计划程序界面 可以看到很多以往程序设置的任务计划信息。步骤三、新建一个任务文件夹,用来放入我们的自定义任务信息 这里我们取......
  • windows下电脑自定义磁盘图标,u盘图标,文件夹图标
    闲言更改图标要确定有ico(icon)格式图片文件,文件比例1:1,一般像素大小比例推荐128:128确保文件后缀有显示目录闲言寻找或制作ico图片直接下载网络图片制作ico文件在线制作本地制作ico磁盘/U盘图标更改文件夹图标更改寻找或制作ico图片直接下载网络图片这里推荐阿里巴巴......
  • 有道领世视频课程下载工具,如何在电脑端下载有道领世视频课程到本地?
    一.安装有道领世课程下载器1.获取学无止下载器https://www.xuewuzhi.cn/ydshengxue_downloader2.下载安装后,然后点击桌面快捷方式运行即可。注意:杀毒软件可能会阻止外部exe文件运行,并将其当做成病毒,直接添加信任即可,本软件绝对没有木马病毒。二.使用说明1.学无止下载器介......
  • 自己组装电脑怎么装系统 自己组装电脑安装系统步骤
    自己组装电脑怎么装系统?许多用户根据个人喜好选择电脑硬件自己组装电脑,组装的电脑通常没有系统,需要自己安装系统。现在的组装电脑基本采用最新型硬件,一般推荐安装win10系统,新硬件不支持旧系统。这边以安装win10为例,跟大家介绍组装电脑自己安装系统的方法。安装须知:1、如果是......
  • 中公网校视频课件课程下载工具,如何在电脑端下载中公网校视频课件资料到本地?
    一.安装中公网校课程下载器1.获取学无止下载器https://www.xuewuzhi.cn/eoffcn_downloader2.下载安装后,然后点击桌面快捷方式运行即可。注意:杀毒软件可能会阻止外部exe文件运行,并将其当做成病毒,直接添加信任即可,本软件绝对没有木马病毒。二.使用说明1.学无止下载器介绍......
  • 程序员推荐的笔记本,2024年六款高性能笔记本电脑推荐!非常适合计算机专业,做编程设计的程
    文|二加一网络科技对于计算机相关专业,尤其是学习编程或程序员来说,选择一款高性能的笔记本电脑至关重要,它不仅能够提供流畅稳定的编程环境,还能助力高效地完成各项工作。接下来,小编就来推荐六款2024年非常适合编程的高性能笔记本电脑,看看哪一款能够成为你的得力助手。第......
  • 在电脑上免费分区的 5 个有效磁盘分区软件工具
    磁盘分区可能是一个脆弱而复杂的过程,磁盘崩溃或用户设备受到病毒攻击的风险很高。因此,它们很难由用户单独或手动管理。本文详细介绍了可以帮助简化磁盘分区过程的不同软件工具、它们的功能和优点。那么让我们开始吧。什么是磁盘分区工具?磁盘分区或系统分区是任何操作系统最......
  • 如何确认电脑是否支持安装苹果系统?
    Windows上安装苹果系统,不是所有电脑都支持,必须得硬件支持才行,不然会出现各种问题。那如何确认电脑是否支持呢?以下是关于如何确认电脑是否支持安装黑苹果?的主要内容,如果未能解决你的问题,可参考相关文章:https://www.cnblogs.com一、查看硬件信息可以借助软件查看,比如:鲁大......
  • conda虚拟环境迁移至离线电脑中(window10)
    需求将conda创建的虚拟环境迁移到离线的电脑中(均为win10系统)解决方法一、先离线下载python离线下载anaconda,注意和原环境相同版本anaconda,然后相同的cuda和cuDNN(为了方便gpu版本的第三方库运行)二、开始迁移环境①Conda的方法:1)联网机打开cmd将要迁移的虚拟环境my_e......
  • 电脑软件:PC端微信4.0内测版功能一览
    目录一、版本说明二、安装说明三、使用说明3.1UI界面优化3.2联系人界面优化3.3文件管理功能优化四、总结一、版本说明近期腾讯官方更新了Windows版本的微信,4.0.0内测版本。这次和往常不同,不需要申请内测资格就可以下载体验,并且安装的版本和已经安装的微信版......