Jump to content
Sign in to follow this  
Osmo

Löschen von OSt Dateien

Recommended Posts

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!!

Share this post


Link to post

ja klar hab ich installiert... aber da bricht die FOR schleife immer ab auch wenn sie uin der "normalen Shell" funktioniert

 

LG

Share this post


Link to post
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.

Share this post


Link to post

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

Share this post


Link to post

Ungetestet, muss ggf. ein klein wenig angepasst werden.

 

get-childitem "c:\documents and settings\*\...\outlook" | ? { $_.Name -like *.ost } | % { remove-item $_.FullName }

Share this post


Link to post

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!!

Share this post


Link to post
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.

Share this post


Link to post

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

Share this post


Link to post

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.

Share this post


Link to post
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...

Share this post


Link to post

...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

Share this post


Link to post

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...

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...