ืืชืืชื ืืจืืฉืื ื ืืช ืืืืืจ ืืื ื ืฉืื
ืชืื ืืื ืขืืืื ืขื ืืจืขืืื ืฉื ืฉืืจืืช ืืืคืืก ืกืืกืื ืืืขืจืืืช SAP R/3, ืขืืชื ืฉืืื - ืืื ืืืคืขืื ืืช SAP GUI ืขื ืืคืจืืืจืื ืืืจืืฉืื ืืืืคืืคื? ืืืืืื ืฉืืจืขืืื ืืื ืืจืื ืขื ืฉืืืืฉ ืืฉืืจืืช ืืื ืืจื ื, ืชืืืื ืืืืื ืืืงืฉืช SOAP ื-SAP GUI ืืฉืืืืช ืืืชื ืขื ืงืืฉืืจ ืืืฃ ืืื ืืจื ื ืขื ืกืงืจืืคื ืืืืคืืก ืืกืืกืื ืืจืืฉืื ืืช, ืืืืืจ ืืื ืืืฆืื ืืืฉืชืืฉ ืืืืขื ืขื ืืืคืืก ืืกืืกืื ืืืืฆืื ืืืฆืืช ืืกืืกืื ืืจืืฉืื ืืช ืืื, ืื ืื ื ืจืืฆื ืฉืืืฃ ืื ืืืื ืื ืงืืฉืืจ ืืืคืขืืช SAP GUI. ืืชืจ ืขื ืื, ืงืืฉืืจ ืื ืืืืจ ืืคืชืื ืืช ืืืขืจืืช ืืจืฆืืื, ืืจืฆืื, ืขื ืืืืื ืฉืืืช ืืื ืืกื ืืืกืืกืื ืืืช ืืืช: ืืืฉืชืืฉ ืืฆืืจื ืืืื ืืช ืืกืืกืื ืืืฆืจื ืืช ืจืง ืคืขืืืื.
ืืคืขืืช SAP Logon ืื ืืืืชื ืืขื ืืื ืช ืืขื ืืื ื ื, ืืืฉืืจืืฆื ืืช sapgui.exe ืื ืืคืฉืจ ืืื ืืฆืืื ืืช ืืืงืื ืืฉื ืืืฉืชืืฉ, ืืื ืืคืฉืจ ืืื ืืืคืขืื ืืขืจืืช ืื ืืืืืจืช ื-SAP Logon. ืืฆื ืฉื ื, ืืฉืงืช SAP GUI ืขื ืคืจืืืจืื ืฉืจืืจืืชืืื ืฉื ืฉืจืช ืื ืืืืชื ืจืืืื ืืืช ืืืืืื: ืื ืื ืื ื ืคืืชืจืื ืืช ืืืขืื ืฉื ืืืคืืก ืกืืกืื ืฉื ืืฉืชืืฉ, ืื ืกืืืจ ืืื ืื ืฉืืืจ ืืฉ ืื ืืช ืืฉืืจื ืืืจืืฉื ื-SAP Logon, ืขื ืืืืืจืืช ืฉืืื ืฆืจืื, ืืฉื ืืื ืฆืืจื ืืืชืขืกืง ืขื ืฉืื. ืืื ืืืจืืฉืืช ืฉืฆืืื ื ื ืขื ื ืขื ืืื ืืื ืืืืืืืช SAP GUI Shortcut ืืชืืื ืืช sapshcut.exe ืขืฆืื, ืฉืืคืฉืจื ืืืคืขืื ืืช SAP GUI ืืืืฆืขืืช "ืงืืฆืืจ ืืจื" ืกืคืฆืืคื.
ืคืชืจืื ืืืขืื ืืืืชืืช: ืืคืขืืช sapshcut.exe ืืฉืืจืืช ืืืืคืืคื ืืืืฆืขืืช ืืืืืืงื ActiveX:
function openSAPGui(sid, client, user, password) {
var shell = new ActiveXObject("WScript.Shell");
shell.run('sapshcut.exe -system="'+sid+'" -client='+client+' -user="'+user+'" -pw="'+password+'" -language=RU');
}
ืืคืชืจืื ืืจืืข: ืจืืฉืืช, ืื ืขืืื ืจืง ื-Internet Explorer, ืฉื ืืช, ืืื ืืืจืฉ ืืืืจืืช ืืืืื ืืชืืืืืช ืืืคืืคื, ืื ืฉืืืจืืื ืขืฉืื ืืืืืช ืืกืืจ ืืจืืช ืืืืืืื, ืืื ืื ืืืชืจ, ืืืคืืคื ืืฆืื ืืืื ืขื ืืืื ืืคืืื ืืืืจื ืืืฉืชืืฉ:
ืืฆืืชื ืคืชืจืื ืืก' 2 ืืืื ืืจื ื:
ืคืจืืืืงืื ืื ืืชืืื sapgui.exe ืขื ืคืจืืืจ /ืงืืฆืืจ, ืืื ืืืืืง ืื ืฉืื ืื ื ืฆืจืืืื:
ืืืื, ืื ืื ืื ืื ื ืจืืฆืื ืืืฆืืจ ืคืจืืืืงืื ืฉืจืืจืืชื ืืืืืืื (ืืืืืื, Sapshcut), ืื ืืชื ืืืื ืืจืฉืื ืืืชื ืืืืฆืขืืช ืงืืืฅ reg ืืื:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOTsapshcut]
@="sapshcut Handler"
"URL Protocol"=""
[HKEY_CLASSES_ROOTsapshcutDefaultIcon]
@="sapshcut.exe"
[HKEY_CLASSES_ROOTsapshcutshell]
[HKEY_CLASSES_ROOTsapshcutshellopen]
[HKEY_CLASSES_ROOTsapshcutshellopencommand]
@="sapshcut.exe "%1""
ืขืืฉืื, ืื ื ืขืฉื ืงืืฉืืจ ืืืฃ ืืื ืืจื ื ืืืฆืืื ืืช ืืคืจืืืืงืื Sapgui.Shortcut.File ืืืจื ืืืื:
<a href='Sapgui.Shortcut.File: -system=SID -client=200'>SID200</a>
ืื ืื ื ืืืืจืื ืืจืืืช ืืืื ืืื:
ืืืื ื ืจืื ื ืืืจ, ืืื ืืฉืืชื ืืืืฅ ืขื ืืคืชืืจ "ืืคืฉืจ" ืื ื ืจืืืื:
ืืืคืก, ืืืคืืคื ืืคื ืืช ืืงืฉ ืืจืืื ื-%20. ืืืื, ืื ืชืืืื ืืืจืื ืืงืืืื ืืงืื ืืกืคืจื ืืฉืืื ืขื ืกืื ืืืื. ืืืืืจ ืืื ืื ื ืขืื ืืื ืฉืื ืืคืฉืจ ืืขืฉืืช ืคื ืืืื ืืจืืช ืืืคืืคื (ืืื ืคื ื ืขืฉื ืืคื ืืชืงื) - ืืืคืืคื ืื ืืืื ืชืืืื ืืืื, ืืืชืืจืืื ืืคืงืืืืช ืฉื Windows ืื ืขืืื ืขื ืขืจืืื ืืงืืืืื ืืืื. ืืขืื ืืื ืืก ืืื - ืื ืืืืจืืืช ืืืขืืจืช ืืคืจืืืจ, ืืืื ืฉื ืืคืจืืืืงืื ืืืคืืื ืืืขื ืืืก (sapgui.shortcut.file:). ืืชืจ ืขื ืื, ืืืจืืช ืืืชื ืืืืจ sapshcut.exe ืืืื ืืืจืืง ืื ืื ืฉืืื ื ืคืจืืืจ ืขืืืจื (ืืชืืื ืืกืื "-", ืืื ืืฉื, "=" ืืขืจื), ืืืืืจ. ืฉืืจื ืืื "sapgui.shortcut.file: -system=SID"ืื ืขืืืื ืืขืืื, ืื ืืื ืจืืื"sapgui.shortcut.file:-system=SID"ืืืจ ืื ืขืืื.
ืืกืชืืจ ืฉืืืืคื ืขืงืจืื ื ืืฉื ื ืฉืชื ืืคืฉืจืืืืช ืืฉืืืืฉ ืืคืจืืืืงืื URI:
- ืฉืืืืฉ ืืื ืคืจืืืจืื: ืื ื ืืืฆืจืื ืืืืจื ืฉืืื ืฉื ืคืจืืืืงืืืื ืืื ืืืขืจืืืช ืฉืื ื ืืืกืื SIDMANDTืืื AAA200, BBB200 ืืืืื. ืื ืืชื ืจืง ืฆืจืื ืืืคืขืื ืืช ืืืขืจืืช ืืจืฆืืื, ืื ืืืคืฉืจืืช ืื ืืฉืืื, ืืื ืืืงืจื ืฉืื ื ืืื ืื ืืชืืืื, ืฉืื ืืคืืืช ืชืจืฆื ืืืขืืืจ ืืช ืื ืืกืช ืืืฉืชืืฉ, ืื ืื ื ืืชื ืืขืฉืืช ืืืช ืืืจื ืื.
- ืฉืืืืฉ ืืชืืื ืืช ืขืืืคื ืืืชืงืฉืจืืช sapshcut.exe ืื sapgui.exe. ืืืืืช ืฉื ืชืืื ืืช ืื ืคืฉืืื - ืขืืื ืืงืืช ืืช ืืืืจืืืช ืฉืืืคืืคื ืืฉืืจ ืืืื ืืืืฆืขืืช ืคืจืืืืงืื ืืืื ืืจื ื ืืืืคืื ืืืชื ืืืืฆืื ืฉืืืื ืืช ืืงืืืช, ืืืืืจ. ืืืคื ืืช ืื ืงืืื ืืชืืืื ืืืืจื ืืชืืืื (ืืืื ืืคืืื ืื ืชื ืืช ืืืืจืืืช ืืคื ืคืจืืืจืื) ืืืืจ ืงืืจื ื-SAP GUI ืขื ืคืงืืื ื ืืื ื ืืืืืืช. ืืืงืจื ืฉืื ื ืื ืื ืื ืืืืจื ืืชืืื (ืืืื ืื ืืคืืื ืื ืืชืืชื ืืช ืื), ืื ืื ืืกืคืืง ืื ื ืืืืกืืฃ ืืช ืืคืจืืืืงืื ืืื ืืืฉืื ืืืฉืชืืฉ (ืืชืื ืืืืืื ืื ืขืืืื ืืกืืจ, ืื ืื ืขืืืฃ ืื ืืืื ืข ืืชืจืืื ืื), ืืื ืืื ื ืฆืืจื ืืืชืจ ืืืงื ืืช ืืชืืื ืืช ืืืืฉื ืืืืฉื, ืืื ืืืืืื ืื ืืืื ืฉืืื ืื ืชืืขืื ืืืฉืจ ืืชืืื ื ืืืชืงื ืช ืืืืฉ ืืืืฉื.
ืึธืึตื. ืื ื ืื ืืืืืื ืืคืฉืจืืช ืื ืืื ืืชืืืื ืื ื.
ืืฉืื ืืื ืืืจ ืืชืืืชื ืืืฉืื ืฉืื ื ืืฆืืจื ืืืืคืจื ืืืจืขืืื ืืืฉืืง ืืช SAP GUI ืขื ืืคืจืืืจืื ืืืจืืฉืื ืืืืคืืคื, ืืื ืื ืขืื ืื ืืจืขืืื ืฉืืคืฉืจ ืืขืฉืืช ืงืืฆืืจ ืืจื ื-SAP Logon ื ืืขืชืง ืืืชื ืืฉืืืื ืืขืืืื ืฉืื. ืืฉืชืืฉืชื ืืฉืืื ืื ืคืขื ืืืช, ืืื ืืคื ื ืื ืื ืืกืชืืืชื ืกืคืฆืืคืืช ืขื ืงืืืฅ ืืงืืฆืืจ. ืืืชืืจืจ ืฉืืงืืฆืืจ ืืื ืืื ืงืืืฅ ืืงืกื ืจืืื ืขื ืืกืืืืช .ืึฐืึทืชึดืืฉื. ืืื ืชืคืขืื ืืืชื ืขื Windows, SAP GUI ืืืคืขื ืขื ืืคืจืืืจืื ืืืฆืืื ืื ืืงืืืฅ ืื. "ืืื ืื!"
ืืคืืจืื ืฉื ืืงืืืฅ ืืื ืืื ืืขืจื ืืื (ืืืชืื ืฉืื ืืืฆืขื ืขืกืงื ืืขืช ืืืคืขืื, ืืื ืืฉืืืชื ืืืชื):
[System]
Name=SID
Client=200
[User]
Name=
Language=RU
Password=
[Function]
Title=
[Configuration]
GuiSize=Maximized
[Options]
Reuse=0
ื ืจืื ืฉืื ืื ืฉืฆืจืื: ืืืื ืืขืจืืช, ืืงืื, ืฉื ืืฉืชืืฉ ืืืคืืื ืกืืกืื. ืืืคืืื ืคืจืืืจืื ื ืืกืคืื: ืืืชืจืช - ืืืชืจืช ืืืืื, GuiSize - ืืืื ืืืืื ืืคืืขื (ืืกื ืืื ืื ืื) ื ืฉืืืืฉ ืืืืจ - ืืื ืืฉ ืฆืืจื ืืคืชืื ืืืื ืืืฉ ืื ืืืฉืชืืฉ ืืืืื ืฉืืืจ ืคืชืื ืืืืชื ืืขืจืืช. ืืื ืืื ืืืคืืข ื ืืืื ืก - ืืชืืจืจ ืฉืื ื ืืชื ืืืืืืจ ืืช ืืกืืกืื ื-SAP Logon, ืืงื ื ืืกื. ืืชืืจืจ ืฉืื ื ืขืฉื ืืืขืื ืืืืื: ืืื ืืืืกื ืืช ืื ืงืืฆืืจื ืืืจื ืฉื ืืฆืจื ื-SAP Logon ืืงืืืฅ sapshortcut.ini (ืกืืื ื saplogon.ini ืืคืจืืคืื ืืืฉืชืืฉ ืฉื Windows) ืืฉื, ืืืจืืช ืฉืื ืืืฆืคื ืื, ืื ืื ืืืฆืคื ืื ืืืง ืืื ืืื ืจืืฆืื, ืืคืฉืจ ืืคืขื ื ืืืชื. ืืื ืืชื ืืืื ืืคืชืืจ ืืืช ืขื ืืื ืฉืื ืื ืืขืจื ืฉื ืคืจืืืจ ืืื ืืจืืฉืื (ืขืจื ืืจืืจืช ืืืืื ืืื 0):
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USERSoftwareSAPSAPShortcutSecurity]
"EnablePassword"="1"
ืคืขืืื ืื ืืืืืช ืืช ื ืขืืืช ืฉืื ืืกืืกืื ืืืื ื ืืืืคืก ืืฆืืจืช ืงืืฆืืจื ืืืจื ืืื ืืกื ื-SAP:
ืืืืฉืจ ืชืืื ืกืืกืื ืืฉืื ืื, ืืื ืชืืฆื ืืฉืืจื ืืืชืืืื
sapshortcut.ini, ืืื ืืฉืืชื ืืืจืจ ืงืืฆืืจ ืืจื ืืฉืืืื ืืขืืืื, ืืื ืื ืืืคืืข ืฉื - ืืื ืืชื ืืืื ืืืืกืืฃ ืืืชื ืืฉื ืืืืคื ืืื ื. ืืกืืกืื ืืืฆืคื ืช, ืขืืืจ 111111 ืืื ืชืืื ืืืืงืื: PW_49B02219D1F6, ืขืืืจ 222222 - PW_4AB3211AD2F5. ืืื ืื ืื ื ืืชืขื ืืื ืื ืืืชืจ ืืขืืืื ืฉืืกืืกืื ืืื ืืืฆืคื ืช ืืฆืืจื ืืืช, ืืื ืชืืืช ืืืืฉื ืืกืคืฆืืคื, ืืื ื ืืคืก ืืช ืืกืืกืื ืืจืืฉืื ืืช, ืื ื ืืื ืืืฉืชืืฉ ืืขืจื ืืื ืืืืข ืืจืืฉ ืืชืืื ืื. ืืืื, ืื ื ืจืฆื ืืืฉืชืืฉ ืืกืืกืื ืฉื ืืฆืจื ืืืืคื ืืงืจืื, ื ืฆืืจื ืืืืื ืืช ืืืืืืจืืชื ืฉื ืืฆืืคื ืืื. ืืื ืื ืืฉืคืื ืืคื ืืืืืืืืช ืฉื ืืชื ื, ืื ืื ืืืื ืงืฉื ืืขืฉืืช. ืืื, ื-SAP GUI 7.40 ืืฉืื ืืื ื ืขืื ืืืืืืื ืืืืืคืก, ืืื ืืื ืืงืื ืืฆืืจื ื ืืื ื ืงืืืฅ ืขื ืกืืกืื ืืืื.
ืืืืืจ, ืืกืชืืจ ืฉืืืคืืคื ืฆืจืื ืจืง ืืืืืฅ ืขื ืืงืืฉืืจ ืืงืืืฅ ืขื ืกืืืืช .sap ืืืคืืจืื ืืจืฆืื - ืืืื ืืฆืืข ืืคืชืื ืืืชื ืืงืืืฅ ืืื SAP GUI Shortcut (ืืืืคื ืืืขื ืืืืฉื PC ืขื SAP GUI ืืืชืงื) ืืืคืชื ืืืื SAP GUI ืขื ืืคืจืืืจืื ืฉืฆืืื ื (ืื ื-SID ืืืื ืืืงืื ื ืืฆืืื ืืจืฉืืืช ืืื ืืกื ืฉื SAP ืืืืฉื ืื).
ืืื, ืืจืืจ ืฉืืฃ ืืื ืื ืคืฉืื ืืฆืืจ ืงืืฆืื ืืจืืฉ ืืืืืกื ืืืชื ืืืชืจ - ืืฉ ืืืคืืง ืืืชื ืขื ืกืื ืืคืจืืืจืื ืืืจืืฉืื. ืืืืืื, ืืชื ืืืื ืืืฆืืจ ืกืงืจืืคื PHP ืืืฆืืจืช ืงืืฆืืจื ืืจื (sapshcut.php):
<?php
$queries = array();
parse_str($_SERVER['QUERY_STRING'], $queries);
$Title = $queries['Title'];
$Size = $queries['Size'];
$SID = $queries['SID'];
$Client = $queries['Client'];
if($Client == '') { $Client=200; };
$Lang = $queries['Language'];
if($Lang=='') { $Lang = 'RU'; };
$User = $queries['Username'];
if($User<>'') { $Password = $queries['Password']; };
$filename = $SID.$Client.'.sap';
header('Content-disposition: attachment; filename='.$filename);
header('Content-type: application/sap');
echo "[System]rn";
echo "Name=".$SID."rn";
echo "Client=".$Client."rn";
echo "[User]rn";
echo "Name=".$Username."rn";
echo "Language=".$Lang."rn";
if($Password<>'') echo "Password=".$Password."rn";
echo "[Function]rn";
if($Title<>'') {echo "Title=".$Title."rn";} else {echo "Title=ะั
ะพะด ะฒ ัะธััะตะผัrn";};
echo "[Configuration]rn";
if($Size=='max') { echo "GuiSize=Maximizedrn"; };
echo "[Options]rn";
echo "Reuse=0rn";
?>
ืื ืื ืชืฆืืื ืฉื ืืฉืชืืฉ ืืกืืกืื, ืชืงืื ืืช ืืืืื ืืื ืืืืงืฉ ืื ืืกื ืืกืืกืื:
ืื ืชืขืืืจ ืจืง ืืช ืืืชืืืจืืช, ืฉืื ืืื ืืกื ืืืืื ืืฉืื ืืกืืกืื ืืืื ืจืืง. ืื ื ืืชื ืืืฉืชืืฉ ืื ืื ืืกื ืืื ืกืืกืื, ืืื ืืืฉืชืืฉ ืืืืฉื ืืฉ ืืช ืืคืชื EnablePassword ืืจืืฉืื ืืกืขืืฃ [HKEY_CURRENT_USERSoftwareSAPSAPShortcutSecurity] ืืืืืืจ ื-0, ืื ื ืงืื ืืช ืืืชื ืืืืจ. ืืจืง ืื ืืคืชื ืื ืืืืืจ ื-1 ืื ืขืืืจ ืื ืืช ืืฉื ืืื ืืช ืืกืืกืื ืืจืืฉืื ืืช, ืืืขืจืืช ืชืืงืฉ ืืื ืืื ืืืืื ืกืืกืื ืงืืืขื ืืืฉื ืคืขืืืื. ืื ืื ืฉืืืื ื ืฆืจืืืื ืืืฉืื.
ืืชืืฆืื ืืื, ืืฉ ืื ื ืืช ืืกื ืืื ืฉื ืืคืฉืจืืืืช ื ืืฉืืืช ืืืืืฉื ืืื ืืืืืจ ืืขืื:
<html>
<head>
<script>
function openSAPGui(sid, client, user, password) {
var shell = new ActiveXObject("WScript.Shell");
shell.run('sapshcut.exe -system="'+sid+'" -client='+client+' -user="'+user+'" -pw="'+password+'" -language=RU');
}
</script>
</head>
<body>
<a href='' onclick="javascript:openSAPGui('SID', '200', 'test', '');"/>Example 1: Execute sapshcut.exe (ActiveX)<br>
<a href='Sapgui.Shortcut.File: -system=SID -client=200'>Example 2: Open sapshcut.exe (URI)</a><br>
<a href='sapshcut.php?SID=SID&Client=200&User=test'>Example 3: Open file .sap (SAP GUI Shortcut)</a><br>
</body>
</html>
ืืืคืฉืจืืช ืืืืจืื ื ืืชืืืื ืื. ืืื ืืืงืื ืืืคืืง ืงืืฆืืจื ืืจื ืฉื SAP, ืืชื ืืืื ืื ืืืฉืชืืฉ, ืืืฉื, ืืืฆืืจืช ืงืืฆื CMD, ืฉืืคืชืืืชื ืืืคืืคื ืืคืชืื ืขืืืจื ืื ืืช ืืืื ื-SAP GUI. ืืืื ืืืืื (sapguicmd.php) ืืคืขื ืืฉืืจืืช ืืช SAP GUI ืขื ืืืจืืืช ืืืืืืจ ืืืืื, ืืื ืฆืืจื ืืืืืืจ ืืช SAP Logon:
<?php
$queries = array();
parse_str($_SERVER['QUERY_STRING'], $queries);
$Title = $queries['Title'];
$ROUTER = $queries['ROUTER'];
$ROUTERPORT = $queries['ROUTERPORT'];
$HOST = $queries['HOST'];
$PORT = $queries['PORT'];
$MESS = $queries['MESS'];
$LG = $queries['LG'];
$filename = 'SAPGUI_';
if($MESS<>'') $filename = $filename.$MESS;
if($HOST<>'') $filename = $filename.$HOST;
if($PORT<>'') $filename = $filename.'_'.$PORT;
$filename = $filename.'.cmd';
header('Content-disposition: attachment; filename='.$filename);
header('Content-type: application/cmd');
echo "@echo offrn";
echo "chcp 1251rn";
echo "echo ะั
ะพะด ะฒ ".$Title."rn";
echo "set SAP_CODEPAGE=1504rn";
echo 'if exist "%ProgramFiles(x86)%SAPFrontEndSapGuisapgui.exe" set gui=%ProgramFiles(x86)%SAPFrontEndSapGuisapgui.exe'."rn";
echo 'if exist "%ProgramFiles%SAPFrontEndSapGuisapgui.exe" set gui=%ProgramFiles%SAPFrontEndSapGuisapgui.exe'."rn";
echo "set logon=";
if($ROUTER<>'') echo "/H/".$ROUTER;
if($ROUTERPORT<>'') echo "/S/".$ROUTERPORT;
if($MESS<>'') echo "/M/".$MESS;
if($HOST<>'') echo "/H/".$HOST;
if($PORT<>'') echo "/S/".$PORT;
if($LG<>'') echo "/G/".$LG;
echo "rn";
echo '"%gui%" %logon%'."rn";
?>
ืืงืืจ: www.habr.com