使用 powershell 脚本自动登录 SAP GUI

时间:2021-03-29 06:44:37

标签: powershell sap-gui

我正在尝试编写一个脚本,通过 SAP GUI 自动登录到 SAP 系统。我希望使用下面的脚本自动填充 SAP GUI 字段。

你能告诉我,如果我走对了路吗?我怎样才能让它工作?

#-Begin-----------------------------------------------------------------

 #-Includes------------------------------------------------------------
    ."$PSScriptRoot\COM.ps1"

  $hWSH = Create-Object "Wscript.Shell"

  $hWSH.Popup("testmessage", 2, "goto", 1)
  
  Free-Object $hWSH

  #-Signatures----------------------------------------------------------
    $Sig = @'
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
'@

  # FindWindow function---------------------------------------------
    $Win32 = Add-Type -Namespace Win32 -Name Funcs -MemberDefinition $Sig -PassThru

  #-Set the path to the SAP GUI directory-------------------------------
    $SAPGUIPath = "C:\Program Files (x86)\SAP\FrontEnd\SAPgui\"

  # SAP system ID-----------------------------------------------
    $SID = "test.lan"

  #instance number of the SAP system---------------------------
    $InstanceNo = "10"

  #-Start  SAP GUI---------------------------------------------------
    $SAPGUI = $SAPGUIPath + "sapgui.exe"
    & $SAPGUI $SID $InstanceNo

  #-Wait until the session is available---------------------------------
    While ($Win32::FindWindow("SAP_FRONTEND_SESSION", "SAP") -eq 0) {
      Start-Sleep -Milliseconds 250
    }

  #-Logon to SAP --------------------------------------------
    
    
   
    $user="test"

    
    $SAPGUI.document.getElementById("Benutzer").value= "$user" 
    $SAPGUI.document.getElementById("loginform").submit()


```

1 个答案:

答案 0 :(得分:0)

您可以使用 SAP 快捷方式:

cd "c:\Program Files (x86)\SAP\FrontEnd\SAPgui\"
sapshcut -guiparm="[hostname] [installation number]" -system=[system id] -client=[client] -user=[user name] -pw=[password]

用适当的值替换参数(方括号)。当您第一次执行此命令时(对于一组特定的参数),您将看到一个确认弹出窗口,但您可以禁用该对话框以供将来自动登录。 如果系统 ID 是在 SAPlogon 中创建的,您可以省略参数 -guiparm="[主机名] [安装编号]"。