Wygląda na to, że po wprowadzeniu paru poprawek do obu skryptów już działa.
Wielkie dzięki !
-- 24 lut 2010, 16:12 --Przepraszam że piszę post pod postem, ale jest to uzasadnione.
Ze skryptami żadnego problemu nie ma, działają. Dodałem tylko przełącznik do komendy shutdown, tak aby zostało wymuszone zabicie wszystkich procesów (brat anulował w Firefoksie zamykanie i w ten sposób to obchodził). Pojawił się jednak kolejny problem. Podczas dłuższej nieobecności przestawiła się o 60 minut godzina (dlaczego - nie mam pojęcia, zmiany czasu na letni czy zimowy w tym czasie przecież nie było). Gdy to skorygował, pozostały czas skrócił się o godzinę. Łatwo się domyślić, jaki był tego efekt - brat pokręcił zegarem i wyszło, że zostało mu 11 godzin (!). Nie wiem jak to zrobił, bo czas, jak i data się zgadzały, w plikach gdzie jest zapisywany pozostały czas na pewno nie grzebał (na to by nie wpadł). W każdym razie zaszła konieczność ustawienia mu konta z ograniczeniami. A na takim skrypt nie działa - któraś z komend, chyba shutdown, wymaga praw administracyjnych.
System to Windows XP, więc metoda z harmonogramem zadań odpada. Próbowałem też runas, ale nie działa. Możesz więc przybliżyć mi to:
EDIT:
Na to też jest sposób, uruchomienie innego skryptu w skrypcie inicjującym z uprawnieniami konta SYSTEM lub innego.
?
Czy chodzi o to, żebym utworzył skrypt inicjujący, który zawierałby wywołanie skryptu właściwego z uprawnianiami administratora za pomocą komendy runas? I czy jedyne wyjście w tej sytuacji to wyłączenie hasła na użytkownika Administrator - bo to konto nie jest widoczne na ekranie logowania (ew. włączenie klasycznego ekranu logowania i utworzenie konta o nazwie niemożliwej do odgadnięcia)?
EDIT:
Spróbowałem tak zrobić i są 2 problemy.
1. Runas nadal oczekuje podania hasła, a z poziomu skryptu raczej nie da się wcisnąć ENTER (puste linie ignoruje).
2. Po odpaleniu ręcznym nie działa.
Scripts\Logon\start.cmd:
Kod: Zaznacz cały
RUNAS /user:[LOGIN]\administrator ..\startsys.cmd
Scripts\Logoff\kon.cmd:
Kod: Zaznacz cały
RUNAS /user:[LOGIN]\administrator ..\endsys.cmd
Scripts\startsys.cmd:
Kod: Zaznacz cały
: SKRYPT AUTORSTWA KPC21
: ZAKAZ KOPIOWANIA BEZ ZGODY AUTORA
: KPC211 MAŁPA DŻI-MEJL PISANE PO ANGIELSKU KROPKA COM
SETLOCAL ENABLEEXTENSIONS
SET data=%date:~6,4%-%date:~3,2%-%date:~0,2%
SET /A czas=(%time:~0,2%*3600)+(%time:~3,2%*60)+(%time:~6,2%)
IF EXIST %data%-wl.txt GOTO RESTART
ECHO %czas% > %data%-wl.txt
ECHO 0 > %data%-wyk.txt
SHUTDOWN /S /T 7200 /F
ECHO System jest uruchomiony! > ursys.txt
GOTO EOF
:RESTART
IF NOT EXIST ursys.txt GOTO POPRAWNIEWLACZONY
FOR /F %%a IN (%data%-wl.txt) DO SET wl=%%a
FOR /F %%b IN (%data%-wyk.txt) DO SET stwyk=%%b
SET /A wyk=%czas%-%wl%
SET /A nwwyk=%stwyk%+%wyk%
ECHO %nwwyk% > %data%-wyk.txt
DEL ursys.txt
:POPRAWNIEWLACZONY
ECHO %czas% > %data%-wl.txt
FOR /F %%c IN (%data%-wyk.txt) DO SET wyk=%%c
SET /A poz=7200-%wyk%
IF %poz% LEQ 0 (SHUTDOWN /S /T 0 /F) ELSE SHUTDOWN /S /T %poz% /F
ECHO System jest uruchomiony! > ursys.txt
Scripts\endsys.cmd:
Kod: Zaznacz cały
: SKRYPT AUTORSTWA KPC21
: ZAKAZ KOPIOWANIA BEZ ZGODY AUTORA
: KPC211 MAŁPA DŻI-MEJL PISANE PO ANGIELSKU KROPKA COM
SETLOCAL ENABLEEXTENSIONS
SET data=%date:~6,4%-%date:~3,2%-%date:~0,2%
FOR /F %%a IN (%data%-wl.txt) DO SET wl=%%a
FOR /F %%b IN (%data%-wyk.txt) DO SET stwyk=%%b
SET /A czas=(%time:~0,2%*3600)+(%time:~3,2%*60)+(%time:~6,2%)
SET /A wyk=%czas%-%wl%
SET /A nwwyk=%stwyk%+%wyk%
ECHO %nwwyk% > %data%-wyk.txt
DEL ursys.txt
SHUTDOWN /A