PowerShell:マシンと人間

しばらく前、私はターミナルサーバーファームを継承しました。 そして、マニュアルは私に仕事を設定しました-すべてのターミナルサーバー上のスカイプ、クローム、firefoxとmail.ruエージェントを根絶すること。 歴史的に、同社はシンクライアントを使用しており、特権ユーザーのみが本格的なPCを使用しており、上記のプログラムはそこと端末で許可されています-いいえ、いいえ。



画像







私はすべてのプログラムを破壊し、特定のアプリケーションの起動を制限するADポリシーを固定し、決定しました-それがおそらくすべてです。 しかし、1日後、ユーザーがプログラムを再び使用していることがわかりましたが、それらは既にポータブルバージョンであり、exeファイルの名前は123 * .exeに変更されました。率直に言って、ユーザーの知識と準備に驚かされました。



インターネットを閉鎖したり、許可されているプログラムを除くすべてのプログラムを完全に禁止したりする問題は、オフィスの特性により適切ではありませんでした。 スポーツに興味があったので、PowerShellを使用することにしました。



1.実行中のプロセスを定義する

get-process







2.さらに、興味のあるものだけが必要です-ここでは、プロセスの名前が123.exeに変更され、プロセスリストで123のようにハングすることに注意してください。 このプロセスが良いか悪いかは明確ではないので、説明フィールドを見てください。スカイプファイルの名前が123に変更され、123がプロセスでハングしますが、その説明は古い-スカイプ...



where-object { $_.Description -match 'skype' }







3.見つかったプロセスを停止します。



Stop-Process -Force







乾燥残留物には、次の形式の設計があります。

get-process | where-object { $_.Description -match "skype" } | Stop-Process -Force







これをps1スクリプトに入れて何かに添付できますが、署名するか、セキュリティ要件を無効にする必要があります。署名されていないスクリプトは実行しないでください。



私は別の行動をとりました-プログラムを実行するように指示したスケジューラーでタスクを作成しました:

C:\Windows\...\powershell.exe





パラメータ付き

get-process | where-object { $_.Description -match 'skype' } | Stop-Process -Force







この場合、起動が行われ、スクリプトの署名は必要ありません。 これで、タスクは少なくとも毎分起動され、望ましくないプログラムを打ち負かすことができます。 また、 このソリューションに洗練されたフィルタリング追加すると、一般に、ドメイン全体で特定のプログラムを使用することからユーザーを引き離すことができます(洗練された検索がなければ、名前が変更されたファイルでは機能しません)。



All Articles