У нас есть сценарий powershell, который мы обходим с помощью программы aC# .Net 4.5 на системах с powershell 4. Одной из главных целей является найти и остановить связанную службу Windows, чтобы мы могли сохранить его.Выполнение powershell с скобками в строке аргумента
Проблема на некоторых сайтах имя службы имеет скобки в имени т.е.
Service Management Acme (support.internal)
Это приводит к тому, чтобы сгенерировать PowerShell исключение, как я думаю, что он пытается разрешить (support.internal) как свойство объекта. Есть ли способ избежать скобок, так как вряд ли мы сможем переименовать все потенциальные имена служб Windows в поле.
Пример, который повторяет эту ошибку ниже
Это argumentstring мы переходим к cmd.exe.
/c powershell -executionpolicy unrestricted c:\psrunner\robotest.ps1 -source "Acme Management Service (support.internal)" -destination "" -logName "c:\psrunner\logs\\03062015_14_04_51.txt" > "c:\psrunner\logs\\powershell_log03062015_14_04_51.txt"
Когда мы называем сценарий т.е.
support.internal: Термин «support.internal» не распознается как имя командлета, функции, файла сценария или действующий программа. Проверьте правильность написания имени или, если был указан путь, проверьте , что путь верен и повторите попытку. В строке: 1 char: 52 + c: \ psrunner \ robotest.ps1 -source Обновление обновлений для Neutrino (support.internal) -destinatio ... + ~~~~~~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (support.internal: String) [], Co mmandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException
Попробуйте либо обратную сторону «' », либо обратную косую черту, чтобы сбежать, или действительно повсеместно переименовать службу. – Vesper