E qala SAP GUI ho tsoa ho sebatli

Ke ile ka qala ho ngola sehlooho sena bukeng ea ka blog, e le hore u se ke ua batla le ho hopola hape hamorao, empa kaha ha ho motho ea balang blog, ke ne ke batla ho arolelana tlhahisoleseding ena le bohle, haeba motho e mong a e fumana e le molemo.

Ha o ntse o sebetsa mohopolong oa ts'ebeletso ea ho seta phasewete lits'ebetsong tsa SAP R/3, ho ile ha hlaha potso - mokhoa oa ho qala SAP GUI ka li-parameter tse hlokahalang ho tsoa ho sebatli? Kaha khopolo ena e ne e bolela tšebeliso ea tšebeletso ea websaete, pele ho arabela kopo ea SEAP e tsoang ho SAP GUI le ho romela lengolo le nang le sehokelo sa leqephe la websaete le nang le script bakeng sa ho tsosolosa phasewete ho ea pele, ebe o bontša mosebedisi. molaetsa o mabapi le katleho ea ho tsosolosa phasewete le ho bonts'a phasewete ena ea pele, joale ke rata hore leqephe lena le be le sehokelo sa ho qala SAP GUI. Ho feta moo, sehokelo sena se lokela ho bula sistimi e lakatsehang, 'me, ka ho khetheha, ka libaka tsa ho kena le tsa password tse tlatsitsoeng hang-hang: mosebelisi o tla tlameha feela ho tlatsa phasewete e hlahisang habeli.

Ho qala SAP Logon ho ne ho sa thahaselle morero oa rona, 'me ha ho sebetsa sapgui.exe ho ne ho ke ke ha khoneha ho hlalosa lebitso la mofani le mosebedisi, empa ho ne ho ka khoneha ho qala tsamaiso e sa hlalosoang ho SAP Logon. Ka lehlakoreng le leng, ho qala SAP GUI ka li-parameter tsa seva e ikemetseng e ne e se ea bohlokoa ka ho khetheha: haeba re rarolla bothata ba ho tsosolosa phasewete ea mosebedisi, mohlomong o se a ntse a e-na le mohala o hlokahalang ho SAP Logon, ka litlhophiso tseo a li hlokang, 'me moo. ha ho hlokahale hore a ikopanye le tsa hae. Empa litlhoko tse boletsoeng li ile tsa finyelloa ke thekenoloji ea SAP GUI Shortcut le lenaneo la sapshcut.exe ka boeona, le entseng hore ho khonehe ho qala SAP GUI ho sebelisa "shortcut" e itseng.

Ho rarolla bothata ka ho toba: ho qala sapshcut.exe ka kotloloho ho tsoa ho sebatli u sebelisa ntho ea 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');
}

Tharollo e mpe: pele, e sebetsa feela ho Internet Explorer, ea bobeli, e hloka litlhophiso tse nepahetseng tsa ts'ireletso ho sebatli, seo mokhatlong o ka thibeloang boemong ba sebaka sa marang-rang, mme le haeba se lumelloa, sebatli se bonts'a fensetere ka ts'abo e tšosang. temoso ho mosebelisi:

E qala SAP GUI ho tsoa ho sebatli

Ke fumane tharollo #2 Marang-rang: ho iketsetsa protocol ea hau ea webo. E re lumella ho qala ts'ebeliso eo re e hlokang re sebelisa sehokelo se bonts'ang protocol, eo rona ka borona re e ngolisang ho Windows registry karolong ea HKEY_CLASSES_ROOT. Kaha SAP GUI Shortcut e na le karoloana ea eona karolong ena, o ka eketsa parameter ea mohala oa URL Protocol ka boleng bo se nang letho moo:

E qala SAP GUI ho tsoa ho sebatli

Protocol ena e qala sapgui.exe e nang le parameter /KOKOTANE, ke sona seo re se hlokang hantle:

E qala SAP GUI ho tsoa ho sebatli

Che, kapa haeba re batla ho etsa protocol e sa lumellaneng (mohlala, sapshcut), ebe o ka e ngolisa o sebelisa faele e latelang ea 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""

Joale, haeba re etsa sehokelo leqepheng la webo le bonts'ang protocol Sapgui.Shortcut.File Ka mokhoa o ts'oanang:

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

Re lokela ho bona fensetere e kang ena:

E qala SAP GUI ho tsoa ho sebatli

'Me tsohle li bonahala li le ntle, empa ha u tobetsa konopo ea "Lumella" rea bona:

E qala SAP GUI ho tsoa ho sebatli

