一键安装Cisco AnyConnect Secure Mobility Client

Mac版本

背景:公司内部安装此VPN软件的时候,因默认是安装了所有模块,但我们只需要vpn模块,所产生的干扰。并且有人因不熟悉Mac pkg 软件的卸载方法导致非正常卸载,导致重新安装也无法安装,软件也没了。原来的解决方式是给出相关安装文档与卸载命令,但因在此过程中有些人就不看文档,或者看不懂文档特别是涉及通过代码层次的卸载解决方式很多人并不会,在此过程中造成了大量的无效沟通成本,因此我就写了一个shell脚本解决以上问题。

❯ tree -a
.
├── .AnyConnect.pkg #这是软件主程序,如果脚本运行有问题的话可以双击此程序来手动安装(自带)
├── .DS_Store
├── .Profiles #配置文件(不用管,自带的)
│   ├── .DS_Store
│   ├── ACTransforms.xml
│   ├── ampenabler
│   ├── feedback
│   ├── iseposture
│   ├── nvm
│   ├── umbrella
│   └── vpn
├── .VolumeIcon.icns #图标(自带)
├── .background #背景(自带)
│   └── dmg_background.tiff
├── .install_1.xml #这是安装所需要的配置文件,里面定义了默认只安装vpn模块,其他模块不装(自行定义编写)
└── install   #这是一个安装脚本(自行定义编写)

这是一个自定义配置文件,配置说明如下


        attributeSetting
        1
        choiceAttribute
        selected
        choiceIdentifier
        choice_vpn

        attributeSetting
        0
        choiceAttribute
        selected
        choiceIdentifier
        choice_websecurity

        attributeSetting
        0
        choiceAttribute
        selected
        choiceIdentifier
        choice_fireamp

        attributeSetting
        0
        choiceAttribute
        selected
        choiceIdentifier
        choice_dart

        attributeSetting
        0
        choiceAttribute
        selected
        choiceIdentifier
        choice_posture

        attributeSetting
        0
        choiceAttribute
        selected
        choiceIdentifier
        choice_iseposture

        attributeSetting
        0
        choiceAttribute
        selected
        choiceIdentifier
        choice_nvm

        attributeSetting
        0
        choiceAttribute
        selected
        choiceIdentifier
        choice_umbrella

这个文件其实就是一个shell脚本,别人安装也是运行这个脚本,通过运行脚本来安装软件

#!/bin/bash
clear
RED='\033[0;31m'
GRN='\033[0;32m'
BLU='\033[0;34m'
NC='\033[0m'
pkgName=$(pkgutil --pkgs|grep "com.cisco.pkg.anyconnect.vpn")
当前路径
parentPath=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P )
cd "$parentPath"
在当前路径查询符合pkg后缀的文件
pkgPath=$( find "$parentPath" -name '*.pkg' -maxdepth 1)
在当前路径查询符合xml后缀的文件
xmlPath=$( find "$parentPath" -name '*.xml' -maxdepth 1)
逻辑判断,是否有查到已经安装了com.cisco.pkg.anyconnect.vpn,如果有则d,则先卸载再重新安装,否则直接安装 vpn。安装完后直接等待两秒直接关闭终端
if [ ! $pkgName ];then
    echo -e "${RED}不存在,不需要卸载,接下来直接安装。${NC}"
    echo -e "${BLU}请输入开机密码,输入完成后按下回车键(输入过程中密码是看不见的>)${NC}"
    sudo installer  -pkg "${pkgPath}" -applyChoiceChangesXML "${xmlPath}" -target / > /dev/null
    if [ $? -eq 0 ];then
        echo -e "${GRN}安装完成,本窗口可关闭${NC}"
        sleep 2 && osascript -e "do Shell script \"osascript -e \\\"tell application \\\\\\\"Terminal\\\\\\\" to quit\\\" &> /dev/null &\""; exit
    else
        echo "${RED}安装失败请截图联系it-help${NC}"
    fi
else
    echo -e "${BLU}开始卸载原软件${NC}"
    echo -e "${RED}------------------------------${NC}"
    echo -e "${BLU}请输入开机密码,输入完成后按下回车键(输入过程中密码是看不见的>)${NC}"
    sudo pkgutil --forget com.cisco.pkg.anyconnect.vpn
    echo -e "${BLU}开始安装VPN客户端${NC}"
    sleep 2
    sudo installer  -pkg "${pkgPath}" -applyChoiceChangesXML "${xmlPath}" -target / > /dev/null
    if [ $? -eq 0 ];then
          echo -e "${GRN}安装完成,本窗口可关闭${NC}"
          sleep 2 && osascript -e "do Shell script \"osascript -e \\\"tell application \\\\\\\"Terminal\\\\\\\" to quit\\\" &> /dev/null &\""; exit
    else
          echo "${RED}安装失败请截图联系it-help${NC}"
    fi
fi

注意⚠️:以下是此过程中需要用到的一些命令。

将anyconnect-macos-4.10.05111-predeploy-k9.dmg 转成可读写
hdiutil convert anyconnect-macos-4.10.05111-predeploy-k9.dmg -format UDRW -o anyconnect-macos-4.10.05111-predeploy-k9-rw.dmg
将anyconnect-macos-4.10.05111-predeploy-k9.dmg 转成只读
hdiutil convert anyconnect-macos-4.10.05111-predeploy-k9-rw.dmg -format UDRO -o anyconnect-macos-4.10.05111-predeploy-k9-ro.dmg

