ほげぐらまの別館

プログラムに限らずてきとーに、ね?

auから請求金額やサービスプランを確認する”auお客様サポート”というアプリがiPhone/iPod Touch向けにリリースされていました。”auお客様サポート”ではやはり請求額の確認がメインで、ちなみに自分の11月分の請求額ですが・・・・、パケットが11万円ほど。IS12Tでやる事といえば精々ブラウジングとメールだけかなと思っていましたが、心当たりが一つ。

カメラのSkyDrive同期がヤヴァいですね

IS12T独自、ではなくてWindowsPhone7の標準機能だと思いますが、IS12Tのフル画質だと大よそ一枚当たり4MB。それが携帯カメラというお手軽なデバイスによってバックグランド通信を意識することなくクラウド上への自動アップロード。これこそまさにクラウドですね!ってか、これって唯でさえ厳しいと言われている3G回線泣かせな機能なんぢゃないかと。パケットが某国のように従量制になったらパケット破産できますわ。

さておき本題の”auお客様サポート”アプリですが、こちらも電話デスクに次いでサポート待ちが発生しているようですね。アプリを落として試してみたところ以下の感じ。

au_support

どのような通信がバックグランドで行われているかわかりませんが、アプリを落として最初の2~3回は”test”としか表示されずに、あっこのアプリってログインができるかどうかのtestアプリだったんですね(笑)、と誤認してしまうほどです。もちろん、誤認は冗談です。

数回のログイン試行をした限りでは、メンテナンスエラーを返す場合、”test”を返す場合のいずれもログイン認証は行われているような感じを受けました、結局サービスできないなら無駄な処理だと思うのですが。

※ 私的には無駄な処理、というよりもシステムに対して予期しない自体(データ不整合による更なるシステムトラブルなど)が起こることが不安です。

 

今回の負荷って、アプリリリース直後の一過性の高負荷だとは思うのですが、いやはや、IT系に携わる自分としても笑ってはいられない状況かも知れません。早く治ることを祈っております。

Hyper-Vに環境を移行して以降はほんと安定した環境でした、多分。問題があるとすれば精々ゲストOSのWindows7をシャットダウンする前にホストOSからシャットダウン→Hyper-Vマネージメントによる終了を行うと、シャットダウン中にフリーズが発生する位の問題しかない程度、ですね。

と思っていたら、とある日(4日前)にVPN経由でSplashtopRemotePCに繋ごうとしても接続できない・・・、と思い、面倒ながらもadds→hostosの二重リモートデスクトップでアクセスするとゲストOSがBSoD(Blue Screen of Death)になっているではないかぁぁぁ・・・・・、あ、BSoD時はvmconnectで画面表示されるのですね。

bdos

見た感じ、RemoteFXの3Dグラフィックスドライバが落ちたみたいですね。(iPadから接続中)

  • エラーファイル … synth3dvsc.sys
  • ファイル内容 … Our database contains single file for filename synth3dvsc.sys. This file belongs to product Microsoft® Windows® Operating System and was developed by company Microsoft Corporation. This file has description Synthetic 3D SMT Support Driver. This file contains driver. You can find it in the Drivers section of the System Explorer. (systemexplorer.netより引用、vscanバナーが多いのでリンクは張りません)
  • エラーコード … SYSTEM_THREAD_EXCEPTION_NOT_HANDLED (0x0000007e)
  • 引数1 … The exception code that was not handled (0xFFFFFFFFC0000005) = Memory Corruption
  • 引数2 … The address where the exception occurred
  • 引数3 … The address of the exception record
  • 引数4 … The address of the context record

正直、この情報からエラーなんてわかるわけないのですけどね。第一引数的にはメモリ破損エラーだと思われます、多分。そもそも、ホストOSからmstscでつないだ状態でそれを意識せずにSplashtopRemoteで繋いだりと、画面解像度もコロコロ変わる状況下で何かしらの違反が起きたとしても不思議ではないのですがっっ。

