Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
Kommentar vom Moderator Biber am 05.05.2010 um 20:15:18 Uhr
Ich hätte absolut nichts dagegen, wenn häufiger Fragen so sorgfältig formuliert wären wie dieser Beitrag.

Problem und Lösung sind für jeden späteren Mitleser klar verständlich ... vielen Dank, PaT!

Grüße
Biber
GELÖST

BATCH - Abfrage wenn ein bestimmter Task läuft unter einem bestimmten Benutzer gehe zu XY

Frage Entwicklung Batch & Shell

Mitglied: PaT.sls

PaT.sls (Level 1) - Jetzt verbinden

05.05.2010, aktualisiert 20:15 Uhr, 6617 Aufrufe, 2 Kommentare, 1 Danke

Hi Leute,

ich bin neu hier und benötige Hilfe für ein Batch-Script...
Leider bin ich bei der Suche durchs Netz nicht fündig geworden, bzw. nicht schlau aus den Funden geworden...

Ich bin kein Fachmann, jedoch kümmer ich mich bei uns im Hause neben der normalen Arbeit um die Server
(Soweit es in Eigeninitiative möglich ist)

Übersicht:

Betriebssystem:
Windows Server 2008 Standard (x64)
Einsatz:
WTS Umfeld des Servers
Benutzeraccount:
Administrator."Domane"
Ziel des Batch-Scripts:
Datensicherung einer PST-Datei (Eine KEN!4-PST vom Organizer, unser Komunikationserver hat keine so Intensive Datensichrungsrotine, daher sollen die Einträge auf ein Laufwerk mit einer Rotine für Arbeitsdaten und die auf Wunsch der Geschäftsführung in PST mit 14 Tagen History)
Ablauf des Gesamtscripts:
-Beenden von der Outlook.exe
-Kopieren der Datei mit Datumsangabe
-Starten von Outlook
-Löschen von den Ordnern die älter als 14 Tage Tage sind
Art der Ausführung:
Taskplaner



Problem:

Das Problem habe ich bei der Abfrage ob der TASK "Outlook.exe" unter administrator.Domäne noch läuft
Das Script beendet Outlook per Taskkill und soll dann nach einem "WAIT" ( ping 127.0.0.1>nul ) überprüfen ob der TASK noch läuft, wenn er noch läuft soll ein GOTO auf WAIT gehen, dies verweist danach natürlich wieder auf die Abfrage...Wenn der TASK beendet ist soll er fortfahren...



Script:

01.
echo off 
02.
title X^&Y Datensicherung KEN!4 
03.
REM 
04.
REM 	Strucktur des Scriptes: 
05.
REM		Arbeitsabläufe: 
06.
REM		Beenden von OUTLOOK mit Warteschleife ob OUTLOOK geschlossen ist 
07.
REM		Datensicherung selbst 
08.
REM		Starten von Outlook 
09.
REM		Löschen von Datensicherungen älter 14 Tage 
10.
REM 	GOTO: 
11.
REM		TASK = Überprüfung ob TASK OUTLOOK.exe läuft 
12.
REM		WAIT = Warteschleife 
13.
REM	Datenpfade 
14.
REM		Datensicherungsquelle: 
15.
		Set Quelle="C:\Users\administrator.Domäne"\AppData\Roaming\Microsoft\Outlook\1269842416ken.pst" 
16.
REM		Datensicherungsziel: 
17.
		Set Ziel="N:\Datensicherung KEN\Backups\%date%" 
18.
			REM Soweit der Datensicherungspfad geändert wird, muss er auch in VB-Script geändert werden 
19.
REM		Outlook 
20.
		Set Outlook="C:\Program Files (x86)\Microsoft Office\Office12\Microsoft Office Outlook 2007.lnk" 
21.
			REM Verknüfung im Officeverzeichnis zum minimierten Starten 
22.
REM		Löschscript Sicherungen älter 14 Tage 
23.
		Set Delete-14="N:\Datensicherung KEN\Delete-14.vbs" 
