![](/img/trans.png)
[英]In IE getting error like “Wrong number of arguments or invalid property assignment”
[英]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
我嘗試過的:
sb.Append(@"WshShell.Run('C:\\\\Windows\\\\System32\\\\Logoff.exe " + intSessionID + " /SERVER:" + strServer + ", 1, false);'");
=同樣的錯誤。 "logoff is not recognized as an internal or external command, operable program or batch file"
。非常類似於Ant腳本中的Call logoff 。 請幫忙!
從內部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.