vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Zugriffsrechte einrichten 
Autor: escheuch
Datum: 28.02.08 12:37

Und ich habe ein weiteres Problem. (siehe Benutzer aus Gruppen hinzufügen und entfernen)
Ich versuche in der gleichen Umgebung mit dem gleichen Tool ein Zugriffsrecht einzurichten. Sobald er folgende Anweisung durchführen soll
dSecurity_Hauptverzeichnis.SetAccessRule(New FileSystemAccessRule(New NTAccount( _
  "kopper.lan\" & gruppe), Rechte, (InheritanceFlags.ContainerInherit And _
  InheritanceFlags.ObjectInherit), PropagationFlags.None, _
  AccessControlType.Allow))
kommt die Fehlermeldung:
System.Security.Principal.IdentityNotMappedException
Manche oder alle Identittsverweise konnten nicht bersetzt werden.

In der Onlinehilfe steht dann noch
Diese Ausnahme wird ausgelöst, wenn ein Principal keine zugeordnete Identitt besitzt und keiner bekannten Identitt zugeordnet werden kann.
Stellt eine Ausnahme für einen Principal dar, dessen Identitt keiner bekannten Identitt zugeordnet werden konnte.

Dann bin ich hingegangen und habe versucht diese Anweisung mehrmals hintereinander nochmals durchzuführen und dann hat es irgendwann funktioniert.
Deswegen ist im den folgenden Code diese "for i" Schleife drin.
Denn es ist nicht so, das es nicht funktioniert. Es braucht nur eine gewisse Zeit (oder mehrere Versuche und kurz hintereinander) um diese Anweisung korrekt auszuführen.
Anschließend werden weitere Anweisungen von Zugriffsberechtigungen ohne Probleme und sofort beim ersten mal durchgeführt.

Sub Rechte_anlegen(ByVal Hauptverzeichnis As String, ByVal gruppe As String, _
  ByVal Rechte As String)
        Dim dInfo_Hauptverzeichnis As New DirectoryInfo(Hauptverzeichnis)
        Dim dSecurity_Hauptverzeichnis As DirectorySecurity = _
          dInfo_Hauptverzeichnis.GetAccessControl()
        Projektgruppen_anzeigen()
 
        For i = 1 To 10000
            Try
                Rechte = FileSystemRights.ReadAndExecute
                dSecurity_Hauptverzeichnis.SetAccessRule(New _
                  FileSystemAccessRule(New NTAccount("kopper.lan\" & gruppe), _
                  Rechte, (InheritanceFlags.ContainerInherit And _
                  InheritanceFlags.ObjectInherit), PropagationFlags.None, _
                  AccessControlType.Allow))
                dInfo_Hauptverzeichnis.SetAccessControl( _
                dSecurity_Hauptverzeichnis)
                Continue For
            Catch ex As Exception
                     'dient nur zum Abfangen des Fehlers und zum weiterführen 
                     ' der Schleife
            End Try
        Next i
End Sub
Das Tool habe ich vorher in einer Testumgebung (VMware, und nur 1 Domänencontroller, aber identische Benutzer, Gruppen und Verzeichnisstruktur) ausgeführt. Und da gab es keine Probleme. Alles lief sofort einwandfrei.
Und wie gesagt, wenn ich Rechte oder Benutzerverwaltung über die Windows eigenen Tools durchführe, dann gibt es da auch keine Probleme.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Zugriffsrechte einrichten1.115escheuch28.02.08 12:37

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel