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
GELÖST

Batchscript lässt sich nicht mit der Aufgaben Planung ausführen

Frage Entwicklung Batch & Shell

Mitglied: MultiStorm

MultiStorm (Level 1) - Jetzt verbinden

21.10.2014, aktualisiert 22.10.2014, 4209 Aufrufe, 18 Kommentare

Hallo ich fange erstmal mit den Rahmenbedingungen an

Server:
Windows Server 2012 R2 als HyperV VM
15 GB RAM
6 Cores
MS SQL Server
In einer Domäne

Ziel
Der SQL Server erzeugt stündlich Backups,
diese, jedenfalls konnte ich es nicht anders einstellen werden auf der Lokalen Platte gespeichert
Hier können Sie aber nicht liegen bleiben da sonst der Lokale Speicher nach 3 Tagen voll ist.

Also habe ich mir ein Netzlaufwerk eingerichtet

W:\ welches auf eine Freigabe zeigt in der die Backups abgelegt werden können.

nun habe ich mir ein BATCH Script geschrieben welches die Dateien erst Verschiebt und im Anschluss die ältesten 20 Backups löscht.
Wenn ich das Script per Hand Ausführe Funktioniert das Fehlerfrei. Starte ich das Sxript aber über die Aufgaben Planung passiert einfach nix.
ich sehe zwar das im Taskmanager das Script gestartet wird, aber es passiert einfach nichts .... vermutlich mache ich einen ganz einfachen Fehler
aber ich weis einfach nicht welchen

hier erstmal das Script

@echo off & setlocal

set "Ordner=W:\Backup"
set "Logfile=C:\Datenbank Backups\database_move_log.log"
set Anzahl=20

@echo [%date% %time%] - Starte das Verschieben von Backups >"%Logfile%"
@echo [%date% %time%] - Starte das Verschieben von Backups
move "C:\Datenbank Backups\BeEvent\*.bak" "W:\Backup" >"%Logfile%"
@echo [%date% %time%] - Beginne das Löschen alter Backups >"%Logfile%"
@echo [%date% %time%] - Beginne das Löschen alter Backups
for /f "skip=%Anzahl% delims=" %%i in ('dir /b /a-d /o-d "%Ordner%"') do del "%Ordner%\%%i"
@echo [%date% %time%] - %Ordner% >"%Logfile%"
@echo [%date% %time%] - %Ordner%

die Aufgabenplanung sieht wie folgt aus ...
Allgemein:
Unabhängig von der Benutzeranmeldung ausführen
Mit Höchsten Privilegien ausführen
Benutzer Administrator

Trigger:
[X] - Täglich um 2 Uhr

Aktion:
[X] - Programmstart | Pfad zum Script

Bedingung:
[] - Keine

Einstellungen:
[X] - Ausführen der Aufgabe bei bedarf zulassen
[X] - Aufgabe so schnell wie möglichich nach einem verpassten start ausführen
[X] - Falls Aufgabe scheitert, neustart alle 30 min
[X] - neustartversuch bis maximal 3 x
[X] - Aufgabe beenden wenn ausführung länger als 4 Stunden Dauert
[X] - Beenden der aktiven Aufgabe erzwingen, falls sie auf Aufforderung nicht beendet wird

als Rückgabe bekomme ich nur
Informationen 21.10.2014 14:53:33 102 Aufgabe abgeschlossen (2) b5584a54-d305-4d5b-b939-2130dfa75055
aber passiert ist absolut nix ...
jemand eine Idee was ich Falsch mache ?

Hilfe wäre echt klassen,
vielen dank im Vorraus
Mitglied: DerWoWusste
21.10.2014, aktualisiert um 15:15 Uhr
Hi.

