SAP ECC6 SOLUTION MANAGER KEY 生成脚本

时间:2023-02-02 20:12:28

SAP ECC6 SOLUTION MANAGER KEY 怎么来呢,是通过电脑名字、SAP System ID、以及 Center Instance Number 这三个字符串,经过一个算法算出来的,而算这个东西,你就要先装好 Solution Manager 这个软件,但是一般人都没有这个东西。


'''''''''''''''''''''''''''''''''''''' 
'   Solution Manager Key 生成器    ' 
'复制本文档,存为 SolManKeyGen.vbs        ' 
' 执行                                 ' 
'''''''''''''''''''''''''''''''''''''' 
'------------------------------------------------------- 
Dim SIDs, SNs, SERVs, msg, ENDs, KEYs 
msg="系统标识 (3位)" 
SIDs=InputBox(msg,"Solution Manager Key 生成器") 
msg="系统编号 (2位)" 
SNs=InputBox(msg,"Solution Manager Key 生成器") 
msg="主机名(最多15位)" 
SERVs=InputBox(msg,"Solution Manager Key 生成器") 
KEYs=SolManKeyGen(SIDs, SNs, SERVs) 
msg="Solution Manager Key" 
ENDs=InputBox(msg,"Solution Manager Key 生成器",KEYs) 
'------------------------------------------------------- 
Function SolManKeyGen(SIDst, SNst, SERVst) 
 Dim SIDSNhex(5) 
 Dim SERVhex(15) 
 Dim reshex(5) 
 SIDSNstr = UCase(SIDst) + UCase(SNst) 
 SERVstr  = UCase(SERVst) 
 For arrcnt = 1 To 5 
  SIDSNhex(arrcnt) = Asc(Mid(SIDSNstr, arrcnt, 1)) 
 Next 
 For arrcnt = 1 To Len(SERVstr) 
  SERVhex(arrcnt) = Asc(Mid(SERVstr, arrcnt, 1)) 
 Next 
 For arrcnt = Len(SERVstr) + 1 To 15 
  SERVhex(arrcnt) = 0 
 Next 
 If (Len(SERVstr) > 0) Then 
  If (Len(SERVstr) < 5) Then 
   For arrcnt = Len(SERVstr) + 1 To 5 
    SERVhex(arrcnt) = Asc(" ") 
   Next 
  End If 
 End If 
 If (Len(SERVstr) > 5) Then 
  If (Len(SERVstr) < 10) Then 
   For arrcnt = Len(SERVstr) + 1 To 10 
    SERVhex(arrcnt) = Asc(" ") 
   Next 
  End If 
 End If 
 If (Len(SERVstr) > 10) Then 
  If (Len(SERVstr) < 15) Then 
   For arrcnt = Len(SERVstr) + 1 To 15 
    SERVhex(arrcnt) = Asc(" ") 
   Next 
  End If 
 End If 
 For arrcnt = 1 To 5 
  reshex(arrcnt) = ((((0 Xor SIDSNhex(arrcnt)) Xor SERVhex(arrcnt)) Xor SERVhex(arrcnt + 5)) Xor SERVhex(arrcnt + 10)) 
 Next 
 reshex(1) = reshex(1) Xor 84  Xor 0 
 reshex(2) = reshex(2) Xor 131 Xor 11 
 reshex(3) = reshex(3) Xor 194 Xor 46 
 reshex(4) = reshex(4) Xor 52  Xor 105 
 reshex(5) = reshex(5) Xor 119 Xor 188 
 hexstr = "0123456789ABCDEF" 
 resstr = "" 
 For arrcnt = 1 To 5 
  hihex = reshex(arrcnt) \ 16 
  lohex = reshex(arrcnt) Mod 16 
  resstr = resstr + Mid(hexstr, hihex + 1, 1) + Mid(hexstr, lohex + 1, 1) 
 Next 
 SolManKeyGen = resstr 
End Function