Oops, sebatli se fetotse sebaka sa sebaka ho ba %20. Le ha ho le joalo, litlhaku tse ling le tsona li tla kengoa khoutu ea tsona ea linomoro ka lets'oao la liperesente. 'Me ntho e sa thabiseng ka ho fetisisa ke hore ha ho letho le ka etsoang mona boemong ba sebapali (ntho e' ngoe le e 'ngoe mona e etsoa ho ea ka mokhoa o tloaelehileng) - sebapali ha se rate litlhaku tse joalo,' me mofetoleli oa taelo ea Windows ha a sebetse ka litekanyetso tse joalo tse kentsoeng. 'Me ho tlosa e' ngoe hape - khoele eohle e fetisitsoe e le parameter, ho kenyelletsa le lebitso la protocol esita le colon (sapgui.shortcut.file:). Ho feta moo, le hoja ho tšoana sapshcut.exe e ka lahla ntho e 'ngoe le e' ngoe eo e seng parameter bakeng sa eona (e qala ka letšoao "-", ebe lebitso, "=" le boleng), i.e. mola o kang "sapgui.shortcut.file: -system=SID"e ntse e tla sebetsa, ebe ha e na sebaka"sapgui.shortcut.file:-system=SID"ha e sa sebetsa.

Hoa fumaneha hore, ha e le hantle, ho na le likhetho tse peli tsa ho sebelisa protocol ea URI:

  1. Ho sebelisa ntle le liparamente: Re theha sehlopha sa liprothokholo bakeng sa litsamaiso tsohle tsa rona tsa mofuta SIDMANT, joalo ka EAA200, BBB200 joalo joalo. Haeba o hloka feela ho qala sistimi e lakatsehang, khetho e ea sebetsa, empa molemong oa rona ha ea lokela, hobane bonyane o ka rata ho fetisetsa ho kena ha mosebelisi, empa sena se ke ke sa etsoa ka tsela ena.
  2. Ho sebelisa lenaneo la wrapper ho letsetsa sapshcut.exe kapa sapgui.exe. Ntho ea bohlokoa ea lenaneo lena e bonolo - e tlameha ho nka khoele eo sebapali se e fetisetsang ho eona ka protocol ea marang-rang ebe e e fetola setšoantšo seo Windows e se fumanang, ke hore. e fetola likhoutu tsohle hore e be litlhaku (mohlomong e be e arole khoele ho ea ka mekhahlelo) mme e se e letsetsa SAP GUI ka taelo e nepahetseng e netefalitsoeng. Tabeng ea rona, e boetse e sa tšoanelehe ka ho feletseng (ke ka lebaka leo ke sa kang ka e ngola), hobane ha hoa lekana hore re kenye protocol ho li-PC tsohle tsa basebelisi (ka har'a sebaka sena se ntse se nepahetse, le hoja ho le molemo ho e sebelisa. qoba mokhoa ona), empa mona re tla hloka ho beha lenaneo le eketsehileng ho PC, hape re tiise hore kamehla ha e tsamaee ha software e tsosolosoa ho PC.

Tseo. Hape re lahla khetho ena kaha ha e ea re tšoanela.

Ka nako ena ke ne ke se ke ntse ke qala ho nahana hore ke tla tlameha ho lumelisa mohopolo oa ho qala SAP GUI ka li-parameter tse hlokahalang ho tsoa ho sebatli, empa joale mohopolo o ile oa hlaha ho 'na oa hore o ka etsa tsela e khuts'oane ho SAP Logon le e kopitse ho komporo ea hau. Ke sebelisitse mokhoa ona hang, empa pele ho moo ha kea ka ka sheba ka ho khetheha faele e khuts'oane. Mme ho ile ha fumaneha hore tsela ena e khuts'oane ke faele e tloaelehileng ea mongolo e nang le katoloso .sap. 'Me haeba u e tsamaisa ho Windows, SAP GUI e tla qala ka li-parameter tse boletsoeng faeleng ena. "Bingo!"

Sebopeho sa faele ena se batla se le se latelang (ho ka 'na ha e-ba le transaction e qalileng qalong, empa ke e tlohetse):

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

Ho bonahala eka ntho e 'ngoe le e' ngoe e hlokahalang: sekhetho sa sistimi, moreki, lebitso la mosebelisi esita le password. Le li-parameter tse eketsehileng: Title - sehlooho sa fensetere, GuiSize - boholo ba fensetere e sebetsang (skrine e felletseng kapa che) le Sebelisa hape - hore na hoa hlokahala ho bula fensetere e ncha kapa ho sebelisa e seng e butsoe ka tsamaiso e tšoanang. Empa hang-hang ho ile ha hlaha nuance - ho ile ha fumaneha hore phasewete ho SAP Logon e ke ke ea behoa, mohala o ne o thibetsoe. Ho ile ha fumaneha hore sena se entsoe ka mabaka a tšireletso: e boloka likhutšoane tsohle tse entsoeng ka SAP Logon ka faele sapshortcut.ini (Haufi saplogon.ini profilong ea mosebelisi oa Windows) mme moo, leha li patiloe, ha lia ngolisoa ka thata haholo, 'me, haeba li lakatsa, li ka hlakoloa. Empa o ka rarolla sena ka ho fetola boleng ba paramente e le 'ngoe ho registry (boleng ba kamehla ke 0):

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

Sena se notlolla sebaka sa Phasewete bakeng sa ho kena foromong ea ho theha tsela e khuts'oane ho SAP Logon:

E qala SAP GUI ho tsoa ho sebatli

'Me ha u kenya phasewete tšimong ena, e tla behoa moleng o lumellanang
sapshortcut.ini, empa ha o hula tsela e khaoletsang komporong ea hau, ha e hlahe moo - empa u ka e eketsa moo ka letsoho. Lekunutu le kentsoe, bakeng sa 111111 e tla ba ka tsela e latelang: PW_49B02219D1F6, bakeng sa 222222 - PW_4AB3211AD2F5. Empa re thahasella haholo taba ea hore phasewete ena e patiloe ka tsela e le 'ngoe, e ikemetseng ho PC e itseng,' me haeba re seta phasewete ho ea pele, re ka sebelisa boleng bo le bong bo tsejoang pele tšimong ena. Hantle, haeba re batla ho sebelisa phasewete e entsoeng ka tšohanyetso, re tla tlameha ho utloisisa algorithm ea cipher ena. Empa ho latela mehlala e fanoeng, sena se ke ke sa e-ba thata ho se etsa. Ka tsela, ho SAP GUI 7.40 tšimo ena e ile ea nyamela ka ho feletseng ho tloha foromo, empa ka nepo e amohela faele e nang le password e tletseng.

Ke hore, ho hlaha hore ho sebatli u hloka feela ho tobetsa sehokelo ho faele e nang le katoloso ea .sap le sebopeho se lakatsehang - mme e tla fana ka ho e bula e le faele e kang SAP GUI Shortcut (ka tlhaho ho PC e nang le SAP GUI e kentsoeng) 'me e tla bula fensetere ea SAP GUI e nang le litekanyetso tse boletsoeng (haeba SID le bareki ba babeli ba le lethathamong la SAP Logon ho PC ena).

Empa, ho hlakile hore ha ho motho ea tla etsa lifaele esale pele mme a li boloke setšeng - li tlameha ho hlahisoa ho latela litekanyo tse hlokahalang. Mohlala, o ka etsa sengoloa sa PHP ho hlahisa likhutšoane (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";
?>

Haeba u sa hlalose lebitso la mosebelisi le password, u tla fumana fensetere e latelang e kopang ho kena le password:

E qala SAP GUI ho tsoa ho sebatli

Haeba u fetisa feela ho kena, sebaka sa ho kena se tla tlatsoa 'me sebaka sa password se tla be se se na letho. Haeba re fa mosebelisi ho kena le phasewete, empa mosebelisi ho PC o na le senotlolo sa EnablePassword ho ngolisoang karolong ea [HKEY_CURRENT_USERSoftwareSAPSAPShortcutSecurity] e behiloeng ho 0, ebe re fumana ntho e tšoanang. 'Me hafeela senotlolo sena se behiloe ho 1' me re fetisa lebitso le password ea pele, tsamaiso e tla u susumelletsa hang-hang hore u kenye phasewete e ncha e sa feleng habeli. Ke seo re neng re hloka ho se fumana.

Ka lebaka leo, re na le sete e latelang ea likhetho tse nahanoang e le papiso ea tsohle tse kaholimo:

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

Khetho ea ho qetela e ne e ntšoanela. Empa ho e-na le ho hlahisa likhutšoane tsa SAP, u ka boela ua sebelisa, ka mohlala, ho hlahisa lifaele tsa CMD, tseo, ha li buloa ho tswa ho sebapali, li tla boela li u bulele fensetere ea SAP GUI. Ka tlase ke mohlala (sapgucmd.php) qala SAP GUI ka ho toba ka khoele e feletseng ea khokahanyo, ntle le tlhokahalo ea ho ba le SAP Logon e lokiselitsoeng:

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

Eketsa ka tlhaloso