|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] русская переменная |
|
VBS/WSH/JS - [решено] русская переменная
|
Пользователь Сообщения: 96 |
Предположим что мы имеем некий скрипт который опрашивает службу "Супер мего служба"
и если она выключена - запускает ее! Скрипт налажен и настроен ! var ServiceName, WshShell, WshellApp; WshShell = WScript.CreateObject("WScript.Shell"); WshellApp = WScript.CreateObject("Shell.Application"); ServiceName = "AudioSrv"; if (WshellApp.IsServiceRunning(ServiceName)) WScript.Echo ("Сервис ", ""+ServiceName , " запущен!") else WshShell.Run("sc start " +ServiceName 1, true); WScript.Echo (ServiceName); Вот в таком состоянии он работает. НО ! Если имя службы состоит из одного слова на латинице. В противном случае "Супер мего служба" - не отрабатывает , как как нужно передать это значение в скобочках (Лапки) Как это сделать ?: |
|
Отправлено: 14:50, 04-01-2011 |
Сообщения: 53482
|
Профиль | Отправить PM | Цитировать Kobzar, попробуйте так:
var strComputer = "."; var objWMIService = GetObject( "winmgmts:{impersonationLevel=impersonate}!\\\\" + strComputer + "\\root\\cimv2"); var ServiceName = "Супер мего служба"; var colServices = objWMIService.ExecQuery( "SELECT * FROM Win32_Service WHERE Name = '" + ServiceName + "'"); var e = new Enumerator(colServices); for (; !e.atEnd(); e.moveNext()) if (e.item().Started) WScript.Echo("Служба " + ServiceName + " запущена!") else e.item().StartService(); |
Отправлено: 16:03, 04-01-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 96
|
Профиль | Отправить PM | Цитировать Ваш метод работает ! Я видел этот скрипт в инете! Но мне требовалось разобрать именно свой вариант !
Кстати - он тоже работает и имеет вид var ServiceName, WshShell, WshellApp; WshShell = WScript.CreateObject("WScript.Shell"); WshellApp = WScript.CreateObject("Shell.Application"); ServiceName = "1C:Enterprise 8.2 Server Agent"; 'ServiceName = "AudioSrv";' if (WshellApp.IsServiceRunning(ServiceName)) WScript.Echo ("Сервис ", ""+ServiceName , " запущен!") else WshShell.Run("sc start \"" +ServiceName + "\"" , 1, true); |
Отправлено: 16:19, 04-01-2011 | #3 |
Сообщения: 53482
|
Профиль | Отправить PM | Цитировать Цитата Kobzar:
|
|
Отправлено: 16:30, 04-01-2011 | #4 |
Пользователь Сообщения: 96
|
Профиль | Отправить PM | Цитировать пример ?
|
|
Отправлено: 16:56, 04-01-2011 | #5 |
Сообщения: 53482
|
Профиль | Отправить PM | Цитировать Цитата Kobzar:
|
|
Отправлено: 17:21, 04-01-2011 | #6 |
Пользователь Сообщения: 96
|
Профиль | Отправить PM | Цитировать собственно немного мануала и вот оно
var i, ServiceName, WshShell, WshellApp; WShell = new ActiveXObject("WScript.Shell"); WShellApp = new ActiveXObject("Shell.Application"); ServiceName = "TeamViewer6"; for (i=0; i<3; i++) { if (WShellApp.IsServiceRunning(ServiceName)) WScript.Echo ("Сервис " + ServiceName + " запущен!") else WShellApp.ServiceStart("" +ServiceName, false); WScript.Sleep(5000); } |
Отправлено: 13:09, 05-01-2011 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Два минуса данного подхода — то, что работает сие на локальной машине, и то, что нет возможности отловить неудачу запуска службы без лишних телодвижений. Особенно «красиво» смотрятся повторы. Вариант Petya V4sechkin'а идеологически более корректен.
|
Отправлено: 14:25, 05-01-2011 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2008 R2 - Загадочная Системная переменная | GreyAngel | Windows Server 2008/2008 R2 | 1 | 03-07-2010 09:44 | |
CMD/BAT - [решено] Два файла - как одна переменная, переменная - как параметр | taravasya | Скриптовые языки администрирования Windows | 6 | 16-02-2010 04:49 | |
C/C++ - Какая переменная быстрее? | Ferum01 | Программирование и базы данных | 7 | 08-10-2009 02:12 | |
Глобальная переменная | 11943499 | AutoIt | 9 | 23-07-2009 20:58 | |
Переменная kern.maxproc | xliver | Общий по FreeBSD | 2 | 02-03-2007 22:38 |
|