Kutanga SAP GUI kubva kubrowser

Ini ndakatanga kunyora chinyorwa ichi mune yangu Π±Π»ΠΎΠ³, kuitira kuti urege kutsvaga uye kuyeuka zvakare gare gare, asi sezvo pasina munhu anoverenga bhurogi, ndaida kugovera ruzivo urwu nemunhu wese, kana mumwe munhu achiona zvichibatsira.

Ndichiri kushanda pane pfungwa yepassword reset sevhisi muSAP R/3 masisitimu, mubvunzo wakamuka - sei kuvhura SAP GUI neinodiwa paramita kubva kubrowser? Sezvo pfungwa iyi yaireva kushandiswa kwesevhisi yewebhu, kutanga kupindura chikumbiro cheSOAP kubva kuSAP GUI uye kutumira email ine chinongedzo kune peji rewebhu ine chinyorwa chekugadzirisa zvakare password kune yekutanga, uyezve kuratidza kumushandisi. meseji nezve yakabudirira password reset uye kuratidza iyi chaiyo yekutanga password, saka ndinoda kuti peji ino ivewo nelink yekuvhura SAP GUI. Uyezve, chinongedzo ichi chinofanira kuvhura iyo inodiwa sisitimu, uye, zviri nani, neiyo login uye password minda yakazadzwa kamwechete: mushandisi anongofanira kuzadza password inobereka kaviri.

Kutanga SAP Logon kwakanga kusingafadzi nokuda kwechinangwa chedu, uye pakushanda sapgui.exe zvakanga zvisingabviri kutsanangura mutengi uye zita remushandisi, asi zvaive zvichibvira kuvhura hurongwa husina kutsanangurwa muSAP Logon. Kune rumwe rutivi, kutanga SAP GUI ne-arbitrary server parameters yakanga isinganyanyi kukosha: kana tiri kugadzirisa dambudziko rekugadzirisa zvakare password yemushandisi, saka angangove atova nemutsara unodiwa muSAP Logon, ane zvigadziriso zvaanoda, uye ipapo. haadi kuvhiringa zvake. Asi izvo zvinodiwa zvakagadziriswa neSAP GUI Shortcut teknolojia uye sapshcut.exe purogiramu pachayo, iyo yakaita kuti zvikwanisike kutanga SAP GUI uchishandisa "shortcut" chaiyo.

Kugadzirisa dambudziko musoro-on: kuvhura sapshcut.exe zvakananga kubva kubrowser uchishandisa chinhu cheActiveX:

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');
}

Mhinduro yacho yakaipa: chekutanga, inoshanda chete muInternet Explorer, chechipiri, inoda zvigadziriso zvakakodzera zvekuchengetedza mubrowser, iyo musangano inogona kurambidzwa padanho renzvimbo, uye kunyangwe ikabvumidzwa, browser inoratidza hwindo rinotyisa. yambiro kumushandisi:

Kutanga SAP GUI kubva kubrowser

Ndakawana mhinduro #2 paInternet: kugadzira yako yewebhu protocol. Inotibvumira kuvhura application yatinoda tichishandisa chinongedzo chinoratidza protocol, iyo isu pachedu tinonyoresa muWindows mune registry muchikamu cheHKEY_CLASSES_ROOT. Sezvo SAP GUI Shortcut ine chikamu chayo muchikamu chino, unogona kuwedzera iyo URL Protocol tambo parameter ine isina chinhu ukoshi:

Kutanga SAP GUI kubva kubrowser

Iyi protocol inotanga sapgui.exe ine parameter /SHORTCUT, ndizvo chaizvo zvatinoda:

Kutanga SAP GUI kubva kubrowser

Zvakanaka, kana kana isu tichida kugadzira inopokana zvachose (semuenzaniso, sapshcut), wobva wainyoresa uchishandisa inotevera reg faira:

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""

Zvino, kana tikaita chinongedzo pane peji rewebhu rinoratidza iyo protocol Sapgui.Shortcut.File Nenzira yakafanana:

<a href='Sapgui.Shortcut.File: -system=SID -client=200'>SID200</a>

Tinofanira kuona hwindo seizvi:

Kutanga SAP GUI kubva kubrowser

Uye zvese zvinoita sezvakanaka, asi kana iwe ukadzvanya pa "Bvumira" bhatani tinoona:

Kutanga SAP GUI kubva kubrowser