24.
REM		Windows Benutzer 
25.
		Set Benutzer="domäne/administrator" 
26.
cls 
27.
echo =============================================================================== 
28.
echo. 
29.
echo XXX ^& YYY  
30.
echo ZZZZZZZZZZZZZZZZZZZZZZZZ 
31.
echo. 
32.
echo Datensicherung KEN! Organizer 
33.
date /t 
34.
time /t 
35.
echo. 
36.
echo =============================================================================== 
37.
echo. 
38.
echo. 
39.
echo. 
40.
echo Beende Outlook... 
41.
taskkill /F /FI "USERNAME eq %Benutzer%" /IM OUTLOOK.exe >nul 
42.
echo. 
43.
:TASK 
44.
REM =============================================================================== 
45.
REM Hier fehlt die Überprüfung ob der Task noch läuft und somit in die Warteschleife geleitet wird 
46.
pause 
47.
REM Zu testzecken "Pause" gesetzt 
48.
REM =============================================================================== 
49.
echo. 
50.
md %Ziel% 
51.
echo. 
52.
echo Starte die Datensicherung... 
53.
xcopy %Quelle% %Ziel% /s /v /c /i /f /h /k /o /x /y 
54.
echo. 
55.
echo Starte Outlook... 
56.
start "" %Outlook% 
57.
echo. 
58.
echo Loesche Datensicherungen die aelter als 14 Tage sind... 
59.
start "" %Delete-14% 
60.
echo. 
61.
echo Fertig, das Programm beendet sich in etwa einer Minute... 
62.
ping 127.0.0.1 -n 60 >nul 
63.
exit 
64.
:WAIT 
65.
echo.  
66.
echo Warte bis Outlook geschlossen ist... 
67.
ping 127.0.0.1>nul 
68.
goto :TASK
(X, Y & Z sind die ersetzte Firmenbezeichnung, sowie Domain wurde ersetzt)



Vielen Dank für die Hilfe!

Grüße PaT
Mitglied: AndreasHoster
05.05.2010 um 14:53 Uhr
Mit Tasklist nachschauen?
01.
tasklist /fi "USERNAME eq %Benutzer%" | find "outlook.exe" /i 
02.
if errorlevel 1 goto KeinOutlook 
03.
goto Wait 
04.
:KeinOutlook
Bitte warten ..
Mitglied: PaT.sls
05.05.2010 um 16:13 Uhr
Zitat von AndreasHoster:
Mit Tasklist nachschauen?

Danke , ich bin eben auch schon auf tasklist bekommen, aber noch nicht auf die Lösung...da kenne ich mich einfach zu wenig aus...
Es funktioniert

Grüße PaT

Für die die es Interressiert und das Script gebrauchen können...hier die Endversion

KEN-Backup.bat
01.
echo off 
02.
title X^&Y Datensicherung KEN!4 
03.
REM 
04.
REM 	Strucktur des Scriptes: 
05.
REM		Arbeitsabläufe: 
06.
REM			Beenden von OUTLOOK mit Warteschleife ob OUTLOOK geschlossen ist 
07.
REM			Datensicherung selbst 
08.
REM			Starten von Outlook 
09.
REM			Löschen von Datensicherungen älter 14 Tage 
10.
REM 		GOTO: 
11.
REM			TASK 	= Überprüfung ob TASK OUTLOOK.exe läuft 
12.
REM			BEENDET	= Programm ist Beendet und das Datensicherung fährt fort 
13.
REM		Datenpfade: 
14.
REM			Datensicherungsquelle: 
15.
				Set Quelle="C:\Users\administrator.Domäne\AppData\Roaming\Microsoft\Outlook\1269842416ken.pst" 
16.
REM			Datensicherungsziel: 
17.
				Set Ziel="N:\Datensicherung KEN\Backups\%date%" 
18.
REM 					Soweit der Datensicherungspfad geändert wird, muss er auch in VB-Script geändert werden 
19.
REM			Programpfad 
20.
				Set Programpfad="C:\Program Files (x86)\Microsoft Office\Office12\Microsoft Office Outlook 2007.lnk" 
