Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows NT/2000/2003 (http://forum.oszone.net/forumdisplay.php?f=5)
-   -   [решено] Запуск bat файла (http://forum.oszone.net/showthread.php?t=122216)

GuseV 07-11-2008 09:31 945656

Запуск bat файла
 
Есть домен под Windows Server 2003х64 Enterprise.
Под него стоит UPS (Ippon). Для того чтобы сервак вырубился правильно, нужно написать исполняемый файл, который запустится перед выключением UPS. Вот беда, пишу файл
shutdown -s -f, расширение bat. Ну не запускаеться он, проскальзывает черненькое окно на 1 сек и исчезает. Причем пробовал запуск этого файла из totalcmander, тоже не запускаеться. А вот из обычного explorer запускается на ура. Как заставить файл запуститься нормально из под утилиты Ippon?

monkkey 07-11-2008 09:37 945662

cmd
pause

GuseV 07-11-2008 09:48 945666

Вот, создал батник test.cmd, там для примера написал shutdown -i, вот что получилось:


C:\temp>shutdown -i
'shutdown' is not recognized as an internal or external command,
operable program or batch file.

C:\temp>pause
Press any key to continue . . .

Я так понимаю что explorer у меня запускаеться в 64bit режиме, а total в 32bit, может поэтому?

Petya V4sechkin 07-11-2008 11:23 945734

GuseV, возможно, у вас испорчена системная переменная PATH. Проверьте раздел реестра "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment", тип параметра Path должен быть REG_EXPAND_SZ. Кривые инсталлеры некоторых программ (например MySQL) изменяют тип на REG_SZ, в результате командный процессор не может найти файлы в системных папках.

babki 07-11-2008 11:57 945764

А если VBS скриптом это сделать?
создай файл shutdown.vbs c содержимым:


CompName = inputBox("Введите имя ПК:")

Set objService = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}!\\" & CompName & "\root\CIMV2")
If Err.Number <> 0 Then
WScript.Echo Err.Number & ": " & Err.Description
WScript.Quit
End If
For Each objOS In objService.ExecQuery("SELECT * FROM Win32_OperatingSystem")
Exit For
Next
'objOS.Reboot 'перезагрузка
objOS.Shutdown 'выключение
'objOS.Win32Shutdown 0 'Log Off
If Err.Number <> 0 Then
WScript.Echo Err.Number & ": " & Err.Description
WScript.Quit
End If

попробуй поэкспериментировать с ним...

А что если местонахождения файла указать напрямую с полным путем например "С:\WINDOWS\system32\shutdown.exe -s -f" или где там у Вас стоит система...

GuseV 07-11-2008 12:02 945772

Попробую со скриптом, хотя в VBS скриптах не бум-бум.
На счет
Цитата:

Цитата Petya V4sechkin
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" »

прописал путь до файла, не в этом дело точно. Тут точно нужно копать в сторону версий 64 и 32.

GuseV 07-11-2008 12:28 945793

Господа, решил проблемму таким способом:
Скопировал файл shutdown.exe с WinXP на сервер, в папку с исполняемым файлом. Написал в cmd:

shutdown.exe
shutdown -s -f

Все :oszone:


Время: 18:33.

Время: 18:33.
© OSzone.net 2001-