Zugriff verweigert

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Screeze.

    Zugriff verweigert

    Ich versuche die gesamtme ordnerstruktur beliebiger pfade auszulesen. klappt soweit gut, allerdings wird mein log gefüllt mit zugriffsfehlern. Hier mal beispiele:

    Der Zugriff auf den Pfad "C:\Documents and Settings" wurde verweigert.
    Der Zugriff auf den Pfad "C:\Dokumente und Einstellungen" wurde verweigert.
    Der Zugriff auf den Pfad "C:\Program Files\Gemeinsame Dateien" wurde verweigert.
    Der Zugriff auf den Pfad "C:\Program Files\Windows NT\Zubehör" wurde verweigert.
    Der Zugriff auf den Pfad "C:\Users\Screeze\Vorlagen" wurde verweigert.


    Und viele weitere. Gibts eine Möglichkeit das Problem zu umgehen?
    ich benutze vista, habe aber die benutzerkontensteuerung deaktiviert (die ging mir mehr als auf den keks)
    Wenn ich die rechte "erfrage" wird der User dann immer beim start gefragt ob er das prog mit adminrechten ausführen möchte? oder geht das automatisch
    Jop dann kommt beim Start die Meldung. Aber evt. kannst du das ganze anders lösen, indem du deinen Code etwas änderst. Für das reine Auslesen benötigst du nämlich selbst nicht in den geschützten Ordnern wie den Programme-Ordner eigentlich keine besonderen Rechte. Wir bräuchten den Code, den du benutzt, um die Ordnerstruktur zu lesen.

    VB.NET-Quellcode

    1. ''' <summary>
    2. ''' Fügt den Pfad als Knoten hinzu, und leitet weiter
    3. ''' </summary>
    4. ''' <param name="Path">Pfadangabe als String</param>
    5. ''' <remarks></remarks>
    6. Public Sub ShowTree(ByVal Path As String)
    7. Dim nNode As New TreeNode(Path)
    8. Dim del As New delegateTestFunktion(AddressOf Addnode)
    9. del.Invoke(nNode)
    10. 'frmTree.Nodes.Add(nNode)
    11. Me.FillTreeNode(nNode)
    12. End Sub
    13. ''' <summary>
    14. ''' Liest alle Ordner und Dateien des Pfades aus, und fügt sie dem Knoten hinzu. Ruft sich selbst auf um Unterordner einzubeziehen.
    15. ''' </summary>
    16. ''' <param name="dNode">Aktueller Knoten</param>
    17. ''' <remarks></remarks>
    18. Private Sub FillTreeNode(ByVal dNode As TreeNode)
    19. Try
    20. Dim d As New DirectoryInfo(dNode.FullPath)
    21. For Each di As DirectoryInfo In d.GetDirectories
    22. Dim nNode As New TreeNode(di.Name)
    23. dNode.Nodes.Add(nNode)
    24. FillTreeNode(nNode)
    25. Next
    26. For Each fi As FileInfo In d.GetFiles
    27. Dim fNode As New TreeNode(fi.Name)
    28. dNode.Nodes.Add(fNode)
    29. Next
    30. Catch ex As Exception
    31. ExHandler.AddError(ex, "FillTreeNode")
    32. End Try
    33. End Sub


    Das ist der wichtigste Teil, das ganze wird zu nem treeview dazugefügt. (nicht über die thread-tests wundern, die verschwinden dann noch)
    Hallo Kevin89,

    Für das reine Auslesen benötigst du nämlich selbst nicht in den geschützten Ordnern wie den Programme-Ordner eigentlich keine besonderen Rechte.

    Bin mir nicht sicher, ob deine Aussage so stimmt.

    Gruss

    mikeb69
    ich hab das grade mal ausprobiert mit dem rechte erfragen:

    Wie erwartet bekomme ich KEINE Frage, da benutzerkontensteuerung deaktiviert. Aber normalerweiße würde das bedeuten dass Programm bekommt automatisch AdminRechte auf Anfrage dachte ich? Die Fehler erscheinen weiterhin.
    Bei Filezilla z.b. kann ich doch auch jedes verzeichnis betreten. werde dort auch Nie gefragt ob als Admin (k.a. wies mit aktiver steuerung aussieht?) aber es funktioniert. Das sollte doch auch in VB möglich sein.


    wobei ich mich erinnere, als vista neu war konnte filezilla am anfang auch nicht auf die ordner zugreifen, was jedoch irgendwann wieder ging, scheinbar wurde da ein weg gefunden...
    Mir fällt grade was auf:

    Die Pfade die nicht angezeigt werden können, scheinen keine reellen pfade zu sein, sondern so ne art verlinkung. Diese Pfade können auch in anderen programmen nicht direkt angetastet werden.
    Auch über meine paralelle Linux installation, auf der ich die windows platte auch gemounted habe, kann ich in der dateistruktur von windows diese ordner nicht anwählen, jedoch findet sich der inhalt auf andere Ordner verteilt. Das scheinen sammelordner oder so zu sein? Demnach würde es reichen den Fehler abzufangen und vom logging auszunehmen...

    Oder weiß jemand genaueres?