21.
REM					Verknüfung im Officeverzeichnis zum minimierten Starten 
22.
REM			Program 
23.
				Set Program=OUTLOOK 
24.
REM			Löschscript Sicherungen älter 14 Tage 
25.
				Set Delete-14="N:\Datensicherung KEN\Delete-14.vbs" 
26.
REM			Windows Benutzer 
27.
				Set Benutzer="DOMÄNE\administrator"	 
28.
cls 
29.
echo =============================================================================== 
30.
echo. 
31.
echo XXX ^& YYY 
32.
echo ZZZZZZZZZZZZ 
33.
echo. 
34.
echo Datensicherung KEN! Organizer 
35.
date /t 
36.
time /t 
37.
echo. 
38.
echo =============================================================================== 
39.
echo. 
40.
echo. 
41.
echo. 
42.
echo Beende %Program%... 
43.
	 
44.
:TASK 
45.
tasklist /fi "USERNAME eq %Benutzer%" | find "%Program%.exe" /i  
46.
if errorlevel 1 goto BEENDET 
47.
echo.  
48.
echo Warte bis %Program% geschlossen ist... 
49.
ping 127.0.0.1>nul 
50.
goto :TASK 
51.
:BEENDET 
52.
echo. 
53.
echo Datenpfad wird angelegt... 
54.
md %Ziel% 
55.
echo. 
56.
echo Starte die Datensicherung... 
57.
xcopy %Quelle% %Ziel% /s /v /c /i /f /h /k /o /x /y 
58.
echo. 
59.
echo Starte %Program%... 
60.
start "" %Programpfad% 
61.
echo. 
62.
echo Loesche Datensicherungen die Aelter als 14 Tage sind... 
63.
start "" %Delete-14% 
64.
echo. 
65.
echo Fertig, das Programm beendet sich in etwa einer Minute... 
66.
ping 127.0.0.1 -n 60 >nul 
67.
exit
Hier noch das VB-Script
(Quelle: http://www.mcseboard.de/windows-forum-scripting-71/ordner-batch-xx-tage ...)

delete-14.vbs
01.
strRootFolder = "N:\Datensicherung KEN\Backups" 
02.
 
03.
Set fso = CreateObject("Scripting.FileSystemObject") 
04.
Set ofolder = fso.GetFolder(strRootFolder) 
05.
 
06.
'Durchlaufe alle Unterverzeichnisse 
07.
for each folder in ofolder.subfolders 
08.
  KillFolderSub folder 
09.
next 
10.
 
11.
 
12.
Sub KillfolderSub(objFolder) 
13.
 
14.
  'Durchlaufe alle Unterverzeichnisse 
15.
  for each subfolder in objfolder.subfolders 
16.
    KillFolderSub subfolder 
17.
  next 
18.
 
19.
  'Wenn Ordner vor mehr als 14 Tagen erstellt wurde... 
20.
  if objFolder.datecreated < (Date - 14) then 
21.
 
22.
    'Alle Dateien im Ordner löschen 
23.
    for each file in objfolder.Files 
24.
      fso.DeleteFile(file.Path) 
25.
    next 
26.
 
27.
    'Ordner löschen 
28.
    fso.DeleteFolder(objFolder.Path) 
29.
  end if 
30.
 
31.
End Sub
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Batch Abfrage Vergleiche mit Variable goto (4)

Frage von Zunaras zum Thema Batch & Shell ...

Windows Server
AD Bestimmten Benutzer (Hilfsadmin) nur Zugriff auf eine OU geben (1)

Frage von conym18 zum Thema Windows Server ...

Batch & Shell
gelöst Per Batch nur neueste Datei mit bestimmten Dateianfang kopieren (3)

Frage von Peter32 zum Thema Batch & Shell ...

Windows 7
gelöst Bestimmter Benutzer kann sich nicht anmelden (6)

Frage von xbast1x zum Thema Windows 7 ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...