يحصل إلغاء تثبيت MSIEXEC على خطأ UAC ، على الرغم من أن لدي مجموعة حقوق المسؤول

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

  •  30-09-2019
  •  | 
  •  

سؤال

أحاول إنشاء محدث باستخدام MSIEXEC لإلغاء تثبيت برنامج ، ثم تثبيت الإصدار الأحدث.
هذا هو الكود الخاص بي:

command = "/x{[uninstall string here]}";
command += "/qn+ /Le c:\\test\\msilog.txt";
ProcessStartInfo psi = new ProcessStartInfo("msiexec");
psi.Arguments = command;
//psi.UseShellExecute = true;
//psi.Verb = "runas";
Process.Start(psi);

أملك

<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

تم تعيينه في بياني ، ويتم تعيينه كبيان التطبيق. عندما أقوم بتشغيل هذا ، أحصل على مربع المنبثقة التي تقول "فشل AppSetup" ويقول ملف السجل

خطأ 1730. يجب أن تكون مسؤولًا لإزالة هذا التطبيق. لإزالة هذا التطبيق ، يمكنك تسجيل الدخول كمسؤول ، أو الاتصال بمجموعة الدعم الفني للحصول على المساعدة.

ومع ذلك ، إذا قمت بتشغيل CMD كمسؤول ، واكتب في

msiexec /x{[uninstall string here]} /qn+ /Le c:\\test\\msilog.txt

إنه يعمل بشكل جيد وداندي.
ماذا أفتقد هنا؟

(لقد جربت أيضًا إلغاء عدم هذين الخطين أعلاه ، لأن ذلك كان أحد الطرق التي وجدتها كمسؤول ، لكنها تنبثق بعد ذلك في مربع حوار UAC قبل محاولة التنفيذ ، على الرغم من أن /QN تم تعيينه.)

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

المحلول

لرفع عملية تحتاج إلى موافقة المستخدم عليها. إذا تمكنت كل عملية من رفع نفسها دون تفاعل المستخدم ، فسوف تهزم إلى حد ما الغرض من الارتفاع.

لا أعرف السيناريو الكامل الخاص بك ، ولكن إذا تمكنت من تنفيذ التحديث الخاص بك من حساب الخدمة المحلية ، فيجب أن يعمل هذا دون تفاعل المستخدم. هناك بعض الطرق التي تتبادر إلى الذهن عن طريق تثبيت خدمة Windows أو تشغيل مفتاح Run/Runonce لحساب الخدمة المحلية أو استخدام PSEXEC مع -S. بالطبع لإنجاز هذا ، يجب أن يكون لديك الأذونات المناسبة على جهاز العميل.

حظا طيبا وفقك الله.

*شيء آخر: إذا لم تكن قد بحثت في هذا بعد ، فيمكنك استخدام Windows Installer لتحديث التثبيت الخاص بك ولا تحتاج إلى كتابة "Updater" الخاص بك. هناك 3 أنواع مختلفة من التحديثات (تحديث صغير ، ترقية بسيطة ، ترقية رئيسية): http://msdn.microsoft.com/en-us/library/aa370579(vs.85).aspx

تقوم الترقية الرئيسية بإلغاء تثبيت الإصدار السابق وتثبيت الإصدار الأحدث الذي يشبه ما وصفته ، على الرغم من أن التحديثات الصغيرة والترقيات الصغيرة في معظم الحالات تكون أكثر ملاءمة.

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