SAP GUIን ከአሳሽ በማስጀመር ላይ

ይህንን ጽሑፍ መጀመሪያ የጻፍኩት በኔ ውስጥ ነው። ጦማር, በኋላ ላይ እንደገና ላለመፈለግ እና ለማስታወስ, ነገር ግን ማንም ሰው ጦማሩን ስላላነበበ, ይህንን መረጃ ለሁሉም ሰው ማካፈል እፈልጋለሁ, አንድ ሰው ጠቃሚ ሆኖ ካገኘው.

በ SAP R / 3 ስርዓቶች ውስጥ የይለፍ ቃል ዳግም ማስጀመሪያ አገልግሎትን ሀሳብ በሚሰራበት ጊዜ አንድ ጥያቄ ተነሳ - SAP GUIን ከአሳሹ አስፈላጊ መለኪያዎች ጋር እንዴት ማስጀመር እንደሚቻል? ይህ ሃሳብ የድር አገልግሎትን መጠቀምን የሚያመለክት በመሆኑ በመጀመሪያ ከ SAP GUI ለቀረበለት የሳሙና ጥያቄ ምላሽ በመስጠት እና ወደ ድረ-ገጽ የሚያገናኝ ደብዳቤ ከስክሪፕት ጋር በመላክ የይለፍ ቃሉን ወደ መጀመሪያው ለማስጀመር እና ከዚያም ለተጠቃሚው ያሳያል ስለ ስኬታማው የይለፍ ቃል ዳግም ማስጀመር እና ይህን በጣም የመጀመሪያ የይለፍ ቃል ስለማሳየት መልእክት፣ ከዚያ ይህ ገጽ SAP GUIን ለማስጀመር አገናኝ እንዲኖረው እፈልጋለሁ። በተጨማሪም ፣ ይህ አገናኝ የሚፈለገውን ስርዓት መክፈት አለበት ፣ እና በተለይም የመግቢያ እና የይለፍ ቃል በአንድ ጊዜ ሲሞሉ ተጠቃሚው ምርታማውን የይለፍ ቃል ሁለት ጊዜ ብቻ መሙላት አለበት።

የ SAP Logonን ማስጀመር ለዓላማችን አስደሳች አልነበረም፣ እና sapgui.exe ን ስናሄድ የደንበኛውን እና የተጠቃሚውን ስም መግለጽ አልተቻለም፣ ነገር ግን በ SAP Logon ውስጥ ያልተገለጸ ስርዓት መጀመር ተችሏል። በሌላ በኩል ፣ SAP GUI በዘፈቀደ የአገልጋይ መለኪያዎች ማስጀመር በተለይ ጠቃሚ አልነበረም-የተጠቃሚን የይለፍ ቃል እንደገና የማስጀመር ችግር እየፈታን ከሆነ ፣ ምናልባት እሱ በ SAP Logon ውስጥ አስፈላጊውን መስመር ከሚያስፈልገው መቼቶች ጋር እና እዚያ አለው ። ከራሱ ጋር መበላሸት አያስፈልግም. ነገር ግን የተገለጹት መስፈርቶች በ SAP GUI አቋራጭ ቴክኖሎጂ እና በ 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 ውስጥ ብቻ ነው የሚሰራው, ሁለተኛ, በአሳሹ ውስጥ ተገቢ የደህንነት ቅንብሮችን ይፈልጋል, ይህም በድርጅቱ ውስጥ በጎራ ደረጃ ሊከለከል ይችላል, እና ቢፈቀድም, አሳሹ አስፈሪ መስኮትን ያሳያል. ለተጠቃሚው ማስጠንቀቂያ፡-

SAP GUIን ከአሳሽ በማስጀመር ላይ

በይነመረብ ላይ መፍትሄ ቁጥር 2 አገኘሁ፡- የራስዎን የድር ፕሮቶኮል መፍጠር. የሚያስፈልገንን አፕሊኬሽን ለማስጀመር የሚፈቅደውን ፕሮቶኮሉን የሚያመለክተው እኛ እራሳችን በዊንዶውስ ውስጥ በ HKEY_CLASSES_ROOT ክፍል መዝገብ ውስጥ የምንመዘግበው ነው። SAP GUI አቋራጭ በዚህ ክፍል ውስጥ የራሱ ንዑስ ክፍል ስላለው የዩአርኤል ፕሮቶኮል ሕብረቁምፊ መለኪያን በባዶ እሴት ማከል ይችላሉ፡

SAP GUIን ከአሳሽ በማስጀመር ላይ

ይህ ፕሮቶኮል ይጀምራል sapgui.exe ከመለኪያ ጋር /አቋራጭበትክክል የምንፈልገው፡-

SAP GUIን ከአሳሽ በማስጀመር ላይ