Maiwe, bhurawuza rakashandura spacebar kuita %20. Zvakanaka, mamwe mavara anozoiswa encoded mune yavo yenhamba kodhi ine muzana chiratidzo. Uye chinhu chisingafadzi ndechekuti hapana chinogona kuitwa pano padanho rebrowser (zvese zviri pano zvinoitwa zvinoenderana neyakajairwa) - bhurawuza haafarire mavara akadaro, uye muturikiri weWindows command haashande nemakodhi akadaro. Uye imwezve minus - tambo yose inopfuudzwa separameter, kusanganisira zita reprotocol uye kunyange colon (sapgui.shortcut.file:) Uyezve, kunyange zvakafanana sapshcut.exe inogona kurasa zvese zvisiri parameter yayo (inotanga nechiratidzo "-", ipapo zita, "=" uye kukosha), i.e. mutsara wakafanana"sapgui.shortcut.file: -system=SID"icharamba ichishanda, pasina nzvimbo"sapgui.shortcut.file:-system=SID"hazvichashandi.

Zvinoitika kuti, pamusimboti, pane mbiri sarudzo dzekushandisa iyo URI protocol:

  1. Kushandisa pasina paramita: Isu tinogadzira boka rese remaprotocol kune ese edu masisitimu emhando SIDMANT, senge AAA200, BBB200 zvichingoenda zvakadaro. Kana iwe uchingoda kutanga iyo yaunoda sisitimu, saka sarudzo yacho inoshanda chaizvo, asi mune yedu haina kukodzera, nekuti zvirinani iwe ungada kutamisa mushandisi wekupinda, asi izvi hazvigone kuitwa nenzira iyi.
  2. Uchishandisa chirongwa chekuputira kufona sapshcut.exe kana sapgui.exe. Izvo zvakakosha zvechirongwa ichi zviri nyore - zvinofanirwa kutora tambo iyo bhurawuza inoendesa kwairi kuburikidza newebhu protocol uye kuishandura kuita inomiririra iyo Windows inogamuchira, i.e. inoshandura makodhi ese emhando kumashure kuita mavara (pamwe anodhindisa tambo zvinoenderana nemaparamita) uye atofonera SAP GUI nerairo rakavimbiswa. Muchiitiko chedu, zvakare haina kukodzera zvachose (ndosaka ndisina kana kuinyora), nekuti hazvina kukwana kuti isu tiwedzere iyo protocol pamaPC ese evashandisi (mukati medunhu izvi zvichiri zvakanaka, kunyangwe zviri nani dzivisa tsika iyi), asi pano tichada imwe nzvimbo iyo purogiramu paPC, uye zvakare inogara ive nechokwadi chekuti haiendi kana software yaiswazve paPC.

Avo. Isu tinorasawo sarudzo iyi seisina kufanira isu.

Panguva ino ndakanga ndatotanga kufunga kuti ndaizofanira kutaura zvakanaka kune pfungwa yekutangisa SAP GUI nemaparamita anodiwa kubva kubrowser, asi ipapo pfungwa yakauya kwandiri yekuti unogona kuita nzira pfupi muSAP Logon uye. ikopa kune desktop yako. Ndakashandisa nzira iyi kamwechete, asi zvisati zvaitika handina kunyatsotarisa faira rekudimbudzira. Uye zvakazoitika kuti iyi nzira yekudimbudzira ndeye yakajairika mameseji faira ine yekuwedzera .sap. Uye kana iwe ukaimhanyisa paWindows, SAP GUI ichavhura nematanho anotsanangurwa mufaira iri. "Bhingo!"

Mafomati eiyi faira angangoita anotevera (panogonawo kuve nekutengeserana kwakatangwa pakutanga, asi ini ndakasiya):

[System]
Name=SID
Client=200
[User]
Name=
Language=RU
Password=
[Function]
Title=
[Configuration]
GuiSize=Maximized
[Options]
Reuse=0

