سؤال

يا قوم،

لقد واجهت مشكلة غريبة في الوقت الحالي مع Visual Studio 2010 MSI ...

عندما أقوم بتشغيل MSI ، فإنه يقوم ببعض المهام ، ثم ينفذ أداة قمنا بإنشائها - ثم تنفذ هذه الأداة بعض الأعمال الأكثر تقدماً التي لم نتمكن من القيام بها في مهمة مخصصة.

المشكلة هنا ، هي عندما تبدأ MSI الأداة المصممة المخصصة الخاصة بي ، فإنها لا تنفذها بنفس بيانات الاعتماد التي أبدأها في MSI (أي تسجيل الدخول الإداري الخاص بي).

هل هناك معلمة يمكنني نقلها إلى MSI لإنفاذ هذا؟ أو ربما يمكنني تمرير بيانات الاعتماد إلى العملية عندما أبدأها؟

بدأت عمليتي في استخدامها Process process = Process.Start(procInfo) لا شيء يتوهم. لقد لاحظت أيضًا القدرة على تمرير اسم المستخدم/كلمة المرور/المجال المعلمة ، ولكن هذا سيختلف اعتمادًا على المستخدم الذي يتم تثبيته - هل يمكن استخراج ذلك من المثبت بطريقة ما؟

أي مساعدة (أو أسئلة) رحب بها.

ديف

تحرير: من أجل الوضوح ... أقوم بتشغيل MSI تحت حساب النطاق الخاص بي ، وأريد أن تعمل عملية مخصصة تحت هذا "السياق". في الوقت الحاضر ، يبدأ (بغض النظر عما إذا كنت أبدأ كمسؤول أم لا) بموجب حساب النظام (بدلاً من mydomain me). أنا أستخدم إصدار Windows Server DataCenter إذا كان ذلك يساعد ...

يجب أن أضيف أيضًا ، أعتقد أن هذه مشكلة في السياسة ، لكن ليس لدي أي فكرة عما يجب التحقق منه/من أين أتحقق ...

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

المحلول

بشكل افتراضي ، يقوم تثبيت Windows بتشغيل إجراءات مخصصة كمستخدم الحالي. إذا كانت MSI مرتفعة ، فسيتم تشغيل الإجراءات المخصصة كمستخدم مرتفع.

يرجى ملاحظة أنه إذا كنت تقوم بتشغيل MSI كمسؤول ، فهذا لا يعني أن الإجراءات المخصصة الخاصة بك سيكون لها امتيازات المسؤول الكاملة. على Vista أو أعلى يمكن لأي مستخدم الحصول على امتيازات المسؤول من خلال الارتفاع.

لذلك إذا كانت الإجراءات المخصصة الخاصة بك تحتاج إلى امتيازات المسؤول ، فتأكد من استخدامها MSIDBCUSTOMACTIONTYPENOIMPersonate العلم حتى يتم تشغيلهم تحت حساب النظام المحلي.

إذا لم تكن هذه هي المشكلة وتحتاج فقط إلى الوصول إلى بيانات المستخدم الحالية ، فهل يمكنك إعطائي المزيد من التفاصيل؟

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