قم بوضع علامة على MSI بحيث يجب تشغيله كحساب مسؤول مرتفع

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

سؤال

لدي CustomAction كجزء من MSI.

يجب تشغيله كحساب مجال يكون أيضًا عضوًا في حساب المسؤولين المحليين.

لا يمكنه استخدام علامة NoImpersonate لتشغيل الإجراء المخصص كـ NT Authority\System لأنه لن يتمكن بعد ذلك من الوصول إلى موارد الشبكة.

في نظام التشغيل Vista/2008 مع تمكين UAC، إذا تم إيقاف تشغيل NoImpersonate، فسيتم تشغيله كمستخدم منفذ ولكن مع الأمر غير مميز الرمز المميز وعدم الوصول إلى الموارد المحلية مثل .installState. راجع بنية UAC

أي شخص يعرف طريقة لأي منهما

  • إجبار MSI على التشغيل باستخدام الرمز المميز بنفس الطريقة التي يعمل بها التشغيل من موجه أوامر مرتفع؟

  • هل تريد إجبار CustomAction على التشغيل بشكل مرتفع (يبدو أن RequireAdministrator في البيان لا يعمل)؟

  • اكتشف ما إذا تم تمكين UAC وإذا لم يتم تشغيله بشكل مرتفع وإذا كان الأمر كذلك، قم بتحذير التثبيت أو إلغاءه؟

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

المحلول

الإجابة على سؤالي الخاص لأي شخص فقير آخر ينظر إلى هذا.

  • لا يمكنك إضافة بيان إلى MSI.يمكنك إضافة SETUP.EXE أو bootstrapper لإغلاق MSI وإظهار ذلك باستخدام requireAdministrator ولكن هذا يتعارض مع بعض فوائد استخدام MSI.

  • لا تعمل إضافة بيان إلى CustomAction لأنه يتم تشغيله من msiexec.exe

الطريقة التي تعاملت بها مع هذا هي تعيين MSIUSEREALADMINDETECTION الخاصية إلى 1 حتى يعمل الشرط المميز فعليًا وأضف شرط التشغيل لـ ذو امتياز الذي يعطي رسالة خطأ حول التشغيل عبر موجه أوامر مرتفع ثم إنهاء التثبيت.

هذا له تأثير جانبي سعيد - عندما يتم تشغيل msi من موجه أوامر مرتفع، يتم تشغيل الإجراءات المخصصة المؤجلة كمستخدم حالي باستخدام رمز مميز كامل للمسؤول (بدلاً من رمز المستخدم القياسي) بغض النظر عن لا انتحال شخصية جلسة.

المزيد من التفاصيل - http://www.microsoft.com/downloads/details.aspx?FamilyID=2cd92e43-6cda-478a-9e3b-4f831e899433

[عدل] - لقد وضعت النص هنا يتيح لك إضافة خاصية MSIUSEREALADMINDETECTION لأن VS ليس لديه القدرة على القيام بذلك ويشعر Orca بالألم.

نصائح أخرى

يجب أن يعمل requireAdministrator في البيان.

يمكنك أيضًا استخدام ملف bootloader .exe الذي يمكنه استخدام ShellExecute مع "RUNAS" كفعل (يمكنك استخدام 7-zip لإنشاء أداة تحميل التشغيل، أو هناك العديد من الطرق الأخرى).

يمكنك إنشاء بسيطة ملف أرشيف sfx لـ msi الملف ببرنامج Winrar وهذه الخيارات:

  • علامة تبويب الإعداد> تشغيل بعد إدخال التنفيذ:اسم ملف msi الخاص بك

  • علامة التبويب خيارات متقدمة > علامة طلب الوصول الإداري خانة الاختيار

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