ደህና፣ ወይም ሙሉ በሙሉ የዘፈቀደ ፕሮቶኮልን ማድረግ ከፈለግን (ለምሳሌ፣ 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.አቋራጭ.ፋይል በተመሳሳይ መልኩ፡-

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

እንደዚህ ያለ መስኮት ማየት አለብን.

SAP GUIን ከአሳሽ በማስጀመር ላይ

እና ሁሉም ነገር ጥሩ ይመስላል ፣ ግን “ፍቀድ” የሚለውን ቁልፍ ሲጫኑ እናያለን-

SAP GUIን ከአሳሽ በማስጀመር ላይ

ውይ፣ አሳሹ የጠፈር አሞሌውን ወደ %20 ቀይሮታል። ደህና፣ ሌሎች ቁምፊዎችም በመቶኛ ምልክት ወደ ራሳቸው የቁጥር ኮድ ይመደባሉ። እና በጣም ደስ የማይል ነገር እዚህ በአሳሽ ደረጃ ምንም ነገር ማድረግ አይቻልም (እዚህ ሁሉም ነገር በደረጃው መሰረት ነው የሚከናወነው) - አሳሹ እንደዚህ አይነት ቁምፊዎችን አይወድም, እና የዊንዶውስ ትዕዛዝ አስተርጓሚ ከእንደዚህ አይነት ኢንኮድ ዋጋዎች ጋር አይሰራም. እና አንድ ተጨማሪ ሲቀነስ - መላው ሕብረቁምፊ የፕሮቶኮሉን ስም እና ሌላው ቀርቶ ኮሎንን ጨምሮ እንደ ልኬት ይተላለፋል (sapgui.አቋራጭ.ፋይል፡-). ከዚህም በላይ, ተመሳሳይ ቢሆንም sapshcut.exe ለእሱ መመዘኛ ያልሆነውን ሁሉ መጣል ይችላል (በምልክቱ "-" ይጀምራል ፣ ከዚያ ስሙ ፣ "=" እና እሴት) ፣ ማለትም። እንደ "መስመርsapgui.shortcut.file: -system=SID"አሁንም ይሰራል ከዚያም ያለ ቦታ"sapgui.shortcut.file:-system=SID"ከአሁን በኋላ አይሰራም።

በመርህ ደረጃ የዩአርአይ ፕሮቶኮልን ለመጠቀም ሁለት አማራጮች አሉ-

  1. ያለ መመዘኛዎች መጠቀም፡ ለሁሉም አይነት ስርዓቶቻችን ሙሉ ፕሮቶኮሎችን እንፈጥራለን ሲዲማንት, አይነት ኤኤስኤኤ 200, ቢቢቢ200 እናም ይቀጥላል. የሚፈለገውን ስርዓት ለመጀመር ብቻ ከፈለጉ አማራጩ በጣም ሊሠራ የሚችል ነው, ነገር ግን በእኛ ሁኔታ ተስማሚ አይደለም, ምክንያቱም ቢያንስ የተጠቃሚውን መግቢያ ማስተላለፍ ስለሚፈልጉ, ግን ይህ በዚህ መንገድ ሊከናወን አይችልም.
  2. ለመደወል ጥቅል ፕሮግራምን በመጠቀም sapshcut.exe ወይም sapgui.exe. የዚህ ፕሮግራም ይዘት ቀላል ነው - አሳሹ የሚያስተላልፈውን ሕብረቁምፊ በድር ፕሮቶኮል በኩል ወስዶ ዊንዶውስ ወደ ሚቀበለው ውክልና መቀየር አለበት, ማለትም. ሁሉንም የቁምፊ ኮዶች ወደ ቁምፊዎች ይለውጣል (ምናልባት ገመዱን በመለኪያዎች መሠረት ይተነትናል) እና አስቀድሞ SAP GUI በተረጋገጠ ትክክለኛ ትእዛዝ ይደውላል። በእኛ ሁኔታ ፣ እንዲሁም ሙሉ በሙሉ ተስማሚ አይደለም (ለዚህም ነው እኔ እንኳን ያልፃፍኩት) ፣ ምክንያቱም ፕሮቶኮሉን በሁሉም የተጠቃሚ ፒሲዎች ላይ ማከል ለእኛ በቂ ስላልሆነ (በጎራ ውስጥ ይህ አሁንም ትክክል ነው ፣ ምንም እንኳን የተሻለ ቢሆንም) ይህንን አሰራር ያስወግዱ) ፣ ግን እዚህ ፕሮግራሙን በፒሲ ላይ ተጨማሪ ቦታ እንፈልጋለን ፣ እና እንዲሁም ሶፍትዌሩ በፒሲው ላይ እንደገና ሲጫን በቋሚነት እንደማይጠፋ ያረጋግጡ።

እነዚያ። ይህንን አማራጭ ለእኛ የማይመች ነው ብለን እንጥላለን።

