簡體   English   中英

從JavaScript運行WScript.Shell.Run()時獲取“錯誤的參數數量或無效的屬性賦值”

[英]Getting “Wrong number of arguments or invalid property assignment” when running WScript.Shell.Run() from JavaScript

背景:

我試圖從ASP.NET Web應用程序在本地計算機上運行C:\\ Windows \\ System32 \\ Logoff.exe,以從其終端服務會話中注銷本地用戶。

這是我到目前為止:

C#

protected void btnContinueClick(Object sender,
                       EventArgs e)
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("WshShell = new ActiveXObject('WScript.Shell');\n");
        sb.Append(@"WshShell.Run('C:\\Windows\\System32\\Logoff.exe " + intSessionID + " /SERVER:" + strServer + "', 1, false);");
        ScriptManager.RegisterStartupScript(Page, GetType(), "RestartSession", sb.ToString(), true);

在IE的F12菜單打開的情況下運行上述操作,顯示腳本已成功添加到我的HTML中:

HTML

<script type="text/javascript">
//<![CDATA[
WshShell = new ActiveXObject('WScript.Shell');
WshShell.Run('C:\\Windows\\System32\\Logoff.exe', 1, false);//]]>
</script>
</form>
</body>

但是當Run(...)行執行時,我在IE中得到以下錯誤:

Error: WshShell.Run()   Wrong number of arguments or invalid property assignment

我嘗試過的:

  1. 刪除“,1,false”可選參數=相同的錯誤。
  2. 移動''以便行讀取(不知道哪個是正確的): sb.Append(@"WshShell.Run('C:\\\\Windows\\\\System32\\\\Logoff.exe " + intSessionID + " /SERVER:" + strServer + ", 1, false);'"); =同樣的錯誤。
  3. 使用logoff命令調用.bat文件。 (.bat確實運行,但是我收到一個新錯誤: "logoff is not recognized as an internal or external command, operable program or batch file" 。非常類似於Ant腳本中的Call logoff
  4. 在我能想到的盡可能多的組合中也改變了轉義字符,所以我認為不是這樣。
  5. 直接從CMD窗口運行命令可以完成預期的工作。

請幫忙!

從內部Intranet Web應用程序注銷用戶的終端服務會話的任何合適的替代方法也將非常感謝!

經過很多變化,我有一個有效的解決方案。 雖然這個問題很可能只是變量傳遞和轉義字符(所以非常簡單),但我仍然會發布答案,因為它可以指向其他人在多個平台上傳遞變量時的解決方案。

C#

ScriptManager.RegisterStartupScript(Page, GetType(), "Logoff", $"Logoff(\"{intSessionID}\", \"{strServer}\");", true);

JavaScript的

<script type="text/javascript">
    function Logoff(intID, strSvr) {
        WshShell = new ActiveXObject("WScript.Shell");
        WshShell.Run("C:\\Users\\User\\Desktop\\Logoff.vbs" + " \"" + intID + "\" " + " \"" + strSvr + "\"", 1, false);
    }
</script>

然后,VB腳本運行原始的Logoff.exe命令以及其他幾個審計日志記錄行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM