كيف يمكنني تشغيل برنامج أو ملف دفعي من جانب العميل؟

StackOverflow https://stackoverflow.com/questions/877774

سؤال

كيف يمكنني تشغيل ملف دفعي على جانب العميل؟ملف إكس؟فقط لفتح البرنامج المثبت مسبقا في جانب العميل؟

[يحرر]

وفيما يتعلق بـ ActiveX، حاولت

    var activeXObj = new ActiveXObject("Shell.Application");
    activeXObj.ShellExecute("C:\\WINDOWS\\NOTEPAD.EXE", "", "", "open", "1");

ولكن هذا لا يعمل.أي اقتراحات؟

هل كانت مفيدة؟

المحلول

ومن جافا سكريبت؟ لا يمكنك. انها خطرا أمنيا. تفكر في ذلك؟ - هل تريد كل موقع لتكون قادرة على تشغيل البرامج على جهاز الكمبيوتر

نصائح أخرى

هل تعني إطلاق برنامج خارجي من خلال نافذة المتصفح باستخدام جافا سكريبت؟ لا يمكنك أن تفعل ذلك! هذا هو الملعون الأمن الثقب الأسود!

<script language="javascript" type="text/javascript">

    function RunEXE(prog) {
        var oShell = new ActiveXObject("WScript.Shell");
        oShell.Run('"' + prog + '"', 1);
    }     
</script>

إذا كان لديك حق التحكم في العميل، فقد ترغب في تثبيت بعض الخدمات الخفية عن بعد من جانب العميل، مثل SSH.

ملاحظة.ومع ذلك، قم باستدعاءه من خلال "رمز الخادم" الخاص بك.

محدث:

لا تثبط.يمكنك بالتأكيد القيام بذلك بطريقة آمنة.

  1. تحتاج أولاً إلى خدمة خفية على العميل والتي ستتولى مهمة استدعاء التطبيق الخاص بك.أنا شخصياً أفضّل إنشاء خادم RPC بسيط كخدمة Windows باستخدام C++ أو Delphi؛ولكن العديد من أنواع الخوادم الأخرى يمكنها أيضًا القيام بهذه المهمة (SSH وApache وTelnet)

  2. ثم قم بإنشاء صفحات ويب تسمح للمستخدم "بتسجيل" خدماته بالمصادقة المناسبة لاستدعاء تلك الخدمة (كلمة المرور، مفتاح الأمان)

  3. عندما تريد استدعاء التطبيق الخاص بك من صفحة الويب على العميل المسجل بالفعل، قم بإجراء اتصال ajax (xmlhttprequest) إلى الخادم الخاص بك.

  4. يجب أن يتحقق الخادم من صحة عنوان IP الطالب بالمعلومات المسجلة.

  5. ثم قم بإجراء استدعاء أمر عن بعد للعميل بالمعلومات المسجلة.

يمكن أن يكون هناك بعض حالات التواصل التي قد لا يعمل فيها هذا المخطط.ومع ذلك، إذا كان لديك حقًا سيطرة على بيئة التنفيذ، فهناك دائمًا بعض الحلول.

وإعادة توجيه العميل إلى HTTP: //yourserver/batchfile.bat . تحت بعض المتصفحات، وهذا سيدفع المستخدم لتشغيل الملف الدفعي.

وإذا كان يتم عرض مشكلة الملف الدفعي في المتصفح تحتاج إلى تعيين Content-Type وContent-Disposition في رأس HTTP بحيث يتم مطالبة المستخدم لإنقاذ (أو تشغيل) ملف بدلا من أن يكون المتصفح عرضه.

وأنت لن تكون قادرة على تشغيل الملف دون OK من المستخدم ولكن هذا لا ينبغي أن يكون مشكلة.

إلقاء نظرة على هذا السؤال بشيء من التفصيل .

وفي الأساس، لا يمكنك. إذا كنت بحاجة إلى إطلاق شيء على جانب العميل، ستحتاج آلية أخرى تماما، ويفترض واحد مع بعض الأمنية بنيت فيها A psexec ملصق السابق ذكرها (<لأ href = "http://technet.microsoft.com/en- لنا / سسنترنلس / bb897553.aspx "يختلط =" نوفولو noreferrer "> http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx )، التي ستعمل الواضح فقط إذا كان لديك الأذونات المناسبة على النظام الهدف، والذي هو تماما خارج المتصفح.

وأساسا، ما كنت طالبا هو BIG، BIG، المشكلة إذا كنت قادرة على القيام بذلك بسهولة.

وكنت قد ننظر إلى اكتف، ولكن أنا لا أعرف ما يحد من هناك على كائن ActiveX في هذه الأيام (وأنا أعلم أن هناك حدودا، ولكن ربما يمكنك العمل داخلها).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top