批量重置SAP用户的初始密码
系统设定初始密码的有效期是3天,项目组担心用户不能及时重置密码导致密码过期,要求重置所有项目参与人员的初始密码。
简单点说,就是帮用户重置初始密码,用初始密码登录系统,系统弹出输入新密码的密码框,输入新密码,然后退出系统。
直接上代码 下面的代码是VBA代码,测试代码前请打开SAP GUI,不然程序会报找不到SAP GUI的程序,找不到程序的入口。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 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 |
1 | Set SAPConn = Applic.OpenConnection( "QAS System" )<br>这里的QAS System 就是打开SAP GUI后,SAP GUI里出现的 SAP系统的描述,不是SID,找了很多资料不支持SID。<br>下图D列就是随机初始密码,E列就是需要重置的密码。 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!