首页 > 其他分享 >域控分发、安装、软件的小结

域控分发、安装、软件的小结

时间:2024-05-23 18:51:18浏览次数:11  
标签:分发 exe filePath 安装 Write Host 版本 域控 小结

问题一:MSI/EXE
问题二:管理员权限是/否。
问题三:软件数量是多/少。
问题四:手动选装/策略自动安装
问题五:版本校验是/否。


一:MSI格式
这个就简单了。
管理员权限可以忽略,因为我们通过域控来安装。
数量多少并没有什么关系,跟执行策略无关。
版本校验,可以自动处置。
手动选装,发布到用户的软件安装中。
自动安装,分配到计算机的软件安装中。
哪些自动安装,就靠组织单位和策略分配了。

二:EXE格式无需管理员权限
无需管理员权限,这就是一个自解压压缩包好不。
随便解压出来就能用。
这数量多少也没什么关系。
手动选装:你随便丢到web下载站,让用户自己下载安装就好了。
策略安装:丢用户登录脚本,bat大概如下
\\server\soft\***\***.exe
版本校验后面一起讲。

三:EXE格式需要管理员。
管理员权限可以套RunAsSpc,生成密钥文件。
数量多的话,可以考虑RunAsRob,为目录许可管理员权限,当然你要配置只读的网络目录,免得被篡改滥用。
手动选装:我习惯3个文件打包到winrar自解压,解压到临时目录,并自动执行RunAsSpc。
策略安装:计算机启动脚本,bat大概如下
\\server\soft\***\***.exe
版本校验后面一起讲。

四:版本校验
版本校验我使用powershell脚本来做。
这个脚本在管理员电脑检查最新安装后文件的版本,显示给你。

只要改最后的一个$filePath路径即可
function GetFileVersionInfo($filePath) {
# 检查文件是否存在
if (!(Test-Path $filePath)) {
Write-Error "文件不存在: $filePath"
return
}

# 尝试获取文件的版本信息
try {
$fileInfo = Get-Item $filePath
$versionInfo = $fileInfo.VersionInfo

# 显示版本信息
Write-Host "文件路径: $filePath"
Write-Host "文件版本: $($versionInfo.FileVersion)"
Write-Host "产品版本: $($versionInfo.ProductVersion)"
Write-Host "文件描述: $($versionInfo.FileDescription)"
Write-Host "内部名称: $($versionInfo.InternalName)"
Write-Host "原始文件名: $($versionInfo.OriginalFilename)"
# ... 这里可以添加更多版本信息的属性,如公司名称、版权信息等
}
catch {
Write-Error "无法从文件中获取版本信息: $_"
}
}

# 示例使用
$filePath = "C:\path\to\your\app.exe"
GetFileVersionInfo $filePath

 

这个脚本放域启动或登录脚本检查已安装到系统的版本,并执行更新命令

修改最后几行

$targetExe 终端安装后软件的路径
$newVersion = 上一个脚本显示的版本
$upgradeCommand = 升级安装的命令,可以用网络路径参数"\\server\\software\***.exe /S"
function UpgradeIfNeeded($targetExePath, $newVersion, $upgradeCommand) {
# 检查目标exe文件是否存在
if (!(Test-Path $targetExePath)) {
Write-Host "目标文件不存在: $targetExePath"
Write-Host "由于文件不存在,将执行升级命令..."
} else {
# 获取目标exe文件的版本信息
try {
$fileVersionInfo = (Get-Item $targetExePath).VersionInfo
$currentVersion = $fileVersionInfo.FileVersion

# 比较版本号
if ($currentVersion -ne $newVersion) {
Write-Host "当前版本: $currentVersion 不等于 新版本: $newVersion"
Write-Host "正在执行升级..."
} else {
# 如果版本匹配,则不需要升级
Write-Host "版本已经是最新的。"
return # 退出函数,不执行升级命令
}
}
catch {
Write-Host "获取版本信息时发生错误: $_"
# 即使获取版本失败,也假设需要升级(根据您的具体需求)
}
}

# 执行升级命令(这里假设upgradeCommand是一个完整的命令字符串)
Invoke-Expression $upgradeCommand
Write-Host "升级命令已执行。"
}

# 示例使用
$targetExe = "C:\path\to\your\app.exe"
$newVersion = "1.2.3.4"
$upgradeCommand = "C:\path\to\upgrade\script.bat" # 或者其他命令行,比如 msiexec /i upgrade.msi 等

UpgradeIfNeeded -targetExePath $targetExe -newVersion $newVersion -upgradeCommand $upgradeCommand

如果安装路径在C:\Program Files,就放启动脚本,这是计算机级别的软件。
如果安装路径在C:\Users,就放登录脚本,这是用户级别的软件。

