什么是Sap 临时密钥?
SAP 临时密钥是用于激活 SAP 软件的一种许可证,只能在有限的时间内使用。这些密钥可用于评估目的或在系统迁移期间使用。它们是临时解决方案,通常在一定时间后过期。
如何获取Sap Temporary keys?
临时密钥: 如果创建永久许可证密钥时出现任何错误,SAP支持门户网站提供临时的Business Objects许可证密钥。您可以通过登录到支持门户网站上的链接 www.service.sap.com/licensekey并选择“获取临时许可证密钥”链接来下载这些密钥。这些临时许可证密钥的有效期最长为90天。
方法1:手动下载
-
www.service.sap.com/licensekey 打开网址之后点击这里下载一个名为“bobj-temp-license-key.zip”的文件:
- 解压之后有一名为“SAP Analytics Emergency License Key Process”的pdf文件,在这里面可以找到你需要的License Key
方法2:使用Python自动化获取Sap Temporary keys的过程
导入需要的包
from selenium import webdriver
import time
import zipfile
import PyPDF2
import os
import shutil
import warnings
下载bobj-temp-license-key.zip
# 定义文件夹路径,替换成你想保存zip文件的路径
download_zip_path = r"C:\\Users\\USERNAME\\Projects\\download_zip"
# 下载zip文件
options = webdriver.ChromeOptions()
prefs = {'profile.default_content_settings.popups': 0,
'download.default_directory': download_zip_path}
options.add_experimental_option('prefs', prefs)
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://support.sap.com/content/dam/support/en_us/library/ssp/my-support/keys/bobj-temp-license-key.zip')
time.sleep(5)
driver.quit()
解压zip文件以获取pdf
# zip the zip file into 'bobj-temp-license-key'
file_path_zip = r"{}/bobj-temp-license-key.zip".format(download_zip_path)
if os.path.exists(file_path_zip):
zip_file = zipfile.ZipFile(file_path_zip)
zip_file.extractall(keys_path)
zip_file.close()
print("解压成功")
else:
print("解压失败")
# 解压成功之后即可获得pdf的路径
file_path_pdf = "..."
从pdf文件中获取需要的Licence Key
以SAP BusinessObjects Tempory Licence Key为例,Licence Key位于pdf第二页的“CPU 4.2”字段之后,经过测试确定获取SAP BusinessObjects Tempory Licence Key的function:
# 获取SAP BusinessObjects Tempory Licence Key
def get_key_from_text(text):
start = text.find('CPU 4.2') + 8
return text[start:start + 32]
file_path_pdf为上一步中获取的pdf的路径:文章来源:https://www.toymoban.com/news/detail-655571.html
if os.path.exists(file_path_pdf):
pdf_file = open(file_path_pdf, 'rb')
pdf_reader = PyPDF2.PdfReader(pdf_file)
page = pdf_reader.pages[1]
text = page.extract_text()
latest_key = get_key_from_text(text)
pdf_file.close()
如果每隔90天就需要更新一次license key,可以把licence key保存在一个txt文件里,成功获取最新的licence key之后可以和本地保存的licence key对比,如果latest_key != current_key,则将latest_key 替换current_key,以确保txt文件里永远保存最新的licence key。文章来源地址https://www.toymoban.com/news/detail-655571.html
if os.path.exists(file_path_pdf):
pdf_file = open(file_path_pdf, 'rb')
pdf_reader = PyPDF2.PdfReader(pdf_file)
page = pdf_reader.pages[1]
text = page.extract_text()
latest_key = get_key_from_text(text)
pdf_file.close()
if latest_key != current_key:
with open(current_key_txt_path, 'w') as file:
file.write(latest_key)
print("license已更新, latest license", latest_key)
else:
print("license未更新, current license:", latest_key)
else:
print("PDF不存在")
完整代码
from selenium import webdriver
import time
import zipfile
import PyPDF2
import os
import shutil
import warnings
warnings.filterwarnings("ignore")
download_zip_path = r"C:\\Users\\USERNAME\\Projects\\download_zip" #zip文档下载到哪个文件夹
keys_path = r"C:\\Users\\USERNAME\\Projects\\bobj-temp-license-key"#zip文件解压到哪里
current_key_txt_path = r"C:\\Users\\USERNAME\\Projects\\BO_KEY.txt" #保存最新的licence的txt文件路径
# 读取txt文件,定义current_key
with open(current_key_txt_path, 'r') as file:
current_key = file.read()
# 清空文件夹
## 清空download_zip_path和keys_path文件夹,清空之后再保存文件,方便后续读取
### 定义清空文件夹的function
def delete_folder_contents(folder_path):
for filename in os.listdir(folder_path):
file_path = os.path.join(folder_path, filename)
try:
if os.path.isfile(file_path) or os.path.islink(file_path):
os.unlink(file_path)
elif os.path.isdir(file_path):
shutil.rmtree(file_path)
except Exception as e:
print(f"Failed to delete {file_path}. Reason: {e}")
### 清空download_zip_path和keys_path文件夹
delete_folder_contents(download_zip_path)
delete_folder_contents(keys_path)
# download the latest zip
options = webdriver.ChromeOptions()
prefs = {'profile.default_content_settings.popups': 0,
'download.default_directory': download_zip_path}
options.add_experimental_option('prefs', prefs)
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://support.sap.com/content/dam/support/en_us/library/ssp/my-support/keys/bobj-temp-license-key.zip')
time.sleep(5)
driver.quit()
# zip the zip file into 'bobj-temp-license-key'
file_path_zip = r"{}/bobj-temp-license-key.zip".format(download_zip_path)
if os.path.exists(file_path_zip):
zip_file = zipfile.ZipFile(file_path_zip)
zip_file.extractall(keys_path)
zip_file.close()
print("zip file unzipped successfully")
else:
print("zip File does not exist")
time.sleep(5)
file_path_pdf = r'{}\SAP Analytics Emergency License Key Process.pdf'.format(keys_path)
def get_key_from_text(text):
start = text.find('CPU 4.2') + 8
return text[start:start + 32]
if os.path.exists(file_path_pdf):
pdf_file = open(file_path_pdf, 'rb')
pdf_reader = PyPDF2.PdfReader(pdf_file)
page = pdf_reader.pages[1]
text = page.extract_text()
latest_key = get_key_from_text(text)
pdf_file.close()
if latest_key != current_key:
with open(current_key_txt_path, 'w') as file:
file.write(latest_key)
print("license已更新, latest license", latest_key)
else:
print("license未更新, current license:", latest_key)
else:
print("PDF不存在")
到了这里,关于如何使用Python获取SAP Temporary key 临时密钥的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!