Jump to content

blob

Members
  • Gesamte Inhalte

    399
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von blob

  1. Hallo,

     

    ich habe es geschafft, mittels VBS in einer Gruppe die Member in eine TXT auszulesen.

     

    Jetzt würde ich gerne ein kleines Script schreiben, wo bei Usern die Gruppenzugehörigkeit in ein TXT File schreibt, scheitere aber.

     

    Die Suche hat mir nicht geholfen. Script Center von MS auch nicht.

     

    Also ich will die vbs starten, dann soll eine input Box kommen in der ich den

    "displayname" eingebe. Anschließend soll der User in meiner definierten Domäne gesucht werden (ldap über ein Query?), bei Erfolg dann die Member of Liste in eine TXT Datei ausgegeben werden.

     

    Ich bitte um Hilfe, evtl. gibt es schon etwas das ich nur auf meine Wünsche anpassen muss. Was ich auf keinen Fall will, ist dass ich Dinge wie OU und Username angeben muss, da ich nicht auf Anhieb weiss in welcher OU sich der User befindet, dessen member of ich auslesen möchte.

     

    Danke im voraus!

  2. Hallo!

     

    Habe eine Frage:

     

    Ich erstelle mal hier und mal da Scripts mit VBS oder Powershell. Jetzt will ich nicht dauernd einen Link zu einem Ordner aufrufen, wo alle Scripts hinterlegt sind. Sondern auf dem Desktop eine Verknüpfung haben, dass mir ein Fesnter startet in dem ich z.B. 10 Buttons habe die beschriftet sind, wenn ich auf Button 1 klicke dann soll es mir mein test1.vbs starten, der zweite Button soll mir test2.vbs starten usw usw usw

     

    Kann mir jemand einen Rat geben wie ich das einfach lösen könnte?

  3. ähm, benötige doch nochmal kurz Hilfe...

     

    warum kommt hier die Fehlermeldung, dass das System die angegebene Datei nicht gefunden hat?

     

    et objShell = WScript.CreateObject("WScript.Shell") 
    return = objShell.Run("c:\xcacls.exe  C:\TEST >>C:\log.txt")
    Set objShell = Nothing
    

     

    Ordner existiert, xcacls.exe funktioniert auch. Was mache ich falsch?

     

    Merci im voraus.

  4. Hallo, ich wollte zu dem Thema jetzt mich nochmal schlau machen.

     

    Mittlsl Rechtklick auf \\server\ordner kann ich mir ja die ACL anzeigen lassen. Da muss es doch auch möglich sein, die ACL über Netzwerkpfade mit VBS auszulesen?! Das obere Script kann man vergessen und einen neuen Ansatz finden. Oder evtl. ist das überhaupt nicht möglich?

     

    Zur Not würde ich im VB Script die Abfrage der ACL über ein Drittanbieter Tool starten. AccessEnum.exe arbeitet aber leider nicht ohne die grafische Oberfläche (oder ich bin zu dumm um /? zu starten).

     

    Danke im voraus.

  5. Hallo again,

     

    sorry, habe mich etwas **** ausgedrückt. Ich habe ja schon den Pfad des Ordners, dessen Unterordner ich bis zur 2ten Ebene listen will. Also alle Subfolders von (z.B.) C:\Windows und dann wiederrrum deren Subfolders. Haben nun diese Subfolders wiederum weitere Subfolders, sollen die nicht ins Logs geschrieben werden, also alles bis zur zweiten Ebene meinte ich :-) Hat da jmd eine Function o. Sub, mit der ich die Ebene bestimmen kann?

     

    Trotzdem Danke für den Code!

  6. Hallo!

     

    Ich hatte mal so ein tolles Script welches mir einen angegeben Ornder und die erste Ebene an Unterordner ausgelesen hat. Nur ich finde es nicht mehr und auch nicht im Netz! :-(

     

    Nochmal im Detail: Ich habe den Ordner X im Script angegeben. Er schreibt mir den Ordnernamen "X" inkl. Pfad in eine TXT Datei. Anschließend geht es an die Unterordner. Diese schreibt er mir auch brav mit Pfad in eine TXT Datei. Diese Unterordner haben noch mehrere weitere Unterordner, aber die sollen nicht in die TXT Datei geschrieben werden!

     

    Hat da jmd zufällig ne Funktion zur Hand? Ich bekomme es eben nur hin, dass er komplett alles ausliest.

     

    Merci im voraus!

  7. So, habe alles gefunden.

     

    In ein anderes Worksheet wechseln und dort eine Zelle auswählen und formatieren, z.B. eine Formel hinterlegen:

    Set oExcel = CreateObject("Excel.application")
    Set oWB = oExcel.Workbooks.Add
    Set oWS = oWB.Worksheets("Sheet40")
    
    'x ist eine Variabel die z.B. durch eine Schleife hochgezählt wird
    strTabelle = "Tabellenblatt01"
    
    strFormel = "=" & strTabelle & "!" & "C3:C"& x
    
    With oWS.range("D5")
    .formula = strFormel
    .font.Bold = True
    End With
    

     

     

    cu

  8. Hallo,

     

    kaum habe ich das eine Problem gelöst, stehe ich schon vor dem nächsten Problem. Und zwar lese ich mit einem VBS Script Zahlen in dem Format "0,000" aus einer TXT Datei, anschließend fügt dieses Script die gefüllten Variabeln in Excel (2007) ein. Problem ist:

     

    Eine Zahl kleiner als 1 (z.B. 0,543) wird korrekt übermittelt, allerdings mit einem Fehlerhinweis in Excel und ich muss per Hand den Text in eine Zahl konvertieren.

     

    Ist eine Zahl größer als 1 (z.B. 32,453) dann macht Excel aus der Variabeln, die es bekommt, einen Punkt anstatt einem Komma, also plötzlich steht der Wert in Excel als z.B. "34.323". Wenn ich dann z.B. das Feld konvertiere das es Zahl u. 2 Dezimalstellen anzeigen soll, steht im Feld logischerweise dann "34323,000" was total falsch ist.

     

    Hat jemand einen Rat? Evtl. muss ich vor dem Einfügen die Variable in eine Zahl umwandeln? Nur wie geht das?

  9. So, bin nun ein Stück weiter, aber benötige doch jetzt gezielt ein wenig Hilfe:

     

    Ich möchte vom aktiven Worksheet auf ein anderes wechseln. Wie müsste der Code aussehen? Meiner funktioniert nicht:

     

    Set oExcel = CreateObject("Excel.application")
    oExcel.Visible = True
    oExcel.Workbooks.Add
    oExcel.ActiveSheet.delete
    oExcel.ActiveSheet.delete
    oExcel.ActiveSheet.name = "Zusammenfassung"
    
    oExcel.Worksheets.Add
    oExcel.ActiveSheet.name = "Testblatt2"
    
    'ab hier klappt es nicht, also das springen auf existierende Worksheets
    oExcel.ActiveWorkbook.Sheets("Zusammenfassung")
    

     

    dann möchte ich im aktiven Worksheet eine Zelle auswählen, und eine Formel hinterlegen. Mein folgender Code klappt auch noch nicht:

    Set oSheet = oExcel.Cells(4, 4)
    oSheet.formula = "=" & VariableMitTabellenblattNamen & "!" & "A3:A"& n & """"   'soll im Klartext heissen: "=Tabelle1!A3:A20"
    

     

    Und zu guter Letzt: Wie formatiere ich eine Zelle, damit die Zelle weiss mein Inhalt ist eine Zahl? Habe es leider bis jetzt noch nicht gefunden :-(

     

    *help*

  10. So, habe es nun anderst gelöst:

     

    Set ocountListe = CreateObject("Scripting.FileSystemObject")
    Set ocountListe2 = ocountListe.OpenTextFile(strFile, ForReading)
    
    Do While ocountListe2.AtEndOfStream <> True 		
    
    m = m + 1
    
    strreadfinalline = ocountListe2.ReadLine	
    arrayinhalt = Split(strreadfinalline, ";")
    
    oExcel.cells(m, 1).value = arrayinhalt(0)
    oExcel.cells(m, 2).value = arrayinhalt(1)
    oExcel.cells(m, 3).value = arrayinhalt(2)
    
    n = m
    Loop
    

     

    Thx @ all

  11. Nachtrag: Habe ein Beispiel gefunden mit einem statischen Array. Man müsste nur noch hinbekommen, das die Werte aus der TXT Datei geholt werden und das Array dynamisch ermittelt wird, damit beim einfügen in Excel die Größe der Range ermittelt werden kann:

     

         ' Create an array to set multiple values at once.
         Dim saNames(5, 2) As String
         saNames(0, 0) = "John"
         saNames(0, 1) = "Smith"
         saNames(1, 0) = "Tom"
         saNames(1, 1) = "Brown"
         saNames(2, 0) = "Sue"
         saNames(2, 1) = "Thomas"
         saNames(3, 0) = "Jane"
    
         saNames(3, 1) = "Jones"
         saNames(4, 0) = "Adam"
         saNames(4, 1) = "Johnson"
    
       ' Fill A2:B6 with an array of values (First and Last Names).
         oSheet.Range("A2", "B6").Value = saNames
    

     

    Aber da scheitere ich schon... hat da jmd einen Lösungsansatz?

  12. Also: Mein VB Script ermittelt auf einem Fileserver die erste Ordnerebene, liest den Pfad, die ACL und die Größe des Verzeichnis aus. Das wird dann in eine Textdatei geschrieben, siehe ganz oben an meinem Beispiel wie es aussieht. Nachdem ein Ordner abgearbeitet ist, wird in die TXT ein vbnewline hinzugefügt und der nächste Ordner wird "untersucht". Ich könnte die Werte direkt in Excel schreiben, aber aus 2 Gründen nicht: a) ich will die Werte erst Kontrollieren bevor die Excel Tabelle gefüllt wird und b) bis alle Ordner untersucht wurden, gehen schonmal 12 Stunden ins Land.

     

    Und die txt Dateien in Excel per Hand importieren ginge auch, aber es sind einige Worksheets => dauert lange da es ca. 30 TXT Dateien sind => ergo darum hat mein Script die "Importiere es mir in Excel" - Funktion an der ich gerade dran bin ;-) ich muss diese Ergebnis TXT Dateien die mir mein Script liefert (siehe wieder oben) in ein Array schreiben... da es 3 Spalten in Excel wären muss ich die TXT in ein dreidimensionales Array einlesen.... Array(0,x) soll die Pfade enthalten (also Spalte A in Excel), Array(1,x) soll den Usernames beinhalten (also Spalte B in Excel) und Array(2,x) soll die Ordnergrößen beinhalten (also Spalte C in Excel).

     

    Ich will es jetzt auch nicht so kompliziert machen und das Script posten da es mehrere hundert Zeilen lang ist und ich ja nur wissen will: ich habe eine TXT Datei mit 3 Variabeln in einer Zeile, getrennt durch ";" und danach neue Zeile und wieder die 3 Variabeln getrennt durch ";" usw

  13. Hallo @ *!

     

    Ich komme einfach nicht drauf, wie ich dynamisch ein 3 dimensionales Array erstellen kann. Eine TXT Datei wird ausgelesen und soll in diesem Array landen, diese ist wie folgt aufgebaut:

     

    \\srv\pfad1\pfad2;mustermann;34,467657856

    \\srv\pfad1\pfad3;mustermann1;334,4456757856

    \\srv\pfad1\pfad4;mustermann2;1,321443543

    \\srv\pfad1\pfad5;mustermann3;4,678676777

    ... usw

     

    In der Reihe ist es also Punkt-Komma separiert. So soll es in einem Array landen, damit ich es nach Excel schreiben kann:

     

    Array(0,0) = \\srv\pfad1\pfad2

    Array(0,1) = mustermann

    Array(0,2) = 34,467657856

    Array(1,0) = \\srv\pfad1\pfad3

    Array(1,1) = mustermann2

    Array(1,2) = 334,4456757856

    usw

     

    Da ich nicht weiss wieviele Zeilen in einer TXT Datei stehen, muss das Array dynmaisch sein und am besten eine Variable haben, die hochgezählt wird damit ich beim Excel Import die Range angeben kann.

     

    Ich weiss wie ich es für ein eindimensionales Array hinbekommen würde, bekomme es aber nicht auf 3 Spalten umgebogen :-(

  14. Hallo!

     

    Ich finde nichts bei Google. Vll kennt jmd hier einen tollen Link? Und zwar möchte ich mit meinem VBScript Excel aufrufen und Worksheets anlegen, Zellen formatieren etc etc etc

     

    ich weiss zwar wie ich mir die Applikation hole (Set oExcel = CreateObject("Excel.application")), kenne aber die ganzen Befehle nicht wie z.B. oExcel.Workbooks.Add; im Internet finde ich natürlich vereinzelte Befehle aber ich hätte gerne sowas wie eine Refferenz dazu oder eine einfache Auflistung der VBS Excel Befehle mit kurzer Beschreibung.

     

    Gruß

  15. Hallo again!

     

    Versuche mit VBS die größe eines Ordners zu ermitteln. Ich habe hier eine "diruse.exe", mit der ich die Größe des angegebenen Pfades ermitteln kann (Vielleicht kennt jemand das Tool?). Aber ich weiss nicht wie ich das in mein VBS Script einbaue, also ungefähr so (von der Logik gemeint):

     

    strPfad = "\\server\ordner\"

     

    Ruf mir diruse.exe auf mit Variable strPfad

     

    Gib mir die Ordnergröße in mein VB Script wieder in eine neue Variable

     

     

    Oder gibt es sogar in VBS ein Befehl, mit dem ich die Ordnergröße ermitteln kann? Wäre mir sogar lieber :-)

     

    Danke im voraus!

×
×
  • Neu erstellen...