Jump to content

Cybquest

Expert Member
  • Gesamte Inhalte

    1.886
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von Cybquest

  1. Ich versteh zwar irgendwie nicht, was Du von uns überhaupt willst, aber hier einfach mal ein Scriptansatz in VBScript: Set MyFiles = CreateObject("Scripting.FileSystemObject") Const ForReading = 1, ForWriting = 2 varDatei="C:\Pfade.txt" Set f = MyFiles.OpenTextFile(varDatei, ForReading) Text = f.ReadAll varSearch=Inputbox("Alter Username") varReplace=Inputbox("Neuer Username") Set f = MyFiles.OpenTextFile(varDatei, ForWriting, True) f.Write Replace(Text, varSearch, varReplace) Und hier noch ein Link zu "Replace": vb@rchiv · Befehlsreferenz · Replace-Funktion
  2. Ich denke, das bekommst Du mit der Batch oder maximal VBScript locker hin. (Oder Powershell :) ) Wäre geschickt, wenn Du Dein Script mal hier posten würdest.
  3. Möglicherweise versucht das Script zu schnell, den Ordner zu löschen (bevor wirklich alle Dateien verschwunden sind). Nachstelen konnte ich es bei mir noch nicht. Hab aber vorsichtshalber das Script erweitert. Nun werden, wenn ein Ordner nicht gelösht werden kann, 3 Versuche unternommen. Die Wartezeit zwischen den Versuchen kann parametriert werden. Hier die Erweiterungen. Folgende 2 Zeilen in den "Variablen-Block" packen: lngRetries = 3 'Anzahl Versuche, wenn Ordner-löschen fehlschlägt lngRetSleepTime = 1000 'Wartezeit nach Fehlversuch in ms Und den Block "Ordner löschen" durch folgenden Code ersetzten: 'Ordner löschen i = 1 do Err.Clear fso.DeleteFolder(strFolder) if Err = 0 then writelog "Ordner " & strFolder & " gelöscht" else if i > 1 then strRet = "- " & i & ".Versuch!" else strRet = "" writelog "Ordner " & strFolder & " konnte nicht gelöscht werden! - Fehler " & Err & " (" & Err.Description & ") " & strRet wscript.sleep lngRetSleepTime end if i = i + 1 loop until (Err = 0) or (i > lngRetries)
  4. Ja, hab zum testen ne Zeile auskommentiert, die aber drin bleiben muss! Da muss das Anführungsstrichchen vorne weg: on error resume next Danach sollte das Script durchlaufen und bei einem Ordner die "Zugriff verweigert"-Meldung ins Log schreiben. Warum der Zugriff verweigert wird... gilt's dann rauszufinden. Vermutlich wird versucht, einen Ordner zu löschen, der nicht leer ist.
  5. Jetzt hast ja'n bissle Code zum analysieren ;) ...allerdings: Wenn schon neu mit Coding beschäftigen, dann evtl. gleich Powershell! Ich werde für mich zur Übung (da ich bisher auch noch nicht viel mit PS gemacht hab) das Ganze auch mal auf Powershell portieren. Stell ich dann, wenn's denn soweit ist, auch rein :)
  6. Um Groß-/Kleinschreibung zu ignorieren könnte man die Vergleichs-Zeile z.B. so erweitern: if lcase(strFolder) = lcase(trim(arrEx(i))) then boolExclude = true
  7. Nächster Versuch: '--------------------------------------------------------- ' KillOldFolders.vbs by FR '--------------------------------------------------------- '-Konstanten---------------------------------------------- Const ForReading = 1, ForWriting = 2, ForAppending = 8 '-Variablen----------------------------------------------- strRootFolder = "J:\DIV\VB" strLogFile = "J:\DIV\KillfolderLog.txt" strExcludeFile = "J:\DIV\KillfolderExclude.txt" lngDays = 14 '--------------------------------------------------------- 'Wenn Statusmeldungen in DOS-Box gewünscht, Script mittels "cscript.exe KillOldFolders.vbs" starten! If LCase (Right (WScript.FullName, 11)) <> "cscript.exe" Then boolcsript = false else boolcscript=true Set fso = CreateObject("Scripting.FileSystemObject") Set ofolder = fso.GetFolder(strRootFolder) Set flog = fso.OpenTextFile(strLogFile, ForAppending, True) writelog "---- Alte Ordner in " & strRootFolder & " werden gelöscht! - " & Now() writelog "Ausgeschlossene Verzeichnisse:" Dim arrEx() maxExcludes=0 if fso.FileExists(strExcludeFile) then Set fex = fso.OpenTextFile(strExcludeFile, ForReading) do while not fex.AtEndOfStream maxExcludes=maxExcludes+1 Redim Preserve arrEx(maxExcludes) arrEx(maxExcludes) = fex.readline() writelog arrEx(maxExcludes) loop fex.close end if writelog "----" 'Durchlaufe alle Unterverzeichnisse for each folder in ofolder.subfolders KillFolderSub folder next writelog "---- Script beendet - " & Now() if not boolcscript then MsgBox "Script beendet - " & Now() '--------------------------------------------------------- 'ENDE '--------------------------------------------------------- Sub KillfolderSub(objFolder) 'on error resume next strFolder = objFolder.Path vardatecreated = objFolder.datecreated 'Wenn Ordner in "Exclude"-Liste steht, nicht löschen! boolExclude = false For i=1 to maxExcludes if strFolder = trim(arrEx(i)) then boolExclude = true next if boolExclude then writelog "Ordner " & strFolder & " incl. Unterordner nicht gelöscht (Exclude-Regel!)" else 'Durchlaufe alle Unterverzeichnisse for each subfolder in objfolder.subfolders KillFolderSub subfolder next 'Wenn Ordner vor mehr als x Tagen erstellt wurde... if vardatecreated < (Date - lngDays) then 'Alle Dateien im Ordner löschen for each file in objfolder.Files Err.Clear strFile = file.Path fso.DeleteFile strFile, true if Err = 0 then writelog "Datei " & strFile & " gelöscht" else writelog "Datei " & strFile & " konnte nicht gelöscht werden! - Fehler " & Err & " (" & Err.Description & ")" end if next 'Ordner löschen Err.Clear fso.DeleteFolder(strFolder) if Err = 0 then writelog "Ordner " & strFolder & " gelöscht" else writelog "Ordner " & strFolder & " konnte nicht gelöscht werden! - Fehler " & Err & " (" & Err.Description & ")" end if else writelog "Ordner " & strFolder & " nicht gelöscht (jünger als " & lngDays & " Tage! Datecreated: " & vardatecreated & ")" end if end if on error goto 0 End Sub '--------------------------------------------------------- Sub Writelog(strMessage) flog.writeline strMessage if boolcscript then wscript.echo strMessage End Sub Habs hier mal durch mein Homeverzeichnis durchlaufen lassen und nur das in die Exclude reingeschrieben, was wirklich noch da bleiben soll... hat funktioniert :) (...und hab somit gleich mal bei mir aufgeräumt *gg*) Zur Info: Ich hab die Abfrage, ob ein Verzeichnis in der Excludeliste steht, vor den rekursiven Aufruf gesetzt. Viel mehr hab ich nicht gemacht.
  8. OK, ich schau's mir in einer ruhigen Minute an. Solche "Nebenher-Scriptereien", die hier von mir eigentlich nur als Anregung eingestellt werden, bergen halt immer die Gefahr, nicht vollständig ausgetestet zu sein ;) Ich vermute, es liegt an der Rekursion. Da das Script ja immer erst in die tiefste Ebene geht und von dort rückwärts löscht, muss ich vermutlich beim Exclude nacharbeiten...
  9. Hier nochmal der kpl., bei mir funktinonierende, Code: '--------------------------------------------------------- ' KillOldFolders.vbs by FR '--------------------------------------------------------- '-Konstanten---------------------------------------------- Const ForReading = 1, ForWriting = 2, ForAppending = 8 '-Variablen----------------------------------------------- strRootFolder = "J:\DIV\VB" strLogFile = "J:\DIV\KillfolderLog.txt" strExcludeFile = "J:\DIV\KillfolderExclude.txt" lngDays = 14 '--------------------------------------------------------- 'Wenn Statusmeldungen in DOS-Box gewünscht, Script mittels "cscript.exe KillOldFolders.vbs" starten! If LCase (Right (WScript.FullName, 11)) <> "cscript.exe" Then boolcsript = false else boolcscript=true Set fso = CreateObject("Scripting.FileSystemObject") Set ofolder = fso.GetFolder(strRootFolder) Set flog = fso.OpenTextFile(strLogFile, ForAppending, True) writelog "---- Alte Ordner in " & strRootFolder & " werden gelöscht! - " & Now() writelog "Ausgeschlossene Verzeichnisse:" Dim arrEx() maxExcludes=0 if fso.FileExists(strExcludeFile) then Set fex = fso.OpenTextFile(strExcludeFile, ForReading) do while not fex.AtEndOfStream maxExcludes=maxExcludes+1 Redim Preserve arrEx(maxExcludes) arrEx(maxExcludes) = fex.readline() writelog arrEx(maxExcludes) loop fex.close end if writelog "----" 'Durchlaufe alle Unterverzeichnisse for each folder in ofolder.subfolders KillFolderSub folder next writelog "---- Script beendet - " & Now() if not boolcscript then MsgBox "Script beendet - " & Now() '--------------------------------------------------------- 'ENDE '--------------------------------------------------------- Sub KillfolderSub(objFolder) 'on error resume next 'Durchlaufe alle Unterverzeichnisse for each subfolder in objfolder.subfolders KillFolderSub subfolder next strFolder = objFolder.Path 'Wenn Ordner in "Exclude"-Liste steht, nicht löschen! boolExclude = false For i=1 to maxExcludes if strFolder = trim(arrEx(i)) then boolExclude = true next if boolExclude then writelog "Ordner " & strFolder & " nicht gelöscht (Exclude-Regel!)" else 'Wenn Ordner vor mehr als x Tagen erstellt wurde... if objFolder.datecreated < (Date - lngDays) then 'Alle Dateien im Ordner löschen for each file in objfolder.Files Err.Clear strFile = file.Path fso.DeleteFile strFile, true if Err = 0 then writelog "Datei " & strFile & " gelöscht" else writelog "Datei " & strFile & " konnte nicht gelöscht werden! - Fehler " & Err & " (" & Err.Description & ")" end if next 'Ordner löschen Err.Clear fso.DeleteFolder(strFolder) if Err = 0 then writelog "Ordner " & strFolder & " gelöscht" else writelog "Ordner " & strFolder & " konnte nicht gelöscht werden! - Fehler " & Err & " (" & Err.Description & ")" end if else writelog "Ordner " & strFolder & " nicht gelöscht (jünger als " & lngDays & " Tage! Datecreated: " & objFolder.datecreated end if end if on error goto 0 End Sub '--------------------------------------------------------- Sub Writelog(strMessage) flog.writeline strMessage if boolcscript then wscript.echo strMessage End Sub
  10. Ggf. einfach mal im Code ein paar "writelog" verteilen und div. Variablen ausgeben lassen (so bin ich auf das fehlende "Preserve" gekommen)
  11. War mal wieder zu schnell dahingescriptet gestern ;) Dem "Redim" hat der "Preserve" gefehlt! Habs nur mit einem Ordner in der Excludeliste getestet, daher gings da noch... Hier der korrekte Block: Dim arrEx() maxExcludes=0 if fso.FileExists(strExcludeFile) then Set fex = fso.OpenTextFile(strExcludeFile, ForReading) do while not fex.AtEndOfStream maxExcludes=maxExcludes+1 Redim Preserve arrEx(maxExcludes) arrEx(maxExcludes) = fex.readline() writelog arrEx(maxExcludes) loop fex.close end if @Braintee: Das mit den Dateien überleg ich mir in ner ruhigen Minute mal... Das mit dem Ordner, der dennoch gelöscht wird... momentan keine Idee. Konnte es hier noch nicht nachvollziehen...
  12. Ersetz mal if strFolder = arrEx(i) then boolExclude = true durch if strFolder = TRIM(arrEx(i)) then boolExclude = true Möglicherweise hat's am Ende der Strings noch'n Leerzeichen oder den Zeilenumbruch o.ä.
  13. Biddeschöööön :) '--------------------------------------------------------- ' KillOldFolders.vbs by FR '--------------------------------------------------------- '-Konstanten---------------------------------------------- Const ForReading = 1, ForWriting = 2, ForAppending = 8 '-Variablen----------------------------------------------- strRootFolder = "J:\DIV\VB" strLogFile = "J:\DIV\KillfolderLog.txt" strExcludeFile = "J:\DIV\KillfolderExclude.txt" lngDays = 14 '--------------------------------------------------------- 'Wenn Statusmeldungen in DOS-Box gewünscht, Script mittels "cscript.exe KillOldFolders.vbs" starten! If LCase (Right (WScript.FullName, 11)) <> "cscript.exe" Then boolcsript = false else boolcscript=true Set fso = CreateObject("Scripting.FileSystemObject") Set ofolder = fso.GetFolder(strRootFolder) Set flog = fso.OpenTextFile(strLogFile, ForAppending, True) writelog "---- Alte Ordner in " & strRootFolder & " werden gelöscht! - " & Now() writelog "Ausgeschlossene Verzeichnisse:" Dim arrEx maxExcludes=0 if fso.FileExists(strExcludeFile) then Set fex = fso.OpenTextFile(strExcludeFile, ForReading) do while not fex.AtEndOfStream MaxExcludes=MaxExcludes+1 Redim arrEx(maxExcludes) arrEx(maxExcludes) = fex.readline() writelog arrEx(maxExcludes) loop fex.close end if writelog "----" 'Durchlaufe alle Unterverzeichnisse for each folder in ofolder.subfolders KillFolderSub folder next writelog "---- Script beendet - " & Now() if not boolcscript then MsgBox "Script beendet - " & Now() '--------------------------------------------------------- 'ENDE '--------------------------------------------------------- Sub KillfolderSub(objFolder) on error resume next 'Durchlaufe alle Unterverzeichnisse for each subfolder in objfolder.subfolders KillFolderSub subfolder next strFolder = objFolder.Path 'Wenn Ordner in "Exclude"-Liste steht, nicht löschen! boolExclude = false For i=1 to maxExcludes if strFolder = arrEx(i) then boolExclude = true next if boolExclude then writelog "Ordner " & strFolder & " nicht gelöscht (Exclude-Regel!)" else 'Wenn Ordner vor mehr als x Tagen erstellt wurde... if objFolder.datecreated < (Date - lngDays) then 'Alle Dateien im Ordner löschen for each file in objfolder.Files Err.Clear strFile = file.Path fso.DeleteFile strFile, true if Err = 0 then writelog "Datei " & strFile & " gelöscht" else writelog "Datei " & strFile & " konnte nicht gelöscht werden! - Fehler " & Err & " (" & Err.Description & ")" end if next 'Ordner löschen Err.Clear fso.DeleteFolder(strFolder) if Err = 0 then writelog "Ordner " & strFolder & " gelöscht" else writelog "Ordner " & strFolder & " konnte nicht gelöscht werden! - Fehler " & Err & " (" & Err.Description & ")" end if else writelog "Ordner " & strFolder & " nicht gelöscht (jünger als " & lngDays & " Tage! Datecreated: " & objFolder.datecreated end if end if on error goto 0 End Sub '--------------------------------------------------------- Sub Writelog(strMessage) flog.writeline strMessage if boolcscript then wscript.echo strMessage End Sub
  14. Wenn dem so wäre, würdest Du ja vermutlich nicht die Fehlermeldung bekommen. Du brauchst den Client. Warum es nur über den Oracle-Client geht, kann ich Dir nicht sagen. Evtl. wg. Sicherheit, damit nur ein Sysdba auch rücksichern kann...
  15. Zu 1. Wenn über einen Oracle-Client gesichert wird, muss auch über einen Oracle-Client zurückgesichert werden. D.h. ja, auf dem Zielrechner muss der Client drauf sein.
  16. Cybquest

    Lan Fehler

    Sind es immer die gleichen Ports? Die CRC/Alignment Errors kann man m.W. ignorieren. Die kommen wohl hauptsächlich durch's Einschalten eines Gerätes.
  17. Cybquest

    Reminder - Ice 2009

    Dito :) Übrigens: Als ich's von daheim probiert hab, kam auch die Meldung "bereits registriert". Vom Geschäft aus gings dann. Kann es sein, dass die IP o.ä. vom letzten Mal mit in der DB steht und der meckert, wenn's dieses Jahr ne andere ist?
  18. Mach doch einfach mal nen neuen Shortcut für die Tastenkombi, teste, ob die geht und lösch sie dann wieder.
  19. Könnte es sein, dass du nicht den Shortcut, sondern nur das Ziel gelöscht hast und somit der Shortcut noch besteht und ins Leere läuft?
  20. Kanns hier grad nicht testen... Welche Authentifizierungsmethode hast du denn gewählt? "Kerberos/LAN-Management..." oder was anderes? Hast Du mehrere Konten eingerichtet zusätzlich zum Exchange?
  21. Like this: strFolder = "C:\Ordner1|C:\Ordner2" strHTMLFile = "Meineindex.htm" Set fso = CreateObject("Scripting.FileSystemObject") Set objHtmlFile = fso.CreateTextFile (strHtmlFile, true) objHtmlFile.writeline "<HTML>" objHtmlFile.writeline "<HEAD>" objHtmlFile.writeline "<TITLE>Übersicht</TITLE>" objHtmlFile.writeline "</HEAD><BODY>" colFolder = split(strFolder,"|") for each folder in colfolder objHtmlFile.writeline "<h3>Ordner " & folder & "</h3>" Set objFolder = fso.GetFolder(folder) For each file in objFolder.Files objHtmlFile.writeline file.Name & "<BR>" Next Next objHtmlFile.writeline "</BODY>" objHtmlFile.writeline "</HTML>" objHtmlFile.close Oben bei strFolder die Ordnernamen mit Pipe getrennt rein, Dateiname (ggf. incl. Pfad) der HTM-Datei anpassen, fertig. ...und dann noch die Optik aufmöbeln ;)
  22. Welche Outlook-Version? Outlook2003: Extras - E-Mail-Konten - Ändern - Weitere Einstellungen - Reiter Sicherheit Häkle "Immer zur Eingabe von Benutzer und Kennwort auffordern"
  23. Erst mal eine Frage: Wie fit bist Du mit VBScript? Brauchst du nur ne Idee, wie man das anstellen könnte, oder soll hier ein möglichst fertiges Script "geliefert" werden? Ansonsten: - Ein Filesystem-Objekt erzeugen - Ne Datei "MeineDatei.htm" zum Schreiben öffnen (bzw. anlegen) - Beliebige Header-Zeilen schreiben (.writeline) - Ordner-Objekt erzeugen für gewünschten Ordner - Schleife durch alle Files in dem Ordner (for each file in objfolder.files) - Filename in o.g. Datei ausgeben - Das ganze ab "Ordner-Objekt" 6 mal durch ne Schleife mit versch. Ordnernamen - Fertig :)
  24. Lass doch /domain einfach weg. Ist doch ein optionaler Parameter. Und bei lokalen Usern hast Du doch das Problem mit dem "Standardcontainer" gar nicht. Grüße, Frank PS: Das Script, das Du da hast... ist genau gaar nichts ausser dass ein paar Variablen definiert werden ;) Kpl. fertige VB-Scripte hierfür gibt es z.B. im W2K-Ressourcekit (createusers.vbs)
  25. Ist denn genau die gleiche Filemaker-Version installiert? Evtl. müsste sonst dieser Teil angepasst werden: CreateObject("FMPro.Application")
×
×
  • Neu erstellen...