web-dev-qa-db-ja.com

SCCMを介して更新を展開するのは、ユーザーがログオフしている場合のみ)

SCCMパッケージ展開の場合)には、割り当てを必須にし、スケジュールをログオフにするオプションと、ユーザーがログオンしていないときにのみパッケージを展開するオプションがあります。

同じ方法でソフトウェアアップデートを展開したいと思います。設定が表示されないので、 ハック 回避策を使用する必要があります。誰かがそれを実行したか、実行しているか、またはこれを実行するために何ができるかを知っているかどうかを知りたいです。私はPowerShell、sccm、およびc#にかなり精通しているので、これらの線に沿ったものはすべて素晴らしいでしょう。参考までにSCCM 2012SP1を使用しています。

4
MDMoore313

SCCMのSDKドキュメントを掘り下げた後、私がやったことは、更新を利用可能にすることでしたが、必須ではありません。これにより、root/ccm/clientsdk名前空間にCCM_SoftwareUpdateというWMIクラスが設定されます。 ここ を参照してください。次のような単純なクエリ

"SELECT * FROM CCM_SOFTWAREUPDATE WHERE COMPLIANCESTATE=0 AND EVALUATIONSTATE < 2"

まだインストールされていない利用可能なアップデートを取得します。更新がインストールされると、最終的にはこの名前空間から削除されますが、時間がかかります。何らかの理由で更新のインストールを停止して再開する必要がある場合は、部分的にインストールされている更新を除外すると便利です。 msdnページには、さまざまなコンプライアンス状態と評価状態に関する詳細情報があります。次に、その更新の配列が同じ名前空間のCCM_SoftwareUpdatesManagerクラスのInstallUpdatesメソッドに渡され、更新の進行状況を個別に監視できます(そのため、更新をすべてではなく1つずつそのメソッドに渡すことにしました。一度にそれらをすべて渡すことは、私が見たものから、それらをキューに入れて、とにかくそれらを1つずつインストールすること以外にはあまり効果がありません)。

グループポリシーでログオフスクリプトとして設定したC#ですばやく汚いGUIを作成しました(表示できます ここ )。そのため、実行時にユーザーはそれをctl altdelできません。または、ボタンを押してウィンドウを閉じます。それは私が得ることができる限り本物に近いです(私たちはログインの背景を制御できるので、一貫性のためにアプリの背景を同じように見せました)。

悲しい部分は、おそらく私たちの環境にある多数のラップトップのソリューションb/cを採用しないことです。ラップトップをシャットダウンしてその日家に持ち帰りたいと思う人は誰もいません。アップデートをインストールするのに不確定な時間を待つだけで、その時点で )永遠のようです。

1
MDMoore313