Osmo 10 Geschrieben 13. Januar 2011 Melden Teilen Geschrieben 13. Januar 2011 Hi Leute ich melde mich schon etwas verzweifelt an euch. ich habe einige Terminalserver auf denen mir ein kleines Missgeschick passiert ist! Outlook hat ins Userprofil .OST Dateien abgelegt die je nach Postfachgröße auch meherere hundert MB haben. Das macht mir die Platten auf meinen Servern dicht!! Da es aber 30 SERVER sind duche ich nun nach einer Möglichkeit per Script alle Verzeichnisse auf D. (Profilpartition) auf *.ost Datein zu durchsuchen und diese gleich zu löschen! klar ich kann im Explorer das Netzlaufwerk verbinden - suchen und dann manuell löschen.. aber das muss einfacher gehen!! (und vor allem automatisierter) for /f "delims=" %%a IN ('dir D: /b /s *.ost') do call rmdir /S /Q "%%a" damit hab ich es schon versucht aber er meint die variable sei zu dem zeitpunkt nicht definiert (ich kenn mich mit Scripting leider zu wenig aus) Danke für eure Hilfe!! Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 13. Januar 2011 Melden Teilen Geschrieben 13. Januar 2011 Wie immer bei mir: Hast du Powershell verfügbar? Zitieren Link zu diesem Kommentar
Osmo 10 Geschrieben 13. Januar 2011 Autor Melden Teilen Geschrieben 13. Januar 2011 ja klar hab ich installiert... aber da bricht die FOR schleife immer ab auch wenn sie uin der "normalen Shell" funktioniert LG Zitieren Link zu diesem Kommentar
carlito 10 Geschrieben 13. Januar 2011 Melden Teilen Geschrieben 13. Januar 2011 for /f "delims=" %%a IN ('dir D: /b /s *.ost') do call rmdir /S /Q "%%a" damit hab ich es schon versucht aber er meint die variable sei zu dem zeitpunkt nicht definiert (ich kenn mich mit Scripting leider zu wenig aus) Poste mal das vollständige Skript. Das kann ja nicht alles sein. Zitieren Link zu diesem Kommentar
olc 18 Geschrieben 13. Januar 2011 Melden Teilen Geschrieben 13. Januar 2011 Hi, für mich sieht es so aus, als sei das "call" das Problem - dabei wird eine neue Session gestartet, in der die Variable nicht definiert ist. Versuche es einmal in einer Batch-Datei wie folgt (ggf. das RMDIR durch ein simples DEL ersetzen): for /f "delims=" %%a IN ('dir D: /b /s *.ost') do rmdir /S /Q %%a Natürlich geht PowerShell ebenso. Viele Grüße olc Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 13. Januar 2011 Melden Teilen Geschrieben 13. Januar 2011 Ungetestet, muss ggf. ein klein wenig angepasst werden. get-childitem "c:\documents and settings\*\...\outlook" | ? { $_.Name -like *.ost } | % { remove-item $_.FullName } Zitieren Link zu diesem Kommentar
Osmo 10 Geschrieben 13. Januar 2011 Autor Melden Teilen Geschrieben 13. Januar 2011 Hi Danke für die raschen und zahlreichen Antworten! zum Thema Script: in Wirklichkeit wird das ein "einzeiler" werden den ich dann für jeden Server einmal aufrufe... gedacht ist das so - ich connecte mir das Laufwerk D am server auf einem Admin Rechner übers Netzwerk - z.B Laufwerk T: ich starte das script lösche in den Userprofiles die Ost Datei - trenne das Netzlaufwerk und verbinde den nächsten Server wieder auf T: - starte das script usw... mein Gedankengang war einfach der: ich will nicht auf jeden Server über den Explorer suchen - löschen - abmelden, sondern auf einem Admin PC ein Script starten der alle Server durchgeht (im script muss ich halt einige Zeilen einfügen und die betreffenden Laufwerke trennen und neu connecten - da hab ich schon Vorlagen) daher besteht das script auf einem Net use FOR COMMAND mit Delete net del usw... FOR /R t:\ %1 IN ("*.ost") DO del %1 (das wäre die betreffende FOR Schleife) im moment läuft das script so durch und es schaut äußerst viel versprechend aus!! Zitieren Link zu diesem Kommentar
carlito 10 Geschrieben 13. Januar 2011 Melden Teilen Geschrieben 13. Januar 2011 @Osmo Sind alle betreffenden Server in derselben OU oder verwenden ein exklusives Namensschema? Zitieren Link zu diesem Kommentar
Osmo 10 Geschrieben 13. Januar 2011 Autor Melden Teilen Geschrieben 13. Januar 2011 sie sind alle in der selben OU und verwenden ein Namenschema mit forlaufender nummer Server01, Server02 usw... Zitieren Link zu diesem Kommentar
carlito 10 Geschrieben 13. Januar 2011 Melden Teilen Geschrieben 13. Januar 2011 sie sind alle in der selben OU und verwenden ein Namenschema mit forlaufender nummer Server01, Server02 usw... Die Frage zielte darauf ab, ob sich nur die betreffenden oder auch andere Server in der OU befinden. Oder alternativ ein exklusives Namensschema verwenden. Dann könnte man diese auslesen und über eine Schleife in das Skript einbauen. Zitieren Link zu diesem Kommentar
Osmo 10 Geschrieben 13. Januar 2011 Autor Melden Teilen Geschrieben 13. Januar 2011 nein diese OU ist exclusiv für die Terminalserver gedacht! es befinden sich sonst keine Computerkonten in dieser OU! Das über script auslesen ist sicher auch nett wenn man das noch mit einbauen kann, wobei mein Fokus "noch" auf der For schleife liegt... denn in der comman shell klappt das schon im batch file kommt immer die Meldung IN an dieser Stelle unerwartet... LG und Danke Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 13. Januar 2011 Melden Teilen Geschrieben 13. Januar 2011 Btw. mit der Powershell kann man in der Version 2 direkt Remote die Scripte ausführen. Oder statt "c:\" ein "\\servername\c$\" Und im Powershellscript ein foreach... davor. Zitieren Link zu diesem Kommentar
Osmo 10 Geschrieben 13. Januar 2011 Autor Melden Teilen Geschrieben 13. Januar 2011 Btw. mit der Powershell kann man in der Version 2 direkt Remote die Scripte ausführen. Oder statt "c:\" ein "\\servername\c$\" Und im Powershellscript ein foreach... davor. im moment habe ich auf der servern die PS V1 installiert (bisher hab ich die auch nur ganz selten verwendet) deswegen habe ich die V2 noch nicht installiert... Zitieren Link zu diesem Kommentar
olc 18 Geschrieben 13. Januar 2011 Melden Teilen Geschrieben 13. Januar 2011 ...wobei es in dem Beispiel von Dukel egal ist, ob PS 1.0 oder PS 2.0. Bei Angabe des UNC Pfades für die Löschung werden die remote Funktionen der PS nicht aktiviert. Das ist ein simpler SMB/CIFS Zugriff... Viele Grüße olc Zitieren Link zu diesem Kommentar
Osmo 10 Geschrieben 13. Januar 2011 Autor Melden Teilen Geschrieben 13. Januar 2011 das mag schon sein.. aber das Grundproblem der nicht funktioniereneden FOR Schleife ist noch nicht gelöst und ich brauch mir einfach keine gedanken machen ob und wie ich ein nicht funktionierendes Script verteile... so ganz kapier ich die FOR Schleifen nicht... im command shell läuft sie - sobald ich das in ein .bat einbette kommt IN unerwartet... 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.