vpn软件包

4.10.05111 软件包已经上传到我的阿里云盘中了,有需要自取。Windows,Mac,Linux版本包都在里面了。

😂阿里云盘不支持分享软件包我后知后觉抱歉了,软件包我丢夸克了

https://pan.quark.cn/s/560051378a7c

参考链接

Original: https://www.cnblogs.com/98record/p/yi-jian-an-zhuangcisco-anyconnect-secure-mobility.html
Author: 自在拉基
Title: 一键安装Cisco AnyConnect Secure Mobility Client

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/586060/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 面试题:深拷贝、浅拷贝、引用拷贝的区别

    引用拷贝 浅拷贝 深拷贝 小结 作者:小牛呼噜噜 | https://xiaoniuhululu.com计算机内功、JAVA底层、面试相关资料等更多精彩文章在公众号「小牛呼噜噜 」…

    Linux 2023年6月6日
    0105
  • 让SpringBoot也用上Fluent Validator

    前言 在使用SpringBoot的时候经常需要对客户端传入的参数进行合法性的校验,校验的方法基本上都是使用SpringBoot提供的注解,有时候遇上注解不能满足需求的时候还需要在业…

    Linux 2023年6月14日
    096
  • redis详解(三)– 面试题(转载)

    使用redis有哪些好处? (1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) (2) 支持丰富数据类型,支持st…

    Linux 2023年5月28日
    0119
  • shell生成指定长度的随机数

    生成指定长度是随机数 8位纯数字的随机数 tr -cd ‘0-9’ 使用/dev/urandom而不是/dev/random是因为后者比较慢。 Original: https://…

    Linux 2023年5月28日
    0113
  • 关于熵,条件熵,交叉熵等的介绍

    参考:《数学之美》一文搞懂交叉熵在机器学习中的使用,透彻理解交叉熵背后的直觉详解机器学习中的熵、条件熵、相对熵和交叉熵常用的分类问题中的损失函数 1.信息量与信息熵 香农在他著名的…

    Linux 2023年6月13日
    098
  • 《拉钩课程 — 分布式技术原理与实战》学习笔记

    1、分布式系统是用来解决集中式架构的性能瓶颈问题,其核心是可扩展性,其特点包括:不出现单点故障、无状态等。依照 CAP 理论,分布式系统只能在 CP 和 AP 之间做取舍。 2、B…

    Linux 2023年6月16日
    0141
  • redis 安装和命令

    转自:https://blog.csdn.net/hzlarm/article/details/99432240 在线安装: 查看使用的默认端口: 查看redis服务器的状态: 重…

    Linux 2023年5月28日
    0104
  • Red Hat Enterprise Linux (RHEL) 8.5 发布(含下载)

    2021 年 11 月 10 日,红帽企业 Linux (RHEL) 8.5 现已正式发布 (GA),并带来了新功能和改进,以帮助简化部署、优化性能并帮助降低环境中的风险。无论您的…

    Linux 2023年5月27日
    0115
  • 【redis使用全解析】常见运维操作

    $ redis-server redis.conf 常见选项: ./redis-server (run the server with default conf) ./redis-…

    Linux 2023年5月28日
    079
  • 【滚动更新】C++ 八股文选集(没代码,纯应试)

    1,变量的声明和定义有什么区别。 声明不分配内存,定义分配内存。变量只能被定义一次,但可以被声明多次。 2,#ifdef、#else、#endif和#ifndef的作用。 预处理条…

    Linux 2023年6月13日
    099
  • phpcms全文检索功能实现(集成sphinx)

    sphinx配置 sphinx是俄罗斯人开发的一个搜索引擎,基于c++编写,具有强大的检索能力,本身支持中文单个字符的检索,中文分词需要额外的插件Coreseek,但该插件已很久未…

    Linux 2023年6月13日
    0133
  • ASP.NET Core 2.2 : 二十二. 多样性的配置方式

    大多数应用都离不开配置,本章将介绍ASP.NET Core中常见的几种配置方式及系统内部实现的机制。(ASP.NET Core 系列目录) 说到配置,第一印象可能就是”…

    Linux 2023年6月7日
    0117
  • 你真的了解JAVA中对象和类、this、super和static关键字吗

    作者:小牛呼噜噜 | https://xiaoniuhululu.com计算机内功、JAVA底层、面试相关资料等更多精彩文章在公众号「小牛呼噜噜 」 Java对象究竟是什么? 创建…

    Linux 2023年6月6日
    0123
  • 爱快在PVE下不定时反复重启死机的解决方法

    太长不看版本: 爱快3.6.X在PVE乃至于ESXI下都存在一定的兼容问题 ! 详细情况: 如题,使用爱快版本为3.6.3 x64 Build20220407113364,底层虚拟…

    Linux 2023年6月13日
    0183
  • CentOS 7 安装 mysql 5.7.27 for zabbix

    本文是因为需要安装zabbix系统,才贴出的此步骤,供自己查阅方便之用; 在安装使用zabbix前,需要先安装数据库,这里使用的是MySQL数据库进行部署,给出安装步骤,大家觉得有…

    Linux 2023年6月8日
    0105
  • 冒泡排序

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月8日
    0116
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球