سؤال

كتبت مجموعة من اختبارات الوحدة لتغطية قراءة/كتابة سجل Windows. يستخدمون Cregkey ATL API.

عملت هذه بشكل جيد على جهاز سطح المكتب الخاص بي من XP Pro ، ولكن عندما تم تشغيل الاختبارات على جهاز الإنشاء - خادم Windows 2008 X64 - تفشل الاختبارات مع ERROR_ACCESS_DENIED عند محاولة إنشاء مفتاح عبر خلق.

ينتمي المستخدم الذي تم تسجيله إلى جهاز الإنشاء إلى مجموعة المسؤولين.

تقدم Google قائمة بكيفية إنشاء سجل في Notepad و MSDN يستمر في إعطائي صفحات مفقودة عند النقر على الروابط.

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

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

المحلول

انتهت أيام البرامج التي تعدل أو إنشاء مفاتيح التسجيل العالمية. لا يزال يعمل على مربع XP الخاص بك لأنك تسجيل الدخول كمسؤول. لدى Vista و Win7 و Windows 2008 UAC لمنع أي شخص (أي البرامج الضارة) مع السجل ، حتى عند تسجيل الدخول باستخدام حساب المسؤول.

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

نصائح أخرى

لا يكفي تسجيل الدخول كمسؤول ؛ يجب تشغيل برنامجك بامتيازات إدارية (أي باستخدام بيان).

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