الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تنصيب البرنامج بالسمحيات المطلوبة

بدأه mohammed_k في 12 أكتوبر 2012 · 5 رد · 442 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لقد قمت بتصميم برنامج باستخدام لغة VB.NET المشكلة ظهرت عند محاولة تنصيب البرنامج على جهاز Windows 7 حيث تظهر الحاجة ان بعض الملفات تحjاج الى سماحيات محددة.

استخدم برنامج التنصيب msi installer الذي يكون ضمن الـ Visual Studio

هذا الملفات ضمن مجلد اسمه Data و الهدف الاساسي هو اعطاء هذا المجلد كافة السماحيات

قمت باستخدام اداة SubInAcl لاعطاء المجلد السماحيات المطلوبة

ضمن Win XP عملية التنصيب تعمل بشكل صحيح

ولكن ضمنWin7 تظهر و لا يمكن اعطاء هذ السماحيات

رسالة الخطأ التي تظهر عند استخدام اداة SubInAcl هي التالية:

Access is Denied

Unable to set SeSecurityPrivilege privilege

طبعا المستخدم الذي يقوم بتنصيب البرنامج هو ضمن مجموعة Users

#2

السلام عليكم ورحمه الله وبركاته

اخي لابج عليك تنصيبه بصلاحية مدير او يمكنك عملها تشغيل البرنامج برمجيا عن طريق ال، Access Control List

.:: Wish to become better and better ::.

#3
VB Helper كتب:

السلام عليكم ورحمه الله وبركاته

اخي لابج عليك تنصيبه بصلاحية مدير او يمكنك عملها تشغيل البرنامج برمجيا عن طريق ال، Access Control List

المشكلة انني لا استطيع ان اتحكم في الاجهزة لكي انصب البرنامج بصلاحية مدير

المشكلة الحقيقية هي في ويندوز سيفن نظرا لمستوى الامان المطلوب

اما بالنسبة Access Control List ممكن التوضيح أكثر

#4

استخدمت هذه الطريقة و لم تنجح

  Public Overrides Sub Commit(ByVal savedState As System.Collections.IDictionary)
        ' This gets the named parameters passed in from your custom action
        Dim folder As String = Context.Parameters("TARGETDIR")

        ' This gets the "Authenticated Users" group, no matter what it's called
        Dim sid As New SecurityIdentifier(WellKnownSidType.AuthenticatedUserSid, Nothing)

        ' Create the rules
        Dim writerule As New FileSystemAccessRule(sid, FileSystemRights.Write, AccessControlType.Allow)

        If Not String.IsNullOrEmpty(folder) AndAlso Directory.Exists(folder) Then
        ' Get your file's ACL
        Dim fsecurity As DirectorySecurity = Directory.GetAccessControl(folder)

        ' Add the new rule to the ACL
        fsecurity.AddAccessRule(writerule)

        ' Set the ACL back to the file
        Directory.SetAccessControl(folder, fsecurity)
       End If

 MyBase.Rollback(savedState)
End Sub

 MyBase.Rollback(savedState)
End Sub
#5

السلام عليكم ورحمه الله وبركاته

اخي لماذا لا تستخدم Run As Administrator

.:: Wish to become better and better ::.

#6
VB Helper كتب:

السلام عليكم ورحمه الله وبركاته

اخي لماذا لا تستخدم Run As Administrator

للاسف يا اخي هذه الطريقة غير مجدية

مواضيع مشابهة