Ztasker自动化

官网:everauto.net

使用ztasker完成网易云的自动化,新拨号+新虚拟机+新安装网易云客户端+新访客新播放!!!

绿色版:

zTasker_2.1.8.zip

歌曲列表.txt

歌曲名随机到右键.zip

环境:

esxi底层克隆虚拟机 + winbat拉取ztasker + zatasker自动化网易云

1.esxi底层克隆虚拟机

2.winbat拉取ztasker

3.zatasker自动化网易云

第一步,esxi底层创建虚拟机

esxi自动化脚本,实现自动克隆虚拟机及删除虚拟机动作

创建虚拟机脚本,路径根据需求修改!

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/bin/bash
#先删除虚拟机再创建虚拟机



# 源虚拟机信息
SOURCE_DATASTORE="WD_1T_1"
SOURCE_VM_NAME="WIN10_21H2_WYY"
SOURCE_VM_PATH="/vmfs/volumes/${SOURCE_DATASTORE}/${SOURCE_VM_NAME}"

# 目标虚拟机信息
TARGET_DATASTORE="WD_1T_1"
TARGET_VM_NAME="WIN10_21H2_DEMO"
TARGET_VM_PATH="/vmfs/volumes/${TARGET_DATASTORE}/${TARGET_VM_NAME}"
#########################################################
###删除虚拟机
VMID_DEL=`vim-cmd vmsvc/getallvms|grep "$TARGET_VM_NAME"|awk '{print $1}'`
if [ ! -z $VMID_DEL ];then
        vim-cmd vmsvc/power.off  $VMID_DEL
        vim-cmd vmsvc/power.off  $VMID_DEL
        vim-cmd vmsvc/unregister $VMID_DEL
fi
rm -rf $TARGET_VM_PATH



###创建目标虚拟机目录
mkdir -p ${TARGET_VM_PATH}

# 克隆磁盘
vmkfstools -i ${SOURCE_VM_PATH}/${SOURCE_VM_NAME}.vmdk ${TARGET_VM_PATH}/${TARGET_VM_NAME}.vmdk -d thin

# 克隆配置文件
cp ${SOURCE_VM_PATH}/${SOURCE_VM_NAME}.vmx ${TARGET_VM_PATH}/${TARGET_VM_NAME}.vmx

# 修改配置文件中的磁盘路径
#sed -i "s|${SOURCE_VM_NAME}.vmdk|${TARGET_VM_NAME}.vmdk|g" ${TARGET_VM_PATH}/${TARGET_VM_NAME}.vmx
sed -i "/scsi0:0.fileName/c scsi0:0.fileName = \"${TARGET_VM_NAME}.vmdk\"" ${TARGET_VM_PATH}/${TARGET_VM_NAME}.vmx
# 修改配置文件中的虚拟机名称
sed -i "s|displayName = \"${SOURCE_VM_NAME}\"|displayName = \"${TARGET_VM_NAME}\"|g" ${TARGET_VM_PATH}/${TARGET_VM_NAME}.vmx

# 生成新的 UUID
NEW_UUID=$(openssl rand -hex 16 | sed 's/\(........\)\(....\)\(....\)\(....\)\(............\)/\1-\2-\3-\4-\5/')
NEW_UUID_PART1=$(echo $NEW_UUID | cut -d'-' -f1 | sed 's/\(..\)\(..\)\(..\)\(..\)/\1 \2 \3 \4/')
NEW_UUID_PART2=$(echo $NEW_UUID | cut -d'-' -f2 | sed 's/\(..\)\(..\)/\1 \2/')
NEW_UUID_PART3=$(echo $NEW_UUID | cut -d'-' -f3 | sed 's/\(..\)\(..\)/\1 \2/')
NEW_UUID_PART4=$(echo $NEW_UUID | cut -d'-' -f4 | sed 's/\(..\)\(..\)/\1 \2/')
NEW_UUID_PART5=$(echo $NEW_UUID | cut -d'-' -f5 | sed 's/\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)/\1 \2 \3 \4 \5 \6/')
FORMATTED_UUID="${NEW_UUID_PART1}-${NEW_UUID_PART2}-${NEW_UUID_PART3}-${NEW_UUID_PART4}-${NEW_UUID_PART5}"

# 修改 uuid.bios
sed -i "s|uuid.bios = \".*\"|uuid.bios = \"${FORMATTED_UUID}\"|g" ${TARGET_VM_PATH}/${TARGET_VM_NAME}.vmx

