Skrypt bat i komenda net user - nieprawidłowe działanie

Potrzebuję (nie sobie oczywiście) ograniczyć pracę na komputerze do 2 godzin (nie ważne po co, ma być i koniec :slight_smile: ). Najlepiej byłoby, gdyby po zalogowaniu się i przepracowaniu np. 30 minut, było można się wylogować, względnie wyłączyć komputer i później go z powrotem włączyć. Absolutnie niedopuszczalna jest możliwość ponownego włączenia komputera po przepracowaniu tych 2 godzin (do końca doby).

Ponieważ nie znalazłem programu, który byłby bezpłatny i by mnie zadowolił (tzn. znalazłem, ale pod jedyny słuszny system z pingwinem w logo, co nie wchodzi w grę), postanowiłem napisać skrypt bat. Oto co udało mi się stworzyć:

@echo off

setlocal enableextensions

set /a godz0=%time:~0,2%

echo %godz0%

set /a godz2=%time:~0,2%+2

echo %godz2%

echo>dzien.vbs WScript.Echo WeekDayName(Weekday(Date),true)

for /f %%d in ('cscript //nologo dzien.vbs') do set dzien=%%d

del dzien.vbs

echo %dzien%

net user /nazwausera/ /times:%dzien%,%godz0%-%godz2%

shutdown /s /t 7200 /c "Masz 2 godziny na granie etc ;-)"

Dodałem go do autostartu za pomocą rejestru.

Jak wiadomo, blokada powinna przestać działać po skończeniu się danego dnia tygodnia (zmienna %dzien%). Po włączeniu komputera następnego dnia nie można się jednak zalogować, co jest bardzo dziwne, bo skrypt działa prawidłowo (po wklepaniu komend w konsoli Windowsa wszystko gra, zgadzają się zmienne). Dlaczego więc to nie działa?

To tylko taki strzał, bez wnikania w budowę tego skryptu. Ale być może nie ma potrzeby szukać dalej… Zmień rozszerzenie skryptu z bat na cmd. Różnica niby żadna, ale jednak w systemach NT-pochodnych jest. Różnice są subtelne ale na tyle istotne, że niektóre skrypty nie działają albo działają inaczej, w zależności od rozszerzenia skryptu.