优雅的从VMWare官网上下载完整版Workstation Pro
Gaein nidb Lv5

VMWare是世界闻名的虚拟机软件,那么如何在官网下载正版呢?

打开VMWare官网

VMware中国

首页

转到下载页面

点击左侧下载>产品下载>Workstation Pro

!注意,是“产品下载”中的Workstation Pro而不是“免费产品试用版和演示”中的

下载

跳转到软件下载

跳转后在页面中选择自己需要的,跳转至下载

下载详细页面

点击“了解更多信息”

更多信息

记下“内部版本号”

版本号

拼接链接:

"https://download3.vmware.com/software/wkst/file/VMware-workstation-full-"+版本(15.0.2)+"-"+内部版本号(10952284)+".exe"

比如我这个15.0.2,10952284的下载链接就是
https://download3.vmware.com/software/wkst/file/VMware-workstation-full-15.0.2-10952284.exe

脚本

2021.5.15 补充

前阵子无聊扒了一下VMWare的API,瞎写了一个屎山脚本,用于实验室内网资源站更新VMWare方便一些:

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
# import requests
import httpx as requests
import json

vmware_public_api_url = "https://my.vmware.com/channel/public/api/v1.0"


def get_latest_version() -> str:
vmware_all_url = vmware_public_api_url + "/products/getProductsAtoZ?locale=en_US&isPrivate=false"
print(f"[INFO]向{vmware_all_url}发送请求,请稍后...")
all_file_resp = requests.get(vmware_all_url)
latest_rev = ""
if all_file_resp.status_code == 200:
ret_json = json.loads(all_file_resp.text)
products_list = ret_json["productCategoryList"][0]["productList"]

for item in products_list:
if item["name"] == "VMware Workstation Pro":
latest_rev = item["actions"][0]["target"].split('/')[-1]

return latest_rev


def get_info_by_version(version: str) -> dict:
vmware_list_url = vmware_public_api_url + f"/products/getRelatedDLGList?category=desktop_end_user_computing&product=vmware_workstation_pro&version={version}&dlgType=PRODUCT_BINARY"

print(f"[INFO]向{vmware_list_url}发送请求,请稍后...")

resp = requests.get(vmware_list_url)
if resp.status_code == 200:
return json.loads(resp.text)["dlgEditionsLists"][0]["dlgList"][0]
else:
print(f"ERROR:{resp.status_code} at url {vmware_list_url}")


def get_file_by_id(product_id: str, dl_group: str) -> str:

vmware_file_url = vmware_public_api_url + f"/dlg/details?locale=en_US&downloadGroup={dl_group}&productId={product_id}"
print(f"[INFO]向{vmware_file_url}发送请求,请稍后...")

resp = requests.get(vmware_file_url)
if resp.status_code == 200:
return json.loads(resp.text)["downloadFiles"][0]


if __name__ == "__main__":
latest_version = get_latest_version()

if latest_version is not None:
print(f"[INFO]获取到最新版本{latest_version}")

vmware_info = get_info_by_version(latest_version)

if vmware_info is not None:
print(f"[INFO]获取到:ID {vmware_info['productId']},名称 {vmware_info['name']},发布时间 {vmware_info['releaseDate']}")

file_info = get_file_by_id(vmware_info['productId'], vmware_info['code'])

print(f"[INFO]获取到:文件名 {file_info['fileName']},MD5{file_info['md5checksum']},文件大小{file_info['fileSize']}")

download_url = f"https://download3.vmware.com/software/wkst/file/{file_info['fileName']}"

print(f"[INFO]拼接下载链接:\n{download_url}")

屎山(但是能跑)