2015-06-03 60 views
0

我們有一個powershell腳本,我們從使用powershell 4的系統上的ac#.Net 4.5程序中解脫出來。其主要目的之一是查找和停止關聯的Windows服務,以便我們可以保持它。在參數字符串中使用括號執行powershell

的問題是一些網站上的服務的名稱,在名稱中括號即

Acme的管理服務(support.internal)

這將導致PowerShell將產生一個異常,因爲我認爲它試圖解決(support.internal)作爲一個對象的屬性。有沒有辦法可以跳過括號,因爲我們不太可能重新命名字段中的所有潛在的Windows服務名稱。

來複制此錯誤的一個例子是下面

這是我們傳遞給cmd.exe的所述argumentstring。

/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' 不被識別爲 cmdlet,函數,腳本文件或可操作的名字程序。 檢查名稱的拼寫,或者如果包含路徑,請驗證 路徑是否正確,然後重試。在行:1個字符:52 + c:\ psrunner \ robotest.ps1 - 資源Neutrino更新程序(support.internal) - 目標... + ~~~~~~~~~~~~~ + CategoryInfo:ObjectNotFound:(support.internal:字符串)[],鈷mmandNotFoundException + FullyQualifiedErrorId:CommandNotFoundException

+0

嘗試使用反斜槓「'」或反斜槓來轉義,或者確實在所有地方都進行服務重命名。 – Vesper

回答

2

單引號代替雙引號還應該讓PS看到輸入作爲一個純粹的字符串。

相關問題