Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5

Windows Serwer 2003 Problem z wykonywaniem skryptu *.bat w harmonogramie

#1
Witam,
wiem, że temat był przerabiany przynajmniej milion razy, ale już wyczerpałem wszystkie możliwe podpowiedzi i nie wiem co dalej zrobić.

Problem jest następujący.

Skrypt w bat oraz przekonwertowany do exe ( zawartość bat będzie poniżej) uruchamia się bez problemu z palca i z cmd, jak go dodam do harmonogramu to skrypt według logów zostaje wywołany poprawnie ale nic się nie dzieje ( nie tworzy archiwów) poradźcie coś.

Poniżej przesyłam zawartość bat i txt

*.BAT
______________________

@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

REM Lokalizacja zasobu do przechowywania archiwizacji (np. FSmile sieciowa lokalizacja (np. \\server\backups)
SET BackupStorage=C: \backup_vidbase
REM Druga kopia archiwizacji (np. FSmile sieciowa lokalizacja (np. \\server\backups)
SET SecondaryBackupStorage=\\172.25.1.14\beckups\Videotel
REM Nazwa zasobu ktory bedzie archiwizowany
SET NazwaZasobu=Videotel
SET FullBackupDay=*
SET exe7Zip=C: \Program Files\7-Zip\7z.exe
SET dirTempBackup=%TEMP%\backup
SET filBackupConfig=BackupConfig.txt
IF NOT EXIST %filBackupConfig% (
ECHO Brak pliku konfiguracyjnego: %filBackupConfig%
GOTO End
)
IF NOT EXIST "%exe7Zip%" (
ECHO 7-Zip Nie jest zainstalowany w tej lokalizacji: %dir7Zip%
ECHO Zainstaluj 7-zip w domyslnej lokalizacji.
GOTO End
)


FOR /f "tokens=1,2,3,4 delims=/ " %%a IN ('date /t') DO (
SET DayOfWeek=%%a
SET NowDate=%%d-%%b-%%c
SET FileDate=%%b-%%c-%%d
)

IF {%FullBackupDay%}=={*} SET FullBackupDay=%DayOfWeek%
IF /i {%FullBackupDay%}=={%DayOfWeek%} (
SET txtBackup=Full
SET swXCopy=/e
) ELSE (
SET txtBackup=Incremental
SET swXCopy=/s /d:%FileDate%
)

ECHO Rozpoczecie kopiowania plikow.
IF NOT EXIST "%dirTempBackup%" MKDIR "%dirTempBackup%"
FOR /f "skip=1 tokens=*" %%A IN (%filBackupConfig%) DO (
SET Current=%%~A
IF NOT EXIST "!Current!" (
ECHO ERROR! : !Current!
) ELSE (
ECHO Kopiowanie: !Current!
SET Destination=%dirTempBackup%\!Current:~0,1!%%~pnxA

IF "%%~xA"=="" (

XCOPY "!Current!" "!Destination!" /v /c /i /g /h /q /r /y %swXCopy%
) ELSE (

COPY /v /y "!Current!" "!Destination!"
)
)
)
ECHO Zakonczono kopiowanie plikow
ECHO.

SET BackupFileDestination=%BackupStorage%\%NazwaZasobu%_%DATE%_%txtBackup%.zip


IF EXIST "%BackupFileDestination%" DEL /f /q "%BackupFileDestination%"

ECHO Pakowanie plikow ( Nowe okno )

START "Compressing Backup. DO NOT CLOSE" /belownormal /wait "%exe7Zip%" a -tzip -r-mx5 "%BackupFileDestination%" "%dirTempBackup%\"
ECHO Zakonczono kompresje
ECHO.

ECHO Kopiowanie zasobu na druga lokalizacje
COPY "%BackupFileDestination%" "%SecondaryBackupStorage%"

ECHO Czyszczenie plikow TEMP.
IF EXIST "%dirTempBackup%" RMDIR /s /q "%dirTempBackup%"
ECHO.

:End
ECHO !!KONIEC!!
ECHO.

ENDLOCAL

__________


TXT

__________

C:\vidbase$

___________


Oczywiście, rozwieje wątpliwości, wszystkie ścieżki są poprawne, 7z jest zainstalowany w domyślnej lokalizacji, i jest zmapowany dysk zdalny.
#2
Najczęstszą przyczyną w takich przypadkach jest konto, na podstawie którego działa skrypt w harmonogramie, nie posiadające prawa dostępu do np. ścieżek sieciowych. Najlepiej przełącz echo off na on i w logu patrz, w którym miejscu skrypt się wysypuje

Cytat:jest zmapowany dysk zdalny.
Nie widzę dyrektywy odwołującej się do zmapowanego dysku w tym skrypcie, ale to i dobrze - zmapowany dysk na faktycznym koncie np. administratora, a skrypt uruchamiany z jego uprawnieniami to nie to samo. Dysk zmapowany nie być dostępny, gdyż jest uruchamiany w osobnym kontekście, wiec albo w skrypcie jawnie zmapujesz dysk, albo (bezpieczniej) odwołujesz się bezpośrednio do lokalizacji w sieci.
#3
No niestety jezeli chodzi o konto to jest systemowy administrator, co gorsza skryptu nie da się odpalić z harmonogramu ręcznie, nawet jak tworze zwykły prosty skrypt tworzący tylko katalog to harmonogram go nie chce wywołać, czy istnieją jakieś mechanizmy w polityce bezpieczeństwa systemu, które uniemożliwiają uruchamianie skryptów ??
#4
Dodam, że skrypt uzupełniłem o wpisy mapowania:
NET USE z: \\172.25.1.xx\xxxx\xxx password /USER:xxxxx
SET SecondaryBackupStorage=z:\
#5
Sprawdź w dzienniku czy nie ma błędu związanego z uruchamianiem skryptu w harmonogramie. Może uruchamiasz skrypt z uprawnieniami administratora lokalnego zamiast np. administratora domeny?

Cytat:istnieją jakieś mechanizmy w polityce bezpieczeństwa systemu, które uniemożliwiają uruchamianie skryptów ??
Istnieją, ale skoro skrypt daje się uruchomić z palca na koncie administratora, znaczy to, że nie mają one zastosowania.
  


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Windows XP Jak odpalić kilka filmów "na raz" ze skryptu powłoki - startują ale po kolei mimimi 1 258 30.04.2008 09:20
Ostatni post: Krizz
  Windows XP Błąd skryptu przy logowaniu i wylogowywaniu po usunięciu Symanteca mimimi 8 463 20.02.2008 00:58
Ostatni post: Bitterman

Skocz do:


Użytkownicy przeglądający ten wątek:
1 gości