【 PaSoRi( RC-S380 )は「 Remote FX 3D リダイレクト 」に注意して 】

One Time Password( OTP )でのログインが非常に遅くて不評だった。
システムはOTPを利用しつつMS-VDIによって仮想化されているため、
仮想化されている事をエンドユーザーに意識させずに、
更にシングルサインオンを実現するという難題( お客様要求 )を満足する為に、
Defaultプロファイルのハイブファイルの中に以下のキー「 Shell 」という値を追加した。

「 \HKEY_USERS\Default\Software\Microsoft\Windows NT\CurrentVersion\Winlogon 」
( Shellの値 ) wscript.exe C:\Scripts\run.wsf
※上記ハイブファイルに「 Shell 」を追記しているため、物理PCのデスクトップは、
完全にブラックアウトして操作できない。

つまり、ユーザーがOTPでログインすると、Defaultプロファイルからユーザープロファイルが
生成された後に、WindowsScriptHost( WSH )によってスクリプトが実行される。
このスクリプトの中では、2つのDOSのバッチファイルがキックされている。

ひとつは、MS-VDI上の仮想マシンへ接続するバッチファイル。
しかし、これだけでは仮想マシンへ接続する際にログイン要求を求められ、
お客様の要求であるシングルサインオンが実現できない。

( 実際に仮想マシンへ接続する為の共有フォルダーのRDPファイルをキックするバッチ EX. )
====================================
%windir%\system32\mstsc.exe "\\HYPER-V99.AAA.LOCAL\Share$\WIN7-02.rdp"
====================================

従って、もうひとつのDOSのバッチファイルにて、仮想マシンへの資格情報を
物理PCへ登録して仮想マシンへの接続はパススルー認証させるのだ。

( 資格情報登録のバッチファイルの中身 EX. )
====================================
cmdkey /generic:TERMSRV/H05W702-1.AAA.LOCAL /user:AAA\Z123 /pass:pw

cmdkey /generic:TERMSRV/H05W702-40.AAA.LOCAL /user:AAA\Z123 /pass:pw
cmdkey /generic:TERMSRV/HYPER-V99.AAA.LOCAL /user:AAA\Z123 /pass:pw
====================================
※仮想マシンの数だけ資格情報を記載し、最後にMS-VDIサーバーへの資格情報を追加する。

しかし、この仕組みには大きなデメリットがあるのだ。。
コンピューターでは、複雑な仕組み程遅いというのは定石だ。
この仕組みでは、物理PCへログインした後、更に仮想マシンへもログインする為、
Windowsのログイン処理で一番重たいプロファイルの生成処理が、
2度も実行されてしまうのだ。。

どんなに凄い仕組みでお客様の要件は満足しても、遅いシステムは評価されない。
そこで考えたのがPaSoRi( RC-S380 )を使ったICCardによるログイン方法。
OTPを廃止して仕組みを非常に簡単にした。

物理PCの電源をONしたら、特定のユーザーでオートログインして仮想マシンまで
ログインを済ませてしまうのだ。そして、C#で書かれたフォームを全画面表示して、
仮想マシンのデスクトップをそのフォームで隠してしまうのだ。
そして、エンドユーザーはICCardをPaSoRi( RC-S380 )にかざして、
認証ボタンを押下すると、そのフォームがクローズして、
仮想マシンのデスクトップが現れる。

今までは、仮想マシンをログオフすると仮想マシンから物理PCへ
シャットダウン信号が送信され、パソコンの電源が落ちていたので、
次のエンドユーザーが使う際は、また一からの起動と上記の2重ログイン状態になっていた。

しかし、新方式では仮想マシンをログオフすると、物理PCへリブート信号が送られて、
PCがリブートし設定通りに物理PCはオートログインし、仮想マシンへ自動で接続後に、
C#のフォームでデスクトップをロックして待機している。

従って、次のユーザーはPaSoRi( RC-S380 )で認証が終わると、
一瞬でパソコンが使えてしまうのだ。デメリットは、常時通電されている事。
しかし、営業時間外の「 22:30 」になるとタスクスケジューラーで、
以下のバッチファイルがキックされる。

( シャットダウンのバッチファイル )
===================
shutdown /s /f /t 0
===================

この仕組みによって営業時間外になるとパソコンは勝手に落ちてくれる。

本当は物理PCをWindows Thin PCなどでオートログイン構成し、
ログインスクリプトの中で以下のRDPファイルをキックすれば仮想マシンへのログイン画面がでる。
====================================
%windir%\system32\mstsc.exe "\\HYPER-V99.AAA.LOCAL\Share$\WIN7-02.rdp"
====================================
しかし、臨時で利用するエンドユーザーは、ユーザーIDとPasswordを持って居ない為、
ユーザーIDとPasswordでログインする方法と、貸し出し用のICCard( 今までのOTPの代わり )で
ログインする方法( 2WAYログイン )が必要になるのだ。

今回のシステム機構改善で、MS-VDIは遅いという悪評を一蹴できると考えている!!

ただ、この仕組みも簡単に実現できた訳ではない。
単体テストではC#のフォーム認証は成功したが、
結合テストをすると失敗して泥沼にはまった。。

丸々2日間を費やして調査して結果、物理PCが仮想マシンへセッションを
はったタイミングで、物理PCのデバイスマネージャからPaSoRi( RC-S380 )が
消えて無くなる事を突き止めた。
そりゃぁ!!認証用デバイスが存在しないのに認証が通るはずがない。。
トリガーがトリガーだけに、何らかのデバイスリダイレクトが
悪さをしている事は間違いないとピンと来た。