# 修改 uuid.location
sed -i "s|uuid.location = \".*\"|uuid.location = \"${FORMATTED_UUID}\"|g" ${TARGET_VM_PATH}/${TARGET_VM_NAME}.vmx

# 生成新的网卡 MAC 地址
NEW_MAC=$(printf '%02x:%02x:%02x:%02x:%02x:%02x\n' $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)))
# 假设只有一个网卡,修改配置文件中的网卡 MAC 地址
sed -i "s|ethernet0.generatedAddress = \".*\"|ethernet0.generatedAddress = \"${NEW_MAC}\"|g" ${TARGET_VM_PATH}/${TARGET_VM_NAME}.vmx

# 注册虚拟机
VMID=$(vim-cmd solo/registervm ${TARGET_VM_PATH}/${TARGET_VM_NAME}.vmx)
echo "Registered VM with ID: ${VMID}"

# 启动虚拟机(可选)
vim-cmd vmsvc/power.on ${VMID}

删除虚拟机脚本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#!/bin/bash
#删除虚拟机
# 目标虚拟机信息
TARGET_DATASTORE="WD_1T_1"
TARGET_VM_NAME="WIN10_21H2_DEMO"
TARGET_VM_PATH="/vmfs/volumes/${TARGET_DATASTORE}/${TARGET_VM_NAME}"
#########################################################
###删除虚拟机
VMID_DEL=`vim-cmd vmsvc/getallvms|grep "$TARGET_VM_NAME"|awk '{print $1}'`
if [ ! -z $VMID_DEL ];then
    vim-cmd vmsvc/power.off  $VMID_DEL
    sleep 1
    vim-cmd vmsvc/power.off  $VMID_DEL
    sleep 1
    vim-cmd vmsvc/unregister $VMID_DEL

fi
rm -rf $TARGET_VM_PATH

dsm7.2控制脚本(可选)

esxi_wangyiyun.zip

ikuai8重新拨号脚本(可选)

依赖python(reboot是参数):python /volume1/demo/python_cmd/route_ctl/route_ctl.py reboot

route_ctl.py.zip

第二步,winbat拉取ztasker

使用bat拉取安装包,用户自动化,如果镜像以带安装包可以跳过!我这里只是方便后期调整zatasker自动化脚本使用!

2.1拉取init脚本

使用url环境,拉取初始化脚本

1
2
3
4
5
6
7
8
@echo off
SET REMOTE_FILE=ftp://192.168.68.234/auto_base.bat
SET LOCAL_FILE=C:\auto_base.bat
::::::::::::::::::::
::win10自带curl拉取ftp文件
curl -o  %LOCAL_FILE% %REMOTE_FILE%
::启动bat
start %LOCAL_FILE%

2.2拉取base脚本

两种拉取方式,根据自己环境选择:

第一种,url环境:通过匿名的ftp使用url拉取文件后,使用win10自带tar解压,auto_base.bat如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
@echo off
SET REMOTE_FILE=ftp://192.168.68.234/auto.zip
SET LOCAL_FILE=C:\auto.zip
SET LOCAL_DIR=C:\
::::::::::::::::::::
::win10自带curl拉取ftp文件
curl -o  %LOCAL_FILE% %REMOTE_FILE%
::win10自带tar解压目录
tar -xf %LOCAL_FILE% -C %LOCAL_DIR%
::启动ztasker自动化任务
start C:\auto\zTasker_2.1.8\zTasker.exe

第二种,smb环境:通过smb协议拉取目录,auto_base.bat脚本如下:

注:修改自己的远端路径,且远端要拷贝的目录不能有中文,否则xcopy命令会有异常!

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
::指定目录
SET REMOTE_DIR=\\192.168.68.234\Download\auto\*.*
SET LOCAL_DIR=C:\auto

::文件
SET ZTASK_PATH=%LOCAL_DIR%\zTasker_2.1.8\zTasker.exe


::创建本地目录
md %LOCAL_DIR%

::拷贝远端到本地,E参数拷贝所以目录及文件Y参数忽略提示输入Y
xcopy  %REMOTE_DIR% %LOCAL_DIR% /E /Y

::启动ZTASK
start %ZTASK_PATH%

第三步,zatasker自动化网易云

整体打包为auto.zip,解压C盘即可

auto.zip.001

auto.zip.002

auto.zip.003

auto.zip.004

auto.zip.005

auto.zip.006

auto.zip.007