سؤال

لدينا برنامج تثبيت يعمل في بيرل 32 بت. يحتاج هذا البرنامج للحصول على معلومات حول موارد الكتلة، لذلك يعمل Cluster.exe (باستخدام Backticks) وتحليل إخراجه.

على Windows Server 2003، سارت ذلك بشكل جيد، كإصدار 32 بت من Cluster.exe موجود تحت SYSWOW64. ومع ذلك، فإن مثل هذا الإصدار 32 بت غير موجود على Windows Server 2008، وبالتالي فإن تشغيل Clusters.exe يقول إنه لا يمكنه العثور على مثل هذا القابل للتنفيذ، حيث تبدو عملية 32 بت بموجب SYSWOW64.

هل يمكن لأي شخص أن يفكر بطريقة ما يمكننا تجاوز هذه المشكلة والحصول على معلومات مورد الكتلة؟ هناك طريقة يدوية واحدة هي نسخ الإصدار 64 بت من cmd.exe من system32، ثم قم بتشغيلها باستخدام "/ c Cluster.exe" الذي سيبدأ Cluster.exe 64 بت ضمن System32. (لن يعمل نسخ Cluster.exe بشكل جيد، لأنه لا يمكن العثور على ذاكرة التخزين المؤقت العنقودي.) ومع ذلك، فإن هذا جيد فقط كحل أدبي، وليس كحل لجميع المستخدمين.

هل هناك طريقة أخرى للتسبب في بدء Windows Cluster.exe 64 بت؟

شكرا،
splintor.

ملاحظة
كان سؤال مماثل طلب عنها قبل شهر، لكن لم أحصل على إجابة حقيقية.

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

المحلول

لقد وجدت اثنين من الحلول الممكنة: واحد هو كتابة تطبيق صغير 64 بت يسمى Cluster.exe الذي يستدعي ببساطة٪ SystemRoot٪ System32 Cluster.exe (باستخدام النظام ())، ووضعه تحت٪ systemroot٪ syswow64. نظرا لأنه تطبيق 64 بت، سيتم استدعاء تطبيق Cluster.exe الصحيح 64 بت.

حل آخر هو استخدام إعادة توجيه التفسير (كما هو موضح هنا)، لذلك نحن الآن نتحقق - إذا٪ systemroot٪System32.Cluster.exe موجود، نستخدمه، آخر إذا٪ SystemRoot٪sysnative.cluster.exe موجودنا نستخدمها، وإلا نستخدم cluster.exe عادي.

ملاحظة: هذا يشبه جدا مشكلة Telnet.exe هذه هذا فقط أجاب.

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