2014-03-28 73 views
0

我使用命令/參數使用.bat和.vbs運行runas以繞過SRP限制(僅限教育用途),.vbs文件用於隱藏命令窗口我寫在VB.Net或C#上。我想讓它成爲一個獨立的.exe文件,因爲我想在使用SRP的機器中也禁止命令提示符和VBScript。使用「Runas」執行程序

HideBat.vbs

CreateObject("Wscript.Shell").Run "run.bat", 0, True 

的run.bat

@ ECHO OFF 
    runas /trustlevel:"Unrestricted" "C:\Program Files\Deluge\deluged.exe" 

這是我想出這麼遠。

 Dim myprocess As New System.Diagnostics.Process() 
    myprocess.StartInfo.FileName = Path.Combine(GetFolderPath(SpecialFolder.System), "runas.exe") 
    myprocess.StartInfo.Arguments = "/trustlevel:"Unrestricted"" & " " & "c:\program.exe" 
    myprocess.Start() 

由於引號引起的Unrestricted存在問題。

+1

[在Process.Start()中傳遞參數的可能的重複)(http://stackoverflow.com/questions/22413125/passing-arguments-in-process-start) –

回答

1

假設C#(我不知道爲什麼你這個標記作爲VB.NET和C#)

Process myprocess = new Process(); 
myprocess.StartInfo.FileName = Path.Combine(GetFolderPath(SpecialFolder.System), "runas.exe"); 
myprocess.StartInfo.Arguments = "/trustlevel:\\\"Unrestricted\" \"C:\\Program Files\\Deluge\\deluged.exe\""; 
myprocess.Start(); 

用反斜槓來轉義字符串中的雙引號。

已更新答案 - 忘記了在路徑中反斜槓的反斜槓。

+0

謝謝我會嘗試一下..關於標籤,無論是VB.net或C#將做,再次感謝我會嘗試它 – mercenary

+0

語法錯誤,聲明期末 – mercenary

+0

在參數有一個藍色的波浪線下無限制到C – mercenary