Zvinoita sekuti zvese zvinodiwa: chiziviso chehurongwa, mutengi, zita rekushandisa uye kunyangwe password. Uye kunyange mamwe ma parameters: musoro wenyaya - hwindo rezita, GuiSize - saizi yehwindo rinomhanya (yakazara skrini kana kwete) uye Shandisazve - ingave yakakosha kuvhura hwindo nyowani kana kushandisa yakatovhurwa neiyo yakafanana system. Asi imwe nuance yakabva yabuda - zvakazoitika kuti password muSAP Logon haigone kuiswa, mutsara wakavharwa. Zvakazoitika kuti izvi zvakaitwa nekuda kwezvikonzero zvekuchengetedza: inochengeta mapfupi ese akagadzirwa muSAP Logon mufaira sapshortcut.ini (Pedyo saplogon.ini muWindows user profile) uye ipapo, kunyange zvazvo akavharidzirwa, haana kunyanya kuvharidzirwa uye, kana achida, anogona kudhindwa. Asi iwe unogona kugadzirisa izvi nekushandura kukosha kweimwe parameter mune registry (iyo default kukosha ndeye 0):

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USERSoftwareSAPSAPShortcutSecurity]
"EnablePassword"="1"

Izvi zvinovhura iyo Password ndima yekupinda pane pfupi nzira yekusika fomu muSAP Logon:

Kutanga SAP GUI kubva kubrowser

Uye kana iwe waisa password mundima iyi, ichaiswa mumutsara unoenderana
sapshortcut.ini, asi kana iwe uchikweva nzira yekudimbudzira kudesktop, haioneke ipapo - asi unogona kuiwedzera ipapo nemaoko. Iyo password yakavharidzirwa, ye111111 ichava sezvizvi: PW_49B02219D1F6, ye222222 - PW_4AB3211AD2F5. Asi isu tinonyanya kufarira chokwadi chekuti password iyi yakavharidzirwa neimwe nzira, yakasununguka kubva kune chaiyo PC, uye kana tikaisa pasiwedhi kune yekutanga, saka tinogona kushandisa imwechete yakagara yazivikanwa kukosha mundima iyi. Zvakanaka, kana tichida kushandisa password yakagadzirwa zvisina tsarukano, isu tichafanirwa kunzwisisa algorithm yeiyi cipher. Asi tichifunga nezvemienzaniso yakapiwa, izvi hazvizove zvakaoma kuita. Nenzira, muSAP GUI 7.40 iyi munda yakanyangarika zvachose kubva pafomu, asi inogamuchira nenzira yakarurama faira ine yakazara-in password.

Izvi zvinoreva kuti mubrowser unongoda kudzvanya pane chinongedzo kune faira ine .sap extension uye yaidiwa fomati - uye ichapa kuvhura sefaira senge SAP GUI Shortcut (zvakasikwa paPC ine SAP GUI yakaiswa) uye ichazarura SAP GUI hwindo rine yakatarwa parameters (kana SID uye vatengi vaviri vari muSAP Logon runyorwa paPC iyi).

Asi, zviri pachena kuti hapana munhu anongogadzira mafaera pamberi uye oachengeta pane saiti - anofanirwa kugadzirwa zvichienderana nematanho anodiwa. Semuenzaniso, unogona kugadzira PHP script kugadzira mapfupi (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";
?>

Kana iwe ukasataura zita rekushandisa uye password, iwe unowana iyo inotevera hwindo ichikumbira kupinda uye password:

Kutanga SAP GUI kubva kubrowser

Kana iwe ukangopfuura chete login, nzvimbo yekupinda ichazadzwa mukati uye password password ichave isina. Kana isu tikapa mushandisi zvese zvekupinda uye password, asi mushandisi paPC ane EnablePassword kiyi mune registry muchikamu che [HKEY_CURRENT_USERSoftwareSAPSAPShortcutSecurity] chakaiswa ku0, tobva tawana chinhu chimwe chete. Uye chete kana kiyi iyi yakaiswa kune 1 uye isu tikapasa ese zita uye yekutanga password, iyo sisitimu ichakurumidza kukukurudzira kuti uise nyowani isingaperi password kaviri. Ndizvo zvataifanira kuwana.

Nekuda kweizvozvo, isu tine inotevera seti yesarudzo dzakatariswa semufananidzo wezvose zviri pamusoro:

<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>

Sarudzo yekupedzisira yakandikodzera. Asi panzvimbo yekugadzira mapfupi eSAP, unogonawo kushandisa, semuenzaniso, kugadzira mafaira eCMD, ayo, kana akavhurwa kubva kune browser, achazarurawo SAP GUI hwindo kwauri. Pazasi pane muenzaniso (sapgucmd.php) tanga zvakananga SAP GUI netambo yakazara yekubatanidza, pasina chikonzero chekuve neSAP Logon yakagadzirirwa:

<?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";
?>

Source: www.habr.com

Voeg