Du musst im Skript das Laufwerk mappen - und schon klappt's.
Bitte warten ..
Mitglied: MultiStorm
22.10.2014 um 12:15 Uhr
Hy...
Kannst du das genauer erklären ...
mit Laufwerk meinst du sicher das Ziellaufwerk W:\ ?
aber das ist schon gemappt .....
Bitte warten ..
Mitglied: MultiStorm
22.10.2014, aktualisiert um 12:32 Uhr
also,
ich denke verstanden was du meinst habe ich ...
wie sollte das laufwerk auch zugreifbar sein wenn der Benutzer vielleicht garnicht angemeldet ist !?!?!

Also habe ich deinen Rat befolgt und ein Mapping eingebaut

@echo off & setlocal

net use w: \\Server\98_Datenbank_Backups$\

set "Ordner=W:\Backup"
set "Logfile=C:\Datenbank Backups\database_move_log.log"
set Anzahl=20

@echo [%date% %time%] - Starte das Verschieben von Backups >"%Logfile%"
@echo [%date% %time%] - Starte das Verschieben von Backups
move "C:\Datenbank Backups\BeEvent\*.bak" "W:\Backup" >"%Logfile%"
@echo [%date% %time%] - Beginne das Löschen alter Backups >"%Logfile%"
@echo [%date% %time%] - Beginne das Löschen alter Backups
for /f "skip=%Anzahl% delims=" %%i in ('dir /b /a-d /o-d "%Ordner%"') do del "%Ordner%\%%i"
@echo [%date% %time%] - %Ordner% >"%Logfile%"
@echo [%date% %time%] - %Ordner%

Ausführung von hand funktioniert wie gewohnt ....
Ausführung per Aufgaben planung funktioniert nach wie vor nicht
ich habe auch folgendes Versucht

@echo off & setlocal

set "Ordner=\\Server\98_Datenbank_Backups$\Backup"
set "Logfile=C:\Datenbank Backups\database_move_log.log"
set Anzahl=20

@echo [%date% %time%] - Starte das Verschieben von Backups >"%Logfile%"
@echo [%date% %time%] - Starte das Verschieben von Backups
move "C:\Datenbank Backups\BeEvent\*.bak" "W:\Backup" >"%Logfile%"
@echo [%date% %time%] - Beginne das Löschen alter Backups >"%Logfile%"
@echo [%date% %time%] - Beginne das Löschen alter Backups
for /f "skip=%Anzahl% delims=" %%i in ('dir /b /a-d /o-d "%Ordner%"') do del "%Ordner%\%%i"
@echo [%date% %time%] - %Ordner% >"%Logfile%"
@echo [%date% %time%] - %Ordner%

Funkitoniert leider auch nicht ...
Übersehe ich etwas ?
Bitte warten ..
Mitglied: DerWoWusste
22.10.2014 um 12:49 Uhr
Ja, vermutlich übersiehst Du, dass der ausführende Benutzer nicht ohne weiteres w: mappen darf. Hat das Konto, welches Du im task eingetragen hat denn Zugriff auf w:?
Wenn ja - kannst Du den Output des Skriptes in eine Datei loggen und diese hier ausstellen?
Bitte warten ..
Mitglied: MultiStorm
22.10.2014 um 13:06 Uhr
hy,
also das mit dem Loggen ist das nächste Problem ....

Also mal vorab ...
Batch Programmieren ist nicht gerade meine stärke, hätte aber nicht gedacht das eine so einfache Problemstellung
solche wellen schlägt ...

also der Benutzer mit dem der Task gestartet wird, ist das Konto Administrator, wenn das keinen zugriff hat weis ich es auch nicht
was das Loggen angeht, habe ich das schon versucht, wie man am code des Scrips sehen kann ... leider kommt in der logdatei nix an
...
Sie wir zwar angelegt aber die Datei bleibt leer ......

Ich habe in zwischen auchn schon versucht das lazufwerk aus der gleichung zu nehmen in dem ich mit den UNC Pfaden gearbeitet habe aber das Problem bleibt das gleich ....

habe über google auch schon hinweise gefunden das es ggf. an den Einstellungen der Aufgaben liegen kann und habe folgende umkonfiguriert

