其他分享
首页 > 其他分享> > 批量重置SAP用户的初始密码

批量重置SAP用户的初始密码

作者:互联网

系统设定初始密码的有效期是3天,项目组担心用户不能及时重置密码导致密码过期,要求重置所有项目参与人员的初始密码。

简单点说,就是帮用户重置初始密码,用初始密码登录系统,系统弹出输入新密码的密码框,输入新密码,然后退出系统。

直接上代码 下面的代码是VBA代码,测试代码前请打开SAP GUI,不然程序会报找不到SAP GUI的程序,找不到程序的入口。

Sub change_password()
For i = 3 To Range("A65535").End(xlUp).Row   Set SapGui = GetObject("SAPGUI") '请双击打开SAP GUI,代码这里会找SAPGUI的程序。   Set Applic = SapGui.GetScriptingEngine   Set SAPConn = Applic.OpenConnection("QAS System") ' QAS System是SAP系统的描述信息,不是SID,你本机的SAPGUI的系统描述是什么这里就一摸一样的写。   Set session = SAPConn.Children(0) session.findById("wnd[0]").maximize session.findById("wnd[0]/usr/txtRSYST-MANDT").Text = Sheet1.Range("B" & i).Value session.findById("wnd[0]/usr/txtRSYST-BNAME").Text = Sheet1.Range("C" & i).Value session.findById("wnd[0]/usr/pwdRSYST-BCODE").Text = Sheet1.Range("D" & i).Value session.findById("wnd[0]/usr/pwdRSYST-BCODE").caretPosition = 9 session.findById("wnd[0]").sendVKey 0 session.findById("wnd[1]/usr/pwdRSYST-NCODE").Text = Sheet1.Range("E" & i).Value session.findById("wnd[1]/usr/pwdRSYST-NCOD2").Text = Sheet1.Range("E" & i).Value session.findById("wnd[1]/usr/pwdRSYST-NCOD2").SetFocus session.findById("wnd[1]/usr/pwdRSYST-NCOD2").caretPosition = 9 session.findById("wnd[1]").sendVKey 0 session.findById("wnd[0]/tbar[0]/okcd").Text = "/nex" session.findById("wnd[0]").sendVKey 0 Sheet1.Range("F" & i).Value = "done" Next End Sub
Set SAPConn = Applic.OpenConnection("QAS System")
这里的QAS System 就是打开SAP GUI后,SAP GUI里出现的 SAP系统的描述,不是SID,找了很多资料不支持SID。
下图D列就是随机初始密码,E列就是需要重置的密码。

 

标签:findById,初始密码,wnd,重置,Range,session,usr,SAP
来源: https://www.cnblogs.com/ken-yu/p/16627313.html