当社には、Windows Embedded Standard 7 を実行するシン クライアントが多数あり、それらを管理するために SCCM 2012 R2 サーバーがあります。シン クライアントでは書き込みフィルターが有効になっているため (FBWF)、マシンの変更は永続的ではありません。まれに、シン クライアントで何かを更新する必要がある場合は、SCCM 経由で展開するだけで、書き込みフィルターをオフにしてからオンに戻す処理が自動的に行われ、変更がコミットされます。
これがすべき起こる:
SCCM クライアントはユーザーに通知し、作業を保存してシステムから抜け出すための 30 分のカウントダウンを表示します。その後、シン クライアントが再起動し、書き込みフィルターを無効にします。ログオン画面には南京錠が表示され、ユニットがサービス中であることが通知され、SCCM が処理中の間、通常の (管理者以外の) ユーザーはログオンできません。SCCM が完了すると、書き込みフィルターが再度有効になり、再起動して、ユーザーが再度ログインできるようになります。
私が抱えている問題は、システムにログインするために近接カード リーダーを使用していることです。従業員はパスワードを入力しません。バッジをタップするだけです。このシステムは優れていますが、それを実行するソフトウェアによって、Windows Embedded の書き込みフィルター自動化が妨げられます。
これが実は起こる:
SCCMクライアントは、書き込みフィルターをオフにして再起動する前に、通常の15分間の通知を行います。再起動すると、普通ログイン画面が表示されます。SCCM がソフトウェアをインストールしている間、ユーザーはシステムにログインして使用できます。また、ユーザー セッションがアクティブであるため、書き込みフィルターを再度オンにして再起動する前に、再度 30 分間の通知が表示されます。
このシナリオでは、展開時間が 30 分余分にかかるだけでなく、一般ユーザーにはシン クライアント上で 30 ~ 60 分間の保護されていない時間が与えられ、書き込みフィルターが再びオンになると、ユーザーが行った変更がイメージに永続的に焼き付けられます。
この問題は、Windows Embedded 7 が通常の Windows 7 とは異なる資格情報プロバイダー (別名 GINA) を使用していることに起因していますが、SSO 製品が機能するには Windows 資格情報プロバイダーを置き換える必要があります。ベンダーに問い合わせましたが、既知の問題であり、修正や回避策はないと言われました。
それで、私の質問は次のとおりです:
希望する動作を別の方法でシミュレートするにはどうすればよいでしょうか? 特定のユーザー グループへのローカル ログオンを拒否できるグループ ポリシー設定があることは知っています。インストールの前後で対応するレジストリ設定を切り替えることができると考えていましたが、他のアイデアも検討しています。
必要であれば、スクリプトによるインストールも構いません。スクリプト、PowerShell、VBScript などに精通しています。この問題を解決する優れたアイデアをお持ちの方がいらっしゃるかどうか、知りたいだけです。
アップデート:
これらのデバイスは、スタッフが患者の記録を作成するために病院環境で使用されていることをお伝えし忘れていました。デバイスは 24 時間利用可能でなければならないため、ログオン時間を制限したり、メンテナンス ウィンドウを設定したりすることはできません。シフト スーパーバイザーに事前に通知することでダウンタイムを管理していますが、1 時間以上かかると法令遵守の問題となり、正式なダウンタイム手順を実施する必要があります。
答え1
始める前に、あなた自身のためというよりはむしろ一般の読者のために、細かい点を指摘しておきたいと思います。
SCCM経由でプッシュするだけです
SCCM はプルベースのテクノロジーです。あなたのおっしゃることはわかりますが、私のティア 1 の担当者に対して、SCCM はプッシュベースのテクノロジーではないことを強調する機会があればあるほど、彼らはそれをより早く理解するようになります。
ベンダーに問い合わせたところ、既知の問題であり、修正や回避策はないと言われました。
この問題の原因は、組み込みのカード認証プログラムにあるようなので、残念です。ベンダーに問い合わせれば、実際にソフトウェアを修正してくれるかもしれません。
本当の答えに移りましょう。いくつかの解決策が考えられますが、どれも特に良いものではありません。
- これらのクライアントのメンテナンス ウィンドウを構成して、クライアントを書き込みフィルターから削除するための最初の再起動、実際のペイロード、および結果として生じる再起動がすべて、従業員が端末にいないオフ時間に実行されるようにします。これは最も手間のかからないオプションのようです。SCCM を今以上に複雑にする必要はありません。
- 作成するローカルグループポリシーログオン拒否ユーザー権利にセキュリティ グループを追加し、アプリケーションの展開の一部として割り当て/割り当て解除するテンプレート。
- PowerShellを使用してログオン拒否ユーザー権限を設定します。PowerShell コミュニティ拡張機能 (PSCX)
Set/Get-Privileges
ユーザー権限の割り当てを操作できるコマンドレットがあります - 必要に応じてAPIを使用することができます。例。
答え2
タスク シーケンスを使用してこれを処理する可能性については誰も触れていないようですので、その利点をリストアップさせてください (一般的にはあまり詳しくないと思いますが、よく知っている場合でも読んでください)。
インストールと構成のすべてがSCCMで処理される場合、タスクシーケンスを使用してこれを実行できるはずです。主にOSDの場合、TSを使用するのはのみOSD 向けであり、次のような利点があります。
ワークステーションにログインできません
TS は winlogon.exe が実行される前に実行されるため、ログオン ウィンドウがないため、ユーザーが誤ってログオンする可能性はありません。これが私の 2 番目のポイントです。
カスタム背景画面
メンテナンスが実行中であることを示すスプラッシュ スクリーンや、実際に表示したい内容を表示できます。
TS は実際には単なる見栄えの良いスクリプトですが、多くの機能があり、開発時間を短縮するようにまとめられており、OSD を超えた使用例を見つけました。
必要な作業を実行するためのスクリプトがすでにあるようなので、最小限のデバッグでそれを TS に組み込んで作業を開始できるはずです。
答え3
SSO ソフトウェアが Active Directory の資格情報を使用するかどうかを指定していないため、解決策としては Active Directory の「ログオン時間」機能を使用することになります。これはユーザー単位のレベルで行われますが、Powershell で簡単にスクリプト化できます (これ基本的には、SCCM 更新ウィンドウでログオン時間を「拒否」するように設定し、SCCM が処理を実行している間は、ユーザーはクライアントにログインできなくなります。最初に強制的に再起動してユーザーをログアウトさせる必要があります (ログオン時間機能はログインしているユーザーでは機能しません) が、それ以外は実装に問題はありません。
答え4
これをテストして動作するかどうか確認したい場合があります:
SCCM アクティビティの開始時に次の操作を実行するスクリプト:
- ローカルユーザーグループからNT AUTHORITY\Authenticated Users IDを削除します
- ローカルユーザーグループからNT AUTHORITY\Interactive IDを削除します
- ローカル ユーザー グループからドメイン ユーザー グループを削除する
最後に:
削除したセキュリティプリンシパルをローカルユーザーグループに再度追加します。
実際に追加/削除するグループは、コンピューターの現在の構成によって異なる場合があります。
もう少しトレーラー パークっぽいことをすると、SCCM アクティビティの開始時に、logoff.exe へのショートカットが All Users Start Menu\Startup フォルダー (通常は C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp) にコピーされる可能性があります。これにより、ログオンするとすぐにセッションがログオフされます。安全のために、そのショートカットを削除するスタートアップ/シャットダウン スクリプトを用意することをお勧めします (ログオン時に Shift キーを押し続けると、スタートアップ ショートカットをバイパスできると思います)。