Programm / Skript = "C:WindowsSystem32\cmd.exe"
Argument = C:\Datenbank Backups\MoveBackups.bat
Starten In =C:\Datenbank Backups\

diese Einstellungen sollten laut den einschlägigen Foren Funktionieren aber mein Task startet nun gar nicht mehr ...

Fehlermeldung:
Die Aufgabenplanung konnte die Aufgabe "\Datenbank Backups Verschieben" für den Benutzer "BlaBla\Administrator" nicht starten. Zusätzliche Daten: Fehlerwert: 2147942402

kann doch eigentlich nicht so schwer sein 20 Dateien zu verschieben ?

Ich bin mitlaweile schon so verzweifelt das ich es schon mit einem VBS Script vewrsucht habt, das kann er scheinbar aber nicht starten weil er nicht Weiß wie ... keine Ahnung .... regt mich gerade alles ein bissel auf

Wenn du einen Tipp bezüglich der Logausgabe hast immer her damit,
dann poste ich dir das Ergebnis sehr gerne ....
Bitte warten ..
Mitglied: DerWoWusste
LÖSUNG 22.10.2014, aktualisiert um 14:04 Uhr
Es wird nur eine Kleinigkeit sein.
Nimm bitte einen neuen Task, der auf die selbe Weise (selbes Konto zum Ausführen, selber Trigger) folgende test.bat ausführt:
01.
md c:\test 
02.
net use w: \\Server\98_Datenbank_Backups$\ >c:\test\Testtasklog.txt 
03.
md w:\Testordner >>c:\test\Testtasklog.txt
Und schau dann, ob unter w: ein Testordner erstellt wurde und was in c:\test\Testtasklog steht.
Bitte warten ..
Mitglied: MultiStorm
22.10.2014 um 13:46 Uhr
Funktioniert leider nicht ...
Habe es erstmal per hand ausgeführt das Script

Verzeichnis wird angelegt ...
Logdatei erzeugt ...
Log bleibt leer
Netzlaufwerk wird nicht verbunden ....

also:
habe ich ein Pause ans ende deines Scriptes angefügt ....
und in der Console steht ....

Systemfehler 53 der Netzwerkpfad wurde nicht gefunden

kann das daran liegen das es sich um eine versteckte Freigabe handelt ?
wenn ich das net use in der Powershell versuche bekomme ich den gleichen Fehlercode

Windows PowerShell
Copyright (C) 2013 Microsoft Corporation. Alle Rechte vorbehalten.

PS C:\Users\Administrator.FIRMA> net use w: \\Server\98_Datenbank_Backups$\
Systemfehler 53 aufgetreten.

Der Netzwerkpfad wurde nicht gefunden.

PS C:\Users\Administrator.FIRMA>

der Netzwerkpfad ist aber Korrekt !
wenn ich per Copy & Past den Pfad in den Explorer kopiere geht der Ordner ohne Probleme auf.
Bitte warten ..
Mitglied: MultiStorm
22.10.2014 um 13:49 Uhr
Scheint wirklich an der versteckten Freigabe zu liegen ...
Gleicher Server ... andere Freigabe (nicht versteckt ansonsten analog zur versteckten Freigabe)
Funkitoniert !!!
Bitte warten ..
Mitglied: MultiStorm
22.10.2014, aktualisiert um 13:52 Uhr
och nöööö......
scheinbar darf der Pfad keine \ haben

Windows PowerShell
Copyright (C) 2013 Microsoft Corporation. Alle Rechte vorbehalten.

PS C:\Users\Administrator.FIRMA> net use w: \\SRVBLACKBOX\98_Datenbank_Backups$\
Systemfehler 53 aufgetreten.

Der Netzwerkpfad wurde nicht gefunden.

PS C:\Users\Administrator.FIRMA> net use w: \\SRVBLACKBOX\98_Datenbank_Backups$
Der Befehl wurde erfolgreich ausgeführt.