Windows=BDoS的なイメージがある方もいるのかなと思っています(特にWindows95~Me, NT4.0~2000)が、私的な意見でいうと大抵の場合は”Microsoft悪くない!”という気がします。というのも、わんくまな同盟でもかつてセッションをやらせていただきましたが、BDoSが出る=カーネルのBugCheck()関数によるOS保護が働いた、ことが起因です。で、自分が経験した中ではその半数近くは割と3rdパーティーのドライバ、取り分けグラフィックスドライバが原因である経験が強いな、と(ntoskrnlで落ちることが次いで多いですが)。となると、ある意味風評被害に近いような感じも受けます。MS信者からしてみれば(ぁ

というのを踏まえての疑問なのですが、最近では昔より格段にBSoDと遭遇する機会が減ったように思えます。となると、妄想できるのは

  • カーネルとしてのレベルが向上した
  • DDK(WDK)が改良された、サンプルが充実してきた
  • デバイスドライバの提供会社のノウハウが向上した
  • etc…

と様々なものが浮かぶのですが、実際のところどうなのでしょうね。精々趣味程度でクラスドライバを作る程度にはわらないところですね。

※ 因みに、クラスドライバを趣味で作る程度とはいってもBSoDのエラーコードはデバッグ時に非常にありがたいものです。

最後に、BSoDを見た瞬間に反射的にリセットボタンを押す人もチラホラ見られますが、私的にはエラーファイル名・エラーコード・第一引数程度はメモッた方がいいです。だってその3つがあれば大抵の場合は原因が見えますもの。

BSoD時に自動再起動かかる場合[システムのプロパティ]→[詳細設定]タブ→[起動と回復]→[自動的に再起動する]のチェックを外しましょう

何かを行おうとすると別の何かを学ばないといけなくて結局遠回りしている気がする・・・・なんてのはザラにある気がしますが、今回のPowerShellもそんな感じ。

【目的】

タスクスケジューラに登録した定時に特定のゲストOSのスナップショットを作成し、同時に過去数日前のスナップショットをマージ(Apply)する

【手段】

Hyper-V上の操作となるのでWMI(Windows Management Instrumentation)を使用する、且つ、タスクスケジューラでの操作となるのでCUI(=スクリプト系)が望ましい。WMIが操作できるスクリプトはWSH, PowerShell辺りとなる・・・・はず?

【参考資料】

ほぼほぼ資料は集まっていて、以下を見れば私だってできるハズ!

 

という感じなのですが、手段としてPowerShellを選ぶと、目的を達成する前にPowerShellを覚えるところから始まるのですよね。元々WMI(WBEM)+JScriptで色々とごさごさやっていたので作れないことは無いですがやはりここはWindows2008らしくPowerShellで実装しないとね!

ただ・・・・、従来のMicrosoft系スクリプト言語とは結構違う・・・気が・・・。PowerShellのコンセプトを知らないし、PowerShellが出た当初はこんなのを使う必要はないだろう!、とか甘く見ていた自分が馬鹿だったなと。因みに今はどうなのでしょうね、MS系の製品と触れ合う現場ではないので正直PowerShellがいかほどに使われているかさっぱりわかりません。

なので・・・・・、とりあえず適当な戦利品。

$computer                               = "."
$namespace                              = "root\virtualization"
$msvm_computer_system                   = "Msvm_ComputerSystem"
$msvm_virtual_system_management_service = "Msvm_VirtualSystemManagementService"


# 仮想システムの管理サービスインスタンスを取得する
$vm_vsms = Get-WmiObject -Namespace $namespace -Computer $computer -Class $msvm_virtual_system_management_service
$vm_host = $vm_vsms.SystemName

Write-Output $vm_vsms


# Hyper-V上の全てのコンピュータを列挙する (但し、ホストは除く)
$vm_computers = Get-WmiObject -Namespace $namespace -Computer $computer -Class $msvm_computer_system -Filter "ElementName <> '$vm_host'"
#write-output($vm_computers)

foreach ($vm_computer in $vm_computers) 
{
	write-host + $vm_computer.ElementName
	
	$Snapshots = Get-WmiObject -Namespace root\virtualization -Query "Associators Of {$vm_computer} Where AssocClass=Msvm_ElementSettingData ResultClass=Msvm_VirtualSystemSettingData"
	if ($Snapshots.Count -le 0) {
		continue;
	}


	$script:list = @() 
	foreach ($Snapshot in $Snapshots) 
	{ 
	    $SnapObj = New-Object -TypeName System.Object 
	    $SnapObj | Add-Member -MemberType NoteProperty -Name SnapshotName -Value $Snapshot.ElementName 
	    $SnapObj | Add-Member -MemberType NoteProperty -Name SnapshotID -Value $Snapshot.InstanceID 
	    $SnapObj | Add-Member -MemberType NoteProperty -Name SnapshotParentName -Value ([WMI]$Snapshot.Parent).ElementName 
	    $SnapObj | Add-Member -MemberType NoteProperty -Name SnapshotNote -Value $Snapshot.Note
	    $script:list += $SnapObj 
	}
	$script:list 

<#
	$script = @{} 
	foreach ($Snapshot in $Snapshots) 
	{ 
	    $SnapObj = New-Object -TypeName System.Object 
	    $SnapObj | Add-Member -MemberType NoteProperty -Name SnapshotName -Value $Snapshot.ElementName 
	    $SnapObj | Add-Member -MemberType NoteProperty -Name SnapshotID -Value $Snapshot.InstanceID 
	    $SnapObj | Add-Member -MemberType NoteProperty -Name SnapshotParentName -Value ([WMI]$Snapshot.Parent).ElementName 
	    $SnapObj | Add-Member -MemberType NoteProperty -Name SnapshotNote -Value $Snapshot.Note
	    $script.Add($SnapObj.SnapshotName, $SnapObj);
	} 

	$script.GetEnumerator() | Sort-Object Name | ForEach-Object {"{0}`t{1}" -f $_.Name,($_.Value -join ",")} 
#>

	write-output ""
}

 

そして、実行のスクリーンショットらしき物体。

ps_hv

しかし・・・・こんなことなら牟田口さんの”Windows PowerShell ポケットリファレンス”を買っておけばよかった・・・・。まぁ、スクリプトが仕上がったら置くかもしれません。それまでしばちお待ちを。

健康診断の季節がやって参りました。自称年齢20歳、精神年齢60歳を謳っている自分には自分と向き合う強制イベントが非常に嫌ですね。とは言っても受けねばならないものは致し方ない、、、。

さて、気になるべきところはやはりこんな感じだろうか。

  • 身長、体重及び肥満度
  • 視力、かなり悪いのです
  • レントゲン、昔にやってしまった肺気胸の石灰化

レントゲンは即日結果が出るものでもないので、基礎健康部分のみ。
身長…178.6cm
体重…52.6kg
視力…0.7 (矯正)

以前の日記にも書きましたがやはり冬だけあって体重が増えていますね。過去最高の体重が記憶では53.5kgなので健康範囲内でしょう。
※ 何か変だと思うかも知れませんが、私にとっての普通なのです

同僚にも痩せた人が何故だか多くいて、その中の一人といつも扉問題が発生します。
※ 扉問題とは…会社の扉はやたら重くて開けるのに結構疲れます。なので、誰がそれを開けるか、という切実な問題が起こっているのです。

どちらが開けるべきかをはっきりすべく、ここはBMI指数を出して見ることにしました。
使ったサイトはBMI(肥満度)計算ツールです。

私の場合
178.6cm 52.6kg (BMI 16.49)

同僚
172.9cm 49.9kg (BMI 16.69)

つまり、私の方が不覚にも痩せている、と言うことですね。BMIが負けてしまったことは非常に残念ですが、結果を受けて扉は開けてもらうことにしよう、そうしよう。

なんにせよ、健康は大事ですね。もちろん、精神的にも。社会人である以上、体調管理は当たり前の事ですからこれからも健康で過ごしたいですね。

今月の出費がヤヴァい(計20万前後は使ってしまった_/ ̄|○)という時に限って追加の出費が発生するものです。今まではCPU切替器としてATEN CS1784(←型番怪しいけど、このシリーズ)を使っていましたが、ここ数週間で機体のほうからノイズが聞こえてくるようになって2日前にお亡くなりになりました(4Portの入力側までは大丈夫っぽいのですが、出力側から正常なシグナルが出ていない)。

CS1784でも割と不自由なく使っていたのですが、唯一これに欠点があるとすればディスプレイ情報を記録しないためにバックグラウンドブートをすると解像度がリセットされるということ。ハードウェアスキャンすればもちろん直るのですがやはり面倒ですね・・・。ってことで、今回買おうとしていたCPU切り替え器の必要条件を書き出してみました。

  • ポート数は2で充分 (以前はWin機が2台、Mac機が1台だったのがこちらにもあるように減った)
  • できればUSBバスパワー動作がサポート
  • 解像度は1920×1200 (WUXGA)がサポートされていること
  • バックグラウンドブートがサポートされていること
  • 接続方式はUSBポート (PS/2のクロスではない)
  • できれば安い・・・・のでいい。ATENとか割と業務系に近い物体は要らない

多分、私の環境に限らず普通の必要条件かな、と(そもそもCPU切替器を使わない人が大多数かもしれませんが)。で、大まかに商品を調べた感じでは以下の2つが候補に(なんかiBufferloのBSKMD201BKとかあるらしいのですが、筐体型ではないのでアウト)。

いやぁ・・・・どちらも涙が出るほど素晴らしい会社ばかりですね。正直、過去にどちらも痛い目にあっている会社で非常に甲乙がつけ難いものだなという・・・。で、結局どちらにしたかというと、Ratoc REX-230UDAの方に。理由も割と簡単。

  • 直前に買っていた Ratoc REX-VGA2DVI というVGA→HDMI(or DVI-D)が思いのほか、安定して動いてくれた
  • ELECOMのより筐体がかっこいい
  • ELECOMのは写真上でUSBが2ポート必要そうだったから。ひょっとしたら本体USB-Hubかもしれない、が要らないです。だってその場合の大半は切り替えに応じて機器が強制切断されるので。

ってことで、Amazonで即刻ポチッとな。PCの全てにRemoteDesktopサービス + Splashtop Desktop Remote (Streamer)サービスを入れているので切替器が無いとPC操作ができないクリティカルな状態ではない、ものの、デュアルディスプレイ環境ではないとピボットディスプレイが使えず、クラブサンデーが大きく楽しめないという残念な状態なので。

予定では本日届くはず・・・・です。余程のことが無い限りは切替器のネタで書くことは無いです。なので、現状では書く必要がないことを願っています。