VBScript на самом деле не моя вещь, но с толку.
По сути, у меня есть скрипт, который будет смотреть в текстовом файле, содержащем набор имен компьютеров, затем будет проверять, запущена ли служба, если это так, остановить и отключить ее, если не работает, проверить, включена ли она, а затем отключена. Это. Выход из начального состояния и конечного состояния.
Попытка улучшить сценарий, чтобы иметь возможность сделать обратное - т.е. включить и запустить.
Они будут запускаться из запланированной задачи Windows, поэтому нужно просто передать параметр, скажем, «Вкл» или «Выкл»
Итак, что-то вроде этого вверху:
Function Toggle
If UCase(WScript.Arguments(0)) = "ON" Then states = "Running" End If
If UCase(WScript.Arguments(0)) = "OFF" Then states = "Running" End If
If UCase (WScript.Arguments(0)) = "ON" Then symbol = " = " End If
If UCase (WScript.Arguments(0)) = "OFF" Then symbol = " <> " End If
End Function
Но еще ниже, когда я пытаюсь использовать их для сравнения состояния службы, используя:
If InStr(objProcess.DisplayName,strService) > 0 And objProcess.State & symbol & states Then Status = True
Ошибка времени выполнения Microsoft VBScript: Несоответствие типов: '[string: "Stopped = Running"]'
Если я закомментирую символьную переменную и использую символ =
, сравнение сработает.
Можно ли передать =
или <>
в строку для сравнения?
Пробовал использовать cstr
вокруг всех переменных, но это не имело значения.