そして、「 gpedit.msc 」のリモートデスクトップの項目で、
「 Remote FX 3D リダイレクト 」が有効になっていると
仮想マシンとのセッションが確立したした際に、
PaSoRi( RC-S380 )が消えて無くなる事を突き止めた。
今のところ、「 Remote FX 3D リダイレクト 」を有効にする必要性も無いため、
無効にしてミッションコンプリートした!!

ただし、今回の環境は物理PCも仮想マシンもWindows7で、
RDPは8.1の環境だったため、Windows10ベースだとどのような動きになるのか、
非常に興味深いところだ。

( 余談 )
仮想マシン側にもPaSoRi( RC-S380 )のドライバーを入れて、
「 Remote FX 3D リダイレクト 」で仮想マシン側でPaSoRi( RC-S380 )を
デバイスとして認識する事が検証作業の中で稀にあったが、
動作が非常に不安定だった。
もしかすると、特定の物理PC固有の問題かもしれない。
その可能性は、捨てきれないだろう。

【 MS-VDI上のWindows10の仮想マシンが致命的なエラーでBSOD 】

MS-VDI上でWindows10を運用していると、仮想マシンがBSODで突然落ちる場合があります。
その際、HOSTOS側のイベントビューアには、以下のログが吐き出されています。

=====================================================
ソース:Hyper-V-Worker
イベントID:18590
レベル:重大

'XXX(NetBIOS名)' で致命的なエラーが発生しました。
ゲスト オペレーティング システムから次のエラー コードのエラーが発生したことが報告されました。
ErrorCode0: 0x27、ErrorCode1: 0xFCB0027C、ErrorCode2: 変動、ErrorCode3: 変動、ErrorCode4: 0x0。
問題が解決しない場合は、ゲスト オペレーティング システムの製品サポートに連絡してください。
(仮想マシン ID XXX)
=====================================================

これは、物理PC側のUSBメモリなどの何らかの外部記憶媒体が仮想マシン側へ
Diskリダイレクトされると発生するということまでは、現場でのヒヤリングで分かっています。
これをマイクロソフト社へ問い合わせしたしたところ、
製品のバグであり、2017年2月中旬を目途にパッチを公開するとの回答を得ました。

現段階では、ここまでの情報しか提供出来ませんが、実際にパッチが公開されて
詳しいKB番号等が判明したら、情報を追記したいと思います。
それまでは、運用で逃げるしか無さそうですね。。

( 2/19追記 )
2017年2月中旬予定のパッチは公開が延期されたと、正式にマイクロソフト社よりメールがありました。

( 3/16追記 )
2017年3月15日( 水曜日 )、マイクロソフト社より正式回答がありました。
今回の問題は、「 KB4013429 」 にて修正されたとの事です。

https://support.microsoft.com/ja-jp/help/4013429/windows-10-update-kb4013429

具体的には、上記 URL 記載の以下の項目となります。

Addressed an issue where Remote Desktop Servers crash with a Stop 0x27 in RxSelectAndSwitchPagingFileObject when RDP clients connect and utilize redirected drives, printers, or removable USB drives.

【 Windows10 1511からWindows10 1607 へUpgrade後のSysprepについて 】

Windows10 1607で展開中のMS-VDIの環境において、突然IE11でファイルがダウンロードできなくなったり、
「KB2285187」にみられるような、Microsoft Word 2016を起動すると
「Word は作業ファイルを作成できません」が表示されるようになった。

原因を追及したところ、ログインしたユーザーのレジストリ―の以下のレジストリ―キーが、
Sysprepを実行したAdministratorのものとなっていた。

・HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
(Cache) C:\Users\Administrator\AppData\Local\Microsoft\Windows\INetCache
(Cookies)C:\Users\Administrator\AppData\Local\Microsoft\Windows\INetCookies

・HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
(Cache) C:\Users\Administrator\AppData\Local\Microsoft\Windows\INetCache
(Cookies)C:\Users\Administrator\AppData\Local\Microsoft\Windows\INetCookies

これについてマイクロソフト社へ問い合わせたところ、
Windows10 1607から新規にインストールした環境では再現性が見られなかったが、
やはり、Windows10 1511からバージョンアップした環境では、再現性が見られるとの回答を得た。
「バグではないか?」との問いには、スペックとの回答であった。

問い合わせの際に、Sysprep前にレジストリを以下のように変更しておくと
問題の現象は改善できると伝えてあったので、インシデントは返却された。

<Sysprep前に以下のように変更しておくと良い。>
・HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
(Cache) %USERPROFILE%\AppData\Local\Microsoft\Windows\INetCache
(Cookies)%USERPROFILE%\AppData\Local\Microsoft\Windows\INetCookies

・HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
(Cache) %USERPROFILE%\AppData\Local\Microsoft\Windows\INetCache
(Cookies)%USERPROFILE%\AppData\Local\Microsoft\Windows\INetCookies

この記事が良いと感じた方は、拍手をお願いします。
自分の励みになります。宜しくお願い致します。
プロフィール

ドルフィン

Author:ドルフィン
人生とは味と語り・・・

味とは何かを知るために、
人は語り合う。

心通わせる唯一の手段が、
語りなのだよ。

君の記憶には、九州No.1
伝説の男の軌跡が刻まれるだろう。

俺は生き様で証明する男。

最新記事
最新コメント
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる