安装包静默安装#
正常安装与静默安装区别#
普通安装,安装弹出安装界面,安装过程出现异常时弹窗提示。
静默安装,无弹窗后台运行,安装过程出现错误结束安装返回错误码。
进度条安装,只显示进度条安装过程,安装选项通过命令行参数设置,如果未设置,使用默认参数。
命令行参数说明#
sense_shield_installer_pub.exe [/S] [/senseshield_hide_taskbar_icon] [/auto_install] [/not_create_desktop_shortcuts] [add_ss_restart_schtask --ss_restart_schtask_time=06:00:00]
参数 | 说明 |
---|---|
/S | 静默安装,即在后台执行安装,不显示任何界面。 注意: S必须是大写 。 |
/auto_install | 只显示安装进度条,安装至默认路径(不可更改)。 |
/pc_startup_create_hide_main_window | 用户工具开机后台运行,更新加密锁丢锁补锁状态。 注意:不设置此参数丢锁补锁状态不会自动更新,需要启动用户工具界面后才会联网更新加密锁丢锁补锁升级包。 |
/not_create_startmenu_shortcuts | 不创建开始菜单,在/S 模式下生效,界面安装时取消勾选生效。 |
/not_create_desktop_shortcuts | 不创建用户工具桌面快捷方式,在/S 模式下才能生效。 |
/senseshield_hide_taskbar_icon | 隐藏用户工具托盘图标,在/S 模式下才能生效。 |
/add_ss_restart_schtask [--ss_restart_schtask_time=06:00:00] | 添加服务定时重启计划任务(不支持Windows XP 和 Windows Server 2003)。 |
注意:执行命令行参数过程中必须使用“管理员权限”运行,否则会提示“拒绝访问”。
查看安装包支持参数:
管理员权限运行批处理程序(CMD),"输入安装包路径" [/? | /help]
示例:D:\Users\Desktop>D:\Users\Desktop\sense_shield_installer_pub_2.0.0.13133.exe /?
静默安装#
示例:C:\Users\ss23>C:\Users\ss23\Desktop\package\sense_shield_installer_pub_2.0.0.10870.exe /S
备注:目录中如果包含空格,路径必须使用"路径"的形式,否则执行失败。
隐藏用户工具托盘图标#
示例:D:\Users\Desktop>D:\Users\Desktop\sense_shield_installer_pub_2.0.0.13133.exe /S /senseshield_hide_taskbar_icon
注意:隐藏用户工具托盘图标安装方式只有电脑之前没有安装过旧版本的SS,再次安装再次安装时使用同样的参数。否则如果覆盖旧版本安装、以非隐藏托盘图标方式安装或者手动运行用户许可管理工具三种情况,之后会显示托盘图标,不再隐藏。
显示安装进度#
示例:D:\Users\Desktop>D:\Users\Desktop\sense_shield_installer_pub_2.1.0.15800.exe /S /auto_install
隐藏桌面快捷方式图标#
示例:D:\Users\Desktop>D:\Users\Desktop\sense_shield_installer_pub_2.1.0.15800.exe /S /not_create_desktop_shortcuts
创建服务定时重启计划任务#
不通过ss_restart_schtask_time参数指定重启时间,则使用默认重启时间 06:00:00
,设置SS定时重启计划任务执行时间,必须在设置 /add_ss_restart_schtask 参数的基础上,此参数才能生效,单独使用此参数无效。时间必须使用 hh:mm:ss
的格式。
多次执行创建计划,后一次会覆盖之前的计划任务。
查看计划任务方法:控制面板 -> 管理工具 -> 任务计划程序,左侧树状列表选择 "任务计划程序(本地)" -> "任务计划程序库",右侧显示计划任务名称、状态、触发器、下次运行时间等任务信息。
创建默认时间执行的服务重启计划任务#
示例:D:\Users\Desktop>C:\Users\Desktop\package\pub\2.1.0.19388\sense_shield_installer_pub_2.1.0.19388.exe /add_ss_restart_schtask
安装完成后,计划任务增加一项名称为“SenseshiledServiceRestart”的计划任务,查看任务详情,服务将在每天06:00:00执行重启批处理。
创建指定时间执行的服务重启计划任务#
示例:D:\Users\Desktop>C:\Users\Desktop\package\pub\2.1.0.19388\sense_shield_installer_pub_2.1.0.19388.exe /add_ss_restart_schtask --ss_restart_schtask_time=03:00:00
安装完成后,计划任务增加一项名称为“SenseshiledServiceRestart”的计划任务,查看任务详情,服务将在每天03:00:00执行重启批处理。
静默卸载#
目前不支持静默卸载。
错误码#
安装包执行完毕返回错误码,错误信息如下表所示:
返回值 | 含义 |
---|---|
0 | 安装成功 |
3 | 已安装版本高于当前版本 |
4 | 无法终止运行中进程,重启电脑后重新安装 |
5 | 安装文件丢失。关键安装文件被删除,导致安装失败。 常见情况:文件被误认为病毒程序被误删,请退出杀毒软件后重试。 |
6 | x64系统驱动文件重命名失败,SS驱动安装失败。 常见情况:退出360安全卫士、杀毒软件等程序后重试。 |
7 | 安装SS服务失败 |
8 | 创建ssclient 配置目录失败 |
50 | 服务安装失败,未知错误,需要联系深思客服。 |
55 | 情况1:权限不足,请使用管理员权限重新安装; 情况2:服务已标记为删除状态。请关闭Windows任务管理器和服务管理工具后重试; 情况3:服务安装失败,请重启后重试; |
注意:建议使用同步方式执行静默安装指令,等待执行完毕判断返回值成功后继续执行后续操作;如果使用异步调用方式,请在安装结束时判断返回值确认安装是否成功。
示例代码#
C/C++#
示例代码使用system()执行静默安装,等待返回值。
#include <stdio.h> #include <Windows.h> int main() { int ret = 0; char *silent_install_cmd = "\"C:\\Program Files (x86)\\senseshield\\ss_dev\\Redistribute\\sense_shield_installer_pub.exe\" /S"; ret = system(silent_install_cmd); switch (ret) { case 0: printf("安装成功\n"); // 静默安装成功,在此处编写后续处理代码 break; case 3: printf("已安装版本高于当前版本\n"); break; case 4: printf("无法终止运行中进程,重启电脑后重新安装\n"); break; case 5: printf("安装文件丢失\n"); break; case 6: printf("x64系统驱动文件重命名失败\n"); break; default: printf("未知错误\n"); break; } getchar(); }
C Sharp#
using System.Diagnostics; namespace SSPubPackageSilentInstallDemo { class Program { static void Main(string[] args) { string package_path = @"C:\Program Files (x86)\senseshield\ss_dev\Redistribute\sense_shield_installer_pub.exe"; string silent_params = "/S"; Process process = Process.Start(package_path, silent_params); process.WaitForExit(); switch (process.ExitCode) { case 0: Console.WriteLine("安装成功\n"); // 静默安装成功,在此处编写后续处理代码 break; case 3: Console.WriteLine("已安装版本高于当前版本\n"); break; case 4: Console.WriteLine("无法终止运行中进程,重启电脑后重新安装\n"); break; case 5: Console.WriteLine("安装文件丢失\n"); break; case 6: Console.WriteLine("x64系统驱动文件重命名失败\n"); break; default: Console.WriteLine("未知错误\n"); break; } Console.ReadKey(); } } }