በዚህ ጊዜ SAP GUIን ከአሳሹ አስፈላጊ መለኪያዎች ጋር የማስጀመር ሀሳብን መሰናበት እንዳለብኝ ማሰብ ጀመርኩ ፣ ግን ከዚያ በኋላ በ SAP Logon ውስጥ አቋራጭ ማድረግ እንደሚችሉ ሀሳቡ ታየኝ። ወደ ዴስክቶፕዎ ይቅዱት. ይህንን ዘዴ አንድ ጊዜ ተጠቀምኩ, ነገር ግን ከዚያ በፊት የአቋራጭ ፋይሉን በተለይ አልተመለከትኩም. እና ይህ አቋራጭ ከቅጥያው ጋር መደበኛ የጽሑፍ ፋይል እንደሆነ ታወቀ .ሳፕ. እና በዊንዶውስ ላይ ካስኬዱት, 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 በዊንዶውስ ተጠቃሚ ፕሮፋይል) እና እዚያ, ምንም እንኳን የተመሰጠሩ ቢሆኑም, በጣም ጠንካራ አልተመሰጠሩም እና ከተፈለገ ዲክሪፕት ሊደረጉ ይችላሉ. ነገር ግን በመዝገቡ ውስጥ ያለውን የአንድ ግቤት እሴት በመቀየር ይህንን መፍታት ይችላሉ (ነባሪው እሴቱ ነው። 0):

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

ይህ በSAP Logon ውስጥ ባለው አቋራጭ የመፍጠር ቅጽ ላይ ለመግባት የይለፍ ቃል መስኩን ይከፍታል።

SAP GUIን ከአሳሽ በማስጀመር ላይ

እና በዚህ መስክ ውስጥ የይለፍ ቃል ሲያስገቡ በተዛማጅ መስመር ውስጥ ይቀመጣል
sapshortcut.ini, ነገር ግን አቋራጭን ወደ ዴስክቶፕ ሲጎትቱ, እዚያ አይታይም - ግን እዚያ እራስዎ ማከል ይችላሉ. የይለፍ ቃሉ የተመሰጠረ ነው፣ ለ111111 እንደሚከተለው ይሆናል፡- PW_49B02219D1F6፣ ለ222222 - PW_4AB3211AD2F5። ነገር ግን ይህ የይለፍ ቃል ከተለየ ፒሲ ነፃ በሆነ መንገድ ኢንክሪፕት የተደረገ ስለመሆኑ የበለጠ ፍላጎት አለን እና የይለፍ ቃሉን ወደ መጀመሪያው ካስጀመርነው በዚህ መስክ ውስጥ አንድ ቀድሞ የታወቀ እሴት መጠቀም እንችላለን። ደህና፣ በዘፈቀደ የተፈጠረ የይለፍ ቃል ለመጠቀም ከፈለግን፣ የዚህን ምስጢራዊ ስልተ ቀመር መረዳት አለብን። ነገር ግን በተሰጡት ምሳሌዎች በመመዘን ይህን ለማድረግ አስቸጋሪ አይሆንም. በነገራችን ላይ በ SAP GUI 7.40 ይህ መስክ ከቅጹ ላይ ሙሉ በሙሉ ጠፋ, ነገር ግን የተሞላ የይለፍ ቃል ያለው ፋይል በትክክል ይቀበላል.

ያም ማለት በአሳሹ ውስጥ የፋይል አገናኙን ከ .sap ቅጥያው እና ከተፈለገው ቅርጸት ጋር ጠቅ ማድረግ ብቻ ያስፈልግዎታል - እና እንደ SAP GUI አቋራጭ (በተፈጥሮ በፒሲ ላይ) እንደ ፋይል ለመክፈት ያቀርባል ከ SAP GUI ጋር) እና ከተገለጹት መመዘኛዎች ጋር የ SAP GUI መስኮት ይከፍታል (የ SID እና ደንበኛ ጥንድ በዚህ ፒሲ ላይ በ SAP Logon ዝርዝር ውስጥ ካሉ)።

ነገር ግን ማንም ሰው በቀላሉ ፋይሎችን አስቀድሞ እንደማይፈጥር እና በጣቢያው ላይ እንደሚያከማች ግልጽ ነው - አስፈላጊ በሆኑት መለኪያዎች መሰረት መፈጠር አለባቸው. ለምሳሌ፣ አቋራጮችን ለመፍጠር የ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";
?>

የተጠቃሚ ስም እና የይለፍ ቃል ካልገለጹ የሚከተለውን መግቢያ እና የይለፍ ቃል የሚጠይቅ መስኮት ያገኛሉ።

SAP GUIን ከአሳሽ በማስጀመር ላይ

መግቢያውን ብቻ ካለፉ የመግቢያ መስኩ ይሞላል እና የይለፍ ቃል መስኩ ባዶ ይሆናል። ለተጠቃሚው ሁለቱንም መግቢያ እና የይለፍ ቃል ከሰጠነው፣ ነገር ግን በፒሲ ላይ ያለው ተጠቃሚ በ[HKEY_CURRENT_USERSoftwareSAPSAPShortcutSecurity] ክፍል 0 ተቀናጅቶ ባለው መዝገብ ውስጥ የEnablePassword ቁልፍ አለው፣ ከዚያ ተመሳሳይ ነገር እናገኛለን። እና ይህ ቁልፍ ወደ 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 Logonን ማዋቀር ሳያስፈልግ የ SAP GUIን ከሙሉ የግንኙነት ሕብረቁምፊ ጋር በቀጥታ ያስጀምሩ፡

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

ምንጭ: hab.com

አስተያየት ያክሉ