2014-05-12 60 views
-2
set x=%CD% 

runas /netonly /user:server_name\test "powershell.exe -NoExit %x%\deploy.ps1 server_name\MSSQL2012 %x%\_RetainALL.xmla 

問題:我需要從服務器運行PS腳本作爲用戶,並在此腳本中提供參數。只需簡單地點擊一個文件(實際上就是.bat),便於另一個IT團隊在服務器上部署ssas解決方案。文件路徑中存在空格的問題通過.bat文件的powershell

爲此,我從.bat文件使用runAs命令。這裏有一些複雜性:我不能用在powershell中的文件路徑中的空格的迴避問題,因爲我使用.bat for runAs(第一個雙引號將被解釋爲runAs的結尾)

另外我想到了使用Credential的runAs,但它也有同樣的問題。

回答

0
runas /netonly /user:server_name\test "cmd /c powershell.exe -NoExit \"%cd%\deploy.ps1\" server_name\MSSQL2012 \"%cd%\_RetainALL.xmla\" " 

逃生的運行方式引號指揮和運行一個cmd實例內。

+0

這不工作。同樣的錯誤在PowerShell中。 – user3627830

+0

@ user3627830中,問題是關於引號沒有被runas正確解釋的問題,而不是powershell。什麼和錯誤在哪裏? –

+0

公平allowt,但powershell明白這一點:\「%cd%\ deploy.ps1 \」像%cd%\ deploy.ps1 \,如果我做\'%cd%\ deploy.ps1 \'然後powershell像:\ D: \文件夾\ deploy.ps1。 – user3627830