Ordnerrechte nach Setup Wizard

  • VB.NET

    Ordnerrechte nach Setup Wizard

    Hallo an Alle,

    Ich habe ein Programm geschrieben, das zukünftig auch von anderen Personen auf einem neuen Rechner eingerichtet werden muss. Dafür habe ich ein Setup Wizard (MS-Installer) erstellt. Leider wird dabei nicht die Berechtigung des Installationspfad, also des Unterordners in "User's Program Menue" und des Ordners der Datenbank in "Common Files Folder" gesetzt. Wenn also nach der Installation das Programm ausgeführt wird, kann dieses nicht in die erwähnten Ordnerpfade schreiben. Kann man das nicht irgendwo im Setup einstellen?? Google qualmt langsam schon.

    Ich habe auch schon versucht ein Konsolenprogramm zu schreiben das die Berechtigungen erteilt, nur wenn ich dem NTAccount die Usergruppe "everyone" zuweise, wird dieser nicht gefunden (existiert ja auch nicht). Die Usergruppe "Benutzer" wird gefunden, ich will mich aber nicht auf ein deutsches Betriebssystem beschränken, sondern eine international gültige Gruppe wie "everyone" o.ä. ansprechen. Folgt habe ich mal meinen Test-Code angehängt:

    VB.NET-Quellcode

    1. Imports System.IO
    2. Imports System.Security.AccessControl
    3. Imports System.Security.Principal
    4. Module ProgramV1
    5. Sub Main()
    6. Try
    7. Dim DictName As String = "C:\_NeuerOrdner" '"C:\Program Files (x86)\Common Files\GMP_Oedo\NeuerOrdner"
    8. Dim user As String = "Benutzer" '"everyone"
    9. Console.WriteLine(System.Environment.MachineName)
    10. Console.WriteLine("Benutzer """ & user & """ bekommt Rechte für den Ordner " & DictName & " zugewiesen.")
    11. Dim dInfo As New DirectoryInfo(DictName)
    12. Dim dirSecurity As DirectorySecurity = dInfo.GetAccessControl() ' dInfo.GetAccessControl()
    13. Dim everyOne As New NTAccount(user)
    14. Dim rule As New FileSystemAccessRule(everyOne,
    15. FileSystemRights.FullControl,
    16. InheritanceFlags.ContainerInherit Or
    17. InheritanceFlags.ObjectInherit,
    18. PropagationFlags.None,
    19. AccessControlType.Allow)
    20. dirSecurity.AddAccessRule(rule)
    21. Dim dirInfo As DirectoryInfo = New DirectoryInfo(DictName)
    22. dirInfo.SetAccessControl(dirSecurity)
    23. Console.WriteLine("Berechtigungen erteilt.")
    24. Catch e As Exception
    25. Console.WriteLine("Drücken Sie eine beliebige Taste, um dieses Fenster zu schließen.")
    26. Console.ReadLine()
    27. End Try
    28. End Sub
    29. End Module



    Es wäre allerdings schön wenn es sich direkt über das Setup einrichten lässt oder wenn es alternativ - im oben angegebenen Code - eine international gültige Gruppe für "alle User "gibt.

    Irgendwelche Vorschläge??

    Ach, mein(e) PCs befinden sich in einer Domain.


    Vielen Dank!!

    Korrekte Code - Tags gesetzt ~ EaranMaleasi

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ludl8615“ ()