背景:は、 "引数または無効なプロパティの割り当ての間違った数" を取得するJavaScriptからWScript.Shell.Runを()の実行時に
私はC実行しようとしています:上の\ WINDOWS \ System32に\ Logoff.exeをローカルマシンをASP.NET Webアプリケーションから削除して、ローカルユーザーをターミナルサービスセッションからログオフします。ここで
は、私がこれまで持っているものです。
C#
オープンIEのF12メニューで上記を実行する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);
、スクリプトが正常に私のHTMLに追加されますを示しています。
HTML
<script type="text/javascript">
//<![CDATA[
WshShell = new ActiveXObject('WScript.Shell');
WshShell.Run('C:\\Windows\\System32\\Logoff.exe', 1, false);//]]>
</script>
</form>
</body>
しかし、ファイル名を指定して実行(...)の行は、私はIEで次のエラーを取得する実行したとき:
Error: WshShell.Run() Wrong number of arguments or invalid property assignment
私が試してみました何: "1、偽の" オプションを削除
- を引数=同じエラー。
- ''を移動すると、行が読み込まれます(どちらが正しいかわからない場合)。
sb.Append(@"WshShell.Run('C:\\Windows\\System32\\Logoff.exe " + intSessionID + " /SERVER:" + strServer + ", 1, false);'");
=同じエラーです。 - logoffコマンドを使用して.batファイルを呼び出します。 (実際には.batは実行されますが、新しいエラーが発生します:
"logoff is not recognized as an internal or external command, operable program or batch file"
。Call logoff in Ant scriptと非常によく似ています。 - エスケープ文字は、可能な限り多くの組み合わせが考えられます。 CMDウィンドウから直接コマンドを実行
- が意図した仕事をしていません。
内部イントラネットのWebアプリケーションからユーザーのターミナルサービスセッションをログオフする任意の適切な代替方法もあることでしょう!
を助けてください大いに感謝!
'Logoff'にはいくつかのパラメータが必要ですか? – Teemu
私の計画は、この行を 'sb.Append(@" WshShell.Run( 'C:\\ Windows \\ System32 \\ Logoff。intSessionIDとstrServerは、ターミナルサービスセッションIDとサーバーホスト名の正しい値です。 –
編集済みこれらのパラメータを表示する質問は、Webサーバーから実行するときに必要になると思います。 –