仮想デスクトップをユーザーのタイムゾーンに合わせる

グローバル企業とかで、複数のタイムゾーンに属するユーザーがいる場合にクライアント側のタイムゾーンと接続先デスクトップのタイムゾーンが異なるとかなり辛いと思います。

特に、Webベースのスケジューラを使っている場合、スケジューラの表示が親切にもOSのタイムゾーンに沿った形になっていたりすると接続元と異なってしまいいつの予定だかさっぱりわからないという惨事に陥ります。

そんなときに、ログオンスクリプト等で設定するのはいかがでしょうか。

Windows7 以降のOSであればtzutilコマンドが使えるのでそのままコマンドを入れてしまってもよいですし、XP と 7 混合環境であればTechnetで公開されているPowershellのスクリプトを元につくるのもありだと思います。

アイデアとしては、接続先のデスクトップのレジストリ(HKLM\HKEY_CURRENT_USER\Volatile Envitonment)に接続元の情報が入っていますので、その中のVIew_Client_TZIDあたりを元に分岐させるのがいいと思います。

たとえば、Windows 7 で、異なるタイムゾーンのデスクトップを変えたい場合こんなかんじでどうでしょうか。

$proc = New-Object System.Diagnostics.Process
 $proc.StartInfo.WindowStyle = "Hidden" 
$Val_ViewClient_TZID = (Get-ItemProperty ‘HKCU:\Volatile Environment’).View_Client_TZID 
if ($Val_ViewClient_TZID -eq "Asia/Tokyo"){
     $TimeZone = "Tokyo Standard Time" 
     $proc.StartInfo.FileName = "tzutil.exe"
     $proc.StartInfo.Arguments = "/s `"$TimeZone`""
     $proc.start() 
}

諸事情あって動作確認までできてないので、ぜひ試してみてください。

実機で確認しようとしたのですが、ゼロクライアントだと、このView_Client_TZIDなる値が入らないことがわかってしまいました。

ですので、「但し、ファットクライアントもしくはシンクライアントに限る」となりそうです。

私の場合きめうちでスクリプト運用したほうがよいなぁと痛感しました。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中