Microsoft MVPs inside





 MCSEboard.de – IT Pro Forum zu Windows Server 2008 R2 / 2008 / 2003 & Windows 7 / Vista / XP
Registrieren Hilfe Regeln Benutzerliste Suchen Heutige Beiträge Alle Foren als gelesen markieren

Windows Forum — Scripting


Alles zum Thema System Administration Scripting — Q & A zum Thema Scripting: Batch, VBS, WMI, PowerShell


Antwort
     
Themen-Optionen
Alt 21.07.2008, 14:58   #1
Newbie
 
Offline
Registriert seit: 07-2008
Beiträge: 6
VB Script zum Auslesen von Ordnerrechten

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
    Mit Zitat antworten
Alt 21.07.2008, 15:22   #2
Expert Member
 
Benutzerbild von NilsK
 
Offline
Registriert seit: 06-2008
Ort: Hannover
Beiträge: 7.376
Moin,

Zitat von ruskiruski Beitrag anzeigen
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

Signatur
Nils Kaczenski

MVP Directory Services: Architecture
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!

    Mit Zitat antworten
Alt 21.07.2008, 16:16   #3
Newbie
 
Offline
Registriert seit: 07-2008
Beiträge: 6
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!

Signatur
läuft...

    Mit Zitat antworten
Alt 21.07.2008, 16:39   #4
Expert Member
 
Benutzerbild von NilsK
 
Offline
Registriert seit: 06-2008
Ort: Hannover
Beiträge: 7.376
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

Signatur
Nils Kaczenski

MVP Directory Services: Architecture
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!

    Mit Zitat antworten
Alt 21.07.2008, 23:15   #5
Moderator
 
Offline
Registriert seit: 11-2002
Beiträge: 6.666
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

Geändert von blub (21.07.2008 um 23:48 Uhr).

Signatur
www.powershellpraxis.de

Nec Cupias, Nec Metuas

    Mit Zitat antworten
Alt 22.07.2008, 13:37   #6
Newbie
 
Offline
Registriert seit: 07-2008
Beiträge: 6
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...

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

Signatur
läuft...

    Mit Zitat antworten
Alt 24.07.2008, 23:16   #7
Moderator
 
Offline
Registriert seit: 11-2002
Beiträge: 6.666
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

Signatur
www.powershellpraxis.de

Nec Cupias, Nec Metuas

    Mit Zitat antworten
Alt 24.07.2008, 23:40   #8
Newbie
 
Offline
Registriert seit: 07-2008
Beiträge: 6
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

Signatur
läuft...

    Mit Zitat antworten
Antwort


Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Frage zu Ordnerrechten damike84 Windows Forum — Allgemein 1 21.08.2009 10:33
OS auslesen via script m1k2k Windows Forum — Scripting 2 02.01.2008 21:50
Script und auslesen Spriptparameter bei GPO Startup Script xcooldj Windows Forum — Scripting 3 03.07.2007 14:36
Rechnername per Script auslesen chillen Windows Forum — Allgemein 7 10.09.2004 09:20
Ändern von Lokalen Ordnerrechten per Gruppenrichtlinie Minorix Active Directory Forum 2 04.05.2004 10:27


Alle Zeitangaben in MEZ/CET. Es ist jetzt 15:24 Uhr. Seite generiert in 0,039 Sekunden.

- Unsere Partner -

Copyright © 2000 – 2012 MCSEboard.de

Sprung zum Seitenanfang