切断されたターミナル セッションの .exe を強制終了する方法を探しています。Navision についてです。ライセンスには制限があり、使用されていないライセンスを削除し続けたいと考えています。
切断されたセッションを完全にログオフする方法があることは知っていますが、この特定の進行状況のみを閉じることを好みます。
私が探していることを正確に実行するように記述されたコードを含むブログ投稿を見つけました。切断されたセッションで特定の .exe をスキャンし、それを強制終了するようにスケジュールされた PowerShell スクリプト。http://www.interworks.com/blogs/jpoehls/2012/12/12/killing-processes-disconnected-terminal-service-sessionsコードはこの Web ページに掲載されています。
残念ながら機能しません。次のエラーが表示されます。
PS C:\scripts> .\navscript.ps1
An empty pipe element is not allowed.
At C:\scripts\navscript.ps1:91 char:10
+ | <<<< % { $id = $_;
+ CategoryInfo : ParserError: (:) [
+ FullyQualifiedErrorId : EmptyPipeElement
Google でさまざまな解決策を見つけるために多くの時間を費やしたほか、90 行目の空の行を削除しようとしました。これにより、別のエラーが発生しました。
PS C:\scripts> .\navscript.ps1
Exception calling "Substring" with "2" argument(s): "Lengte kan niet minder dan nul zijn.
Parameternaam: length"
At C:\scripts\navscript.ps1:52 char:44
+ ;"ID" = $line.Substring <<<< ($line.IndexOf(" ", $starters.Username), $starters.ID - $line.IndexO
f(" ", $starters.Username) + 2).trim()
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
誰かがこれを機能させる方法を知っていることを願っています。