Jump to content

VB Script zum Auslesen von Ordnerrechten


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

HALLO ZUSAMMEN!

 

Es wird spannend...

Ich versuche eine TXT-Ausgabe eines gemappten Laufwerks zu bekommen.

Das besondere dabei:

 

Es sollen nur alle Ordner auf dem Laufwerk angezeigt werden, auf die ich auch Zugriff habe... Alle Anderen nicht.

 

z.B.

Laufwerk Z: hat 2 Ordner: TESTORDNER1 und TESTORDNER2...

Auf TESTORDNER1 habe ich Berechtigungen auf dem TESTORDNER2 habe ich KEINE Rechte. (Zugriff verweigert).

 

Ich habe bereits in CMD dir /a:-r /a:d probiert... so zeigt mir mein Fensterchen nur an, daß der Ordner Schreibgeschützt ist. Ordner ohne Berechtigungen werden normal angezeigt... : (((

 

In VBS eine WMI-Abfrage gestartet. Aber der ballert einen voll mit echt unötigen Infos...

 

Weiß jemand ´nen Rat??

 

Danke!

The Ruski

Link zu diesem Kommentar

Moin,

 

Es sollen nur alle Ordner auf dem Laufwerk angezeigt werden, auf die ich auch Zugriff habe... Alle Anderen nicht.

 

naja, das allein ist recht simpel:

 

- Fehlerbehandlung ausschalten

- Schleife Ordner durchlaufen

- wenn kein Fehler aufgetreten ist, Name ausgeben

- Schleife Ende

- Fehlerbehandlung wieder einschalten

 

Würde die Logik reichen? Dann bekommst du das mit folgender Grundlage schnell hin (erstes Beispiel):

 

faq-o-matic.net » VB-Skripts für Windows 2000ff und Active Directory

 

Gruß, Nils

Link zu diesem Kommentar

Hallo,

Mit Powershell sind's 2 Zeilen

 

$errorActionPreference="silentlycontinue"

get-childitem c:\test -recurse | ?{$_.psiscontainer} | out-file c:\output.txt

 

wenn du wie im Threadtitel beschrieben tatsächlich die Ordnerrrechte auslesen willst, kommst du mit

 

get-acl

 

weiter

 

Wie du Powershellscripte startest, findest du hier

Running Windows PowerShell Scripts

 

cu

blub

Link zu diesem Kommentar

Danke für die guten Tipps!

Doch leider ist mein Problem immer noch nicht gelöst.

 

ich kan mir DIE Ordner nicht anzeigen lassen, die ich betreten darf, sondern alle... :confused:

 

Powershell ist auch ein guter Plan, aber leider gibt er mir auch nicht das aus, was ich brauche.

Außerdem muss es ABMELDESCRIFT-tauglich sein ... :-)

 

Also ich brauche alle Ordner MIT Zugriffsrechten eines Netzlaufwerks in einer

TXT / RTF oder XLS - Dokument ...

 

 

Jemand vielleicht noch eine Idee?

 

Vielen Dank

 

The Ruski

Link zu diesem Kommentar

Hi,

Das Powershellscript gibt dir die Ordner in eine txt-Datei aus, auf denen du mindestens Read-Recht hast.

Was "ABMELDESCRIFT-tauglich " ist, weiss ich nicht

Was "alle Ordner MIT Zugriffsrechten eines Netzlaufwerks " bedeutet, versteh ich auch nicht so recht. Ich denke aber, ohne "Grundkenntnisse" wie Schleifen wird's schwierig diesen Wunsch umzusetzen

 

cu

blub

Link zu diesem Kommentar

Da hast du recht.

 

Das PowerShell script ist wirklich genau das, was ich mir vorgestellt habe!

Einziges Problem: .NET Framework ist nicht auf jedem Rechner installiert.

Dies wird für Powershell aber leider für die Bibliotheken benötigt...

(Gesamtpaket: ca. 100-300MB)

 

Nun habe ich angefangen das ganze in AutoIt zu tackern...

 

Leider ist da noch der Wurm drin...

Das script gibt schon etwas aus, doch der kommt aus der "WORKDIR" nicht raus.

dieses Verzeichnis ist identisch mit %HOMEPATH% .... Hat vielleicht jemand

Erfahrung mit AutoIT?

 

CheckFolder.exe sollte das kleine im kompiliertem Zustand Tool heißen ...

 

-----------------------------------------------------------

 

;Funktonen zur Abreit mit Arrays

#include <Array.au3>

 

;In dieses Array werden alle Dateien des zu durchsuchenden Ordners gespeichert

Dim $Source[1]

 

;Parameter aus CommandLine auswerten

if $CmdLine[0] = 2 Then

$src = $CmdLine[1]

$filename = $CmdLine[2]

Else

;Fehlerbehandlung, falls zu wenige/viele Parameter übergeben worden sind

$src = @WorkingDir

$filename = $src & "\Error.Log"

$file = FileOpen($filename, 2)

 

if $file = -1 Then

Exit

EndIf

 

FileWriteLine($file, "Bitte geben Sie alle notwendigen Parameter an: CheckFolder.exe <Suchpfad> <Ausgabedatei>")

FileClose($file)

 

Exit

 

EndIf

 

;Suchstring definieren

FileChangeDir($src)

MsgBox(0, "WorkingDir", @WorkingDir)

$search = FileFindFirstFile("*.*")

 

;Suchergebnis abfragen

If $search = -1 Then

Exit

EndIf

 

MsgBox(0, "Src", $src)

 

;Suchergebnis zur Weiterverarbeitung in Array einlesen

While 1

$filen = FileFindNextFile($search)

if @error Then ExitLoop

_ArrayAdd($Source, $filen)

WEnd

;Array durchlaufen und Verzeichniszugriff prüfen

 

;Ausgabedatei öffnen und erstellen

$file2 = FileOpen($filename, 2)

 

;Prüfen, ob Datei erstellt werden konnte

if $file2 = -1 Then

Exit

EndIf

 

FOR $element IN $Source

If $element <> "" Then

FileChangeDir ($src)

If StringInStr(FileGetAttrib($element), "D") <> 0 Then

FileChangeDir ($src)

FileChangeDir ($src & "\" & $element)

if @WorkingDir <> $src Then

FileWriteLine($file2, $src & "\" & $element)

EndIf

EndIf

EndIf

NEXT

 

fileClose($file2)

 

-------------------------------------------------------------

 

 

@blubb: Was Schleifen sind, wie ein Programm funktioniert, ist mir soweit klar.

Hab nur leider Probleme mit der Syntax... vor allem C++ / VBA

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...