PS C:\Users\Administrator.FIRMA>
Bitte warten ..
Mitglied: DerWoWusste
LÖSUNG 22.10.2014, aktualisiert um 14:04 Uhr
Hm, dazu gibt es keinen Grund. Das Verstecken ändert nichts an der Freigabe, alles sollte genau so funktionieren.
Bitte warten ..
Mitglied: MultiStorm
22.10.2014 um 13:53 Uhr
so ich versuchs jetzt nochmal mit deinem Script
Bitte warten ..
Mitglied: DerWoWusste
LÖSUNG 22.10.2014, aktualisiert um 14:04 Uhr
Witzig... ich würde instinktiv auch nie einen \ ans Ende setzen, habe es nur per copy und paste von Dir übernommen...wusste auch nicht, dass es Probleme bereitet.
Bitte warten ..
Mitglied: MultiStorm
22.10.2014 um 13:58 Uhr
Also
ich habe das Script in den Original Task gehängt ...
also nur das Script gegen deins getauscht ...

Task von hand gestartet

Verzeichnis auf C: wurde angelegt ....

Inhalt der Logdatei

"Der Befehl wurde erfolgreich ausgefhrt."

netzlaufwerk kann ich nicht sehen ... (also W
aber der Testordner wurde in der Freigabe erstellt
bleibt aber leer ... (Glaube das muss auch so)
Bitte warten ..
Mitglied: MultiStorm
22.10.2014 um 13:58 Uhr
Probiere das Script gleich nocheinmal ohne \ also meins vielleicht lag da ja der fehler
Bitte warten ..
Mitglied: MultiStorm
22.10.2014, aktualisiert um 14:03 Uhr
Jupp jetzt läuft es .....
also halten wir mal für die Nachwelt fest .....

1. wenn in einem Script ein netzlaufwerk verwendet werden soll muss dieses auch im script gemappt werden
net use BUCHSTABE: UNC Pfad

2. beim UNC Pfad darf kein \ als abschluss stehen ....
Bitte warten ..
Mitglied: MultiStorm
22.10.2014 um 14:04 Uhr
Danke dir für deine Unterstüzung
Bitte warten ..
Mitglied: DerWoWusste
22.10.2014, aktualisiert um 14:11 Uhr
Gerne.
Noch als Zusatz zu
wenn in einem Script ein netzlaufwerk verwendet werden soll muss dieses auch im script gemappt werden
Das liegt daran, das Netzlaufwerke nicht systemweit, sondern eben benutzergebunden erstellt werden. Hinzu kommt: Lässt man einen Task mit der Option "mit höchsten Privilegien ausführen" ("elevated") laufen, kann es sogar der selbe Benutzer sein, der gerade angemeldet ist UND ein Netzlaufwerk w: hat - es könnte in dem Task nicht verwendet werden, ohne es separat erneut zu mappen. Grund wäre dann die UAC, die das Weiterreichen von Netzlaufwerken zwischen Konto A "normal" und Konto A "elevated" unterbindet.
Bitte warten ..
Mitglied: bastla
22.10.2014 um 18:26 Uhr
Hallo MultiStorm!

Zur Abrundung: Da Du ja sinnvoller Weise eine Variable (%Ordner%) verwendest, würde ich diese auch konsequent nutzen (also auch in der "move"-Zeile), womit der Laufwerksbuchstabe ohnehin nur genau einmal benötigt würde - da kannst Du aber auch gleich ganz darauf verzichten:
set "Ordner=\\Server\98_Datenbank_Backups$\Backup"
Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
JavaScript
AngularJS Variable über Input in Funktion ausführen

Frage von badkilla zum Thema JavaScript ...

Windows Server
gelöst Skript per GPO ausführen - Berechtigungen? (13)

Frage von honeybee zum Thema Windows Server ...

iOS
Apple: Aktivierungssperre des iPads lässt sich umgehen

Link von runasservice zum Thema iOS ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...