五:交互安装
交互安装,主要指要输入信息才能安装的软件。
msi一般没见过,exe见过一些,比方说我这里的北信源。
要输入责任人,选择所属部门……
这个就是套AU3的自动化脚本,但是这是模拟鼠标键盘,一旦双击开始这个自动化任务,就要停止使用键盘鼠标,等待自动化任务完成才可以。
加个msgbox,等用户点击确认不能动键盘鼠标以后再继续任务吧。
AU3,你可以将它看成免费的按键精灵,但是抓抓功能似乎和按键精灵各有千秋,按键精灵有抓图,图片比较,AU3有更深层次的windows空间。
好在免费编译exe。按键精灵还要会员才能编译exe。
vb脚本,比较简单,内置函数也很方便我们处理。
抓点,移动鼠标,点击,输入参数。
滚动条最好是找到滚动条下面一点的位置,点击鼠标,点一次移动一组,是可控的。或者找到上下箭头的位置,点一下,也是可控的。

六:使用时要管理员权限
这个就套个RunAsSpc,随便用什么方式给它分发到用户终端,创建个新的快捷方式,指向RunAsSpc即可。

标签:分发,exe,filePath,安装,Write,Host,版本,域控,小结
From: https://www.cnblogs.com/jackadam/p/18209167

相关文章

  • rustdesk域控灵活使用
    简介:rustdesk是一个非常好用的可以私域部署的远程协助软件,俗称远程桌面。好处就太多了。我的环境为了安全,全面封禁3389端口,封禁135,136,137,138,443。好在没要求服务器封禁,否则我的域控,MDT,都不能用了。环境又复杂,管理范围跨郑州,开封,虽说不远,还有开封灌汤包、驴肉汤、鲤鱼焙面………......
  • wimlib可以处理多种Windows映像文件格式,包括WIM、ESD、VHD等,而且还支持高级功能,如压缩
    可以将wimlib视为DISM的替代品之一。虽然DISM是Windows操作系统中的内置工具,但wimlib提供了类似的功能,并且更加灵活和跨平台。wimlib可以处理多种Windows映像文件格式,包括WIM、ESD、VHD等,而且还支持高级功能,如压缩和转换映像文件格式、创建和挂载虚拟磁盘等。它是一个开源软......
  • Windows Active Directory(AD)域控制器(Domain Controller, DC)在企业IT管理中扮演着至关
    WindowsActiveDirectory(AD)域控制器(DomainController,DC)在企业IT管理中扮演着至关重要的角色,其优势、好处和作用体现在以下几个方面:优势与好处:集中化管理:权限与资源管理集中化,便于统一配置和控制,减少了管理的复杂度和成本。简化用户和计算机账户的创建、修改和删除......
  • 如何安全高效地进行4S店文件分发,保护核心资产?
    4S店与总部之间的文件分发是确保双方沟通顺畅、信息共享和决策支持的重要环节。4S店文件分发涉及到以下文件类型:销售报告:4S店需要定期向总部提交销售报告,包括销售数量、销售额、市场份额等关键指标。库存管理文件:包括车辆库存、零件库存的更新和需求预测,以便于总部进行库存管理......
  • 云计算内容分发
    AmazonRoute53一种具有很高可用性和可扩展性的域名系统(DNS)web服务。•支持简单(轮询)路由、加权轮询路由、延迟路由、地理位置路由、地理位置邻近度路由、故障转移路由、多值应答器路由通过以下方法提高在AWS上运行的应用程序的可用性:•为您自己的应用程序配置备份和故障转......
  • 莫队算法(基础莫队)小结(也做markdown测试)
    莫队基础莫队本质是通过排序优化了普通尺取法的时间复杂度。考虑如果某一列询问的右端点是递增的,那么我们更新答案的时候,右指针只会从左往右移动,那么i指针的移动次数是$O(n)$的。当然,我们不可能让左右端点都单调来做到总体$O(n)$。考虑对左端点进行分块。莫队排序:左端点按......
  • leedcode-分发饼干(贪心算法)
    自己写的,没有使用排序,会超出时间限制:classSolution:deffindContentChildren(self,g:List[int],s:List[int])->int:iflen(s)==0:return0count=0foriinrange(len(g)):mydict={}forjin......
  • 字符串Str函数小结
    数据结构字符串Str函数总结·我们学习过很多关于求解字符串相关问题的函数,但是都是每遇到一次算认识了,一定程度上很少进行总结,最近又重新接触到了这类“Str函数”,发现自己还是有点掌握不牢固,以下仅是个人学习总结,有错误之处可指出。如上图所示,在man手册中有许多关于str的函数,......
  • 如何进行APP下载分发?
    进行APP软件分发主要涉及以下几个步骤:准备应用程序:首先,开发人员需要确保应用程序已经经过完整的测试和质量保证,包括功能测试、用户体验测试、性能测试等,以确保其稳定性和可靠性。同时,打包应用程序,将开发完成的App进行编译、打包,生成可执行文件。这个过程包括编译代码、打包资源......
  • 1-Linux集群搭建,分发脚本,ssh免密登录
    Linux集群部署集群规划模板机安装创建完成后全部打开并登录root账户修改克隆主机名vim/etc/sysconfig/network-scripts/ifcfg-ens33esc退出并输入:wq保存按i修改IPADDR为192.168.10.101/192.168.10.102/192.168.10.103vim/etc/hostname按i修改名字......