ruskiruski 10 Geschrieben 21. Juli 2008 Melden Teilen Geschrieben 21. Juli 2008 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 Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 21. Juli 2008 Melden Teilen Geschrieben 21. Juli 2008 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 Zitieren Link zu diesem Kommentar
ruskiruski 10 Geschrieben 21. Juli 2008 Autor Melden Teilen Geschrieben 21. Juli 2008 Hey Nils, vielen Dank für die schnelle Antort! Das Prinzip war mir schon bewusst, doch leider fehlen mir so ziehmich viele Grundkenntnisse. hab noch keine schleifen hinbekommen... Muss mich wohl durchwuseln. THX! Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 21. Juli 2008 Melden Teilen Geschrieben 21. Juli 2008 Für Grundkenntnisse empfehle ich die Bücher von Tobias Weltner, z.B. Scripting für Administratoren. Vielleicht gibt es die 1. Auflage irgendwo günstig, die Grundlagen darin sind immer noch gültig. Gruß, Nils Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 21. Juli 2008 Melden Teilen Geschrieben 21. Juli 2008 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 Zitieren Link zu diesem Kommentar
ruskiruski 10 Geschrieben 22. Juli 2008 Autor Melden Teilen Geschrieben 22. Juli 2008 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 Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 24. Juli 2008 Melden Teilen Geschrieben 24. Juli 2008 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 Zitieren Link zu diesem Kommentar
ruskiruski 10 Geschrieben 24. Juli 2008 Autor Melden Teilen Geschrieben 24. Juli 2008 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 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.