跳转至

Virbox可再发行安装包命令行

Virbox 用户工具静默安装应用场景#

很多开发者不希望软件用户在使用加密后的软件时,去自行安装Virbox用户工具,或者不希望软件用户看见非软件开发者公司相关产品或者logo。所以深思在保护开发者软件的同时,提供了virbox用户工具界面完全隐藏的方案——Virbox 静默安装,以下为相关命令及代码。

正常安装与静默安装区别#

普通安装,安装弹出安装界面,安装过程出现异常时弹窗提示。
静默安装,无弹窗后台运行,安装过程出现错误结束安装返回错误码。

静默安装使用方法#

静默安装(CMD命令):输入安装包路径,附加 /S 参数。
示例:
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

隐藏开始菜单快捷方式图标#

D:\Users\Desktop>D:\Users\Desktop\sense_shield_installer_pub_2.1.0.15800.exe /S /not_create_startmenu_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驱动安装失败。
7 安装SS服务失败。
8 创建ssclient 配置目录失败。

注意:建议使用同步方式执行静默安装指令,等待执行完毕判断返回值成功后继续执行后续操作;如果使用异步调用方式,请在安装结束时判断返回值确认安装是否成功。

静默安装示例代码#

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();
}

.NET Framework#

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();
        }
    }
}

常见问题#

1.Windows Server 2012安装过程中提示文件覆盖写入失败#

解决方案:重启计算机后重新执行安装程序。

2.执行静默安装后右下角托盘图标扔存在#

解决方案:出现此问题的原因是因为之前有非静默安装过 virbox 用户工具,删掉 C:\ProgramData\senseshield\ss\config.ini文件,再执行静默安装即可。