harry’s memorandum

おれおれメモ

DynaDesk DT100/P 買ったよ

デスクトップ買った

最近、家のデスクトップPCが急に落ちるので、新しいデスクトップPCに差し替えました。 その備忘録です。

性能はほどほどでいいので、お値打ちなやつねえかな、とネットを漁っていたらNTT-Xで謎のデスクトップが!

DynabookじゃなくてDynaDeskとはなんだ?って調べると東芝がシャープにPC部門売却して今はDynabook株式会社となってDynabookブランドは存続しているのね。

nttxstore.jp

スペック

破格すぎる値段です。 105,799円 - 45,999円(クーポン) = 59,800円

Officeで35,000円、Windows10Proで15,000円するから、利益でてんの?って率直に思いますよ。

拡張

ただ、メモリは16GB欲しいし、ストレージはSSDじゃないとやってられんので、以下を追加で購入しております。

f:id:dharry:20200926124945j:plain www.amazon.co.jp www.amazon.co.jp

M2.SSDは場所が分かりにくいけど、ケースを開けると隅っこに挿せる。

ベンダーのデスクトップでM2.SSDが使えるの珍しいんじゃないかな。

f:id:dharry:20200926162501j:plain

あとは、EaseUS Todo Backup か AOMEI Backupper などのツールでHDDからSSDへOSを移行して終わり。

ベンチ

CystalDiskMarkの結果はこんな感じ。

f:id:dharry:20200928065400p:plain

自作PCケース BitFenix PRODIGY Black にしました

新PC買いました。自称、中学生の気持ちがわかる男なのでケースは中学生仕様。AMD派の私としてはRichland A10あたりにしたかったのですが、わけあって Haswellに妥協。


f:id:dharry:20130824113937j:plain

スペック比較

旧PC 新PC
CPU AMD Phenom X4 9550 Intel Core i5 4430
GPU/OnBoard ATI Radeon HD 4200 Intel HD Graphics 4600
MainBoard Micro-Star INTERNATIONAL 78GTM-E45 ASRock H87M-ITX

ベンチマーク - エクスペリエンスインデックス

せっかくなので旧PCと新PCをベンチマーク。まずはWindows7のエクスペリエンスインデックス。あれ?思ったより性能差がみえない...

f:id:dharry:20130827004356p:plain

f:id:dharry:20130827004403p:plain

ベンチマーク - GeekBench3

エクスペリエンスインデックスは数値がざっくりすぎるので、ここは新しいバージョンのGeekBench3で。

f:id:dharry:20130827010609p:plain
http://browser.primatelabs.com/geekbench3/31060

f:id:dharry:20130827010618p:plain
http://browser.primatelabs.com/geekbench3/31064

結論

AMD Phenom X4 9550、お前は 5年近くよく頑張ってくれたよ。」

Win32OLEでインストール済みソフトウェア一覧を取得してみたよ

リーマンは時折無駄としか思えない人力作業を強制させられるときがあります。インベントリを人力で調べるなんて拷問ですよ。
ささっとvbsを書いて終わりのつもりだったのですが妙に遅い...半端ではない遅さ。

hostname = "remote_host"
set locator = CreateObject("WbemScripting.SWbemLocator")
Set wmi = locator.ConnectServer(hostname, "ROOT\cimv2", "user", "password")
Set items = wmi.ExecQuery("Select * from Win32_Product",,48)

For Each item in items
    Wscript.Echo "Caption: " & item.Caption
    Wscript.Echo "Version: " & item.Version
Next

どうやら win32_productクラスがよくないようです。「win32_product slow」とググるとワンサカ出てきます。MSI経由で情報を取得するため、超がつくほど遅いようです。

インストール済みアプリケーションの情報取得はレジストリ経由の方が速そう。ただx86とx64のアプリケーションは別のレジストリで管理しているので注意が必要です。

require 'win32ole'
require 'socket'

module REG
  arch = ENV["PROCESSOR_ARCHITECTURE"] == "AMD64" ? x64 : "x86"
  
  UNINSTALLS = 
    if arch == "x64"
      [
        "SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\uninstall",
        "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\uninstall",
      ]
    else
      [
        "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\uninstall",
      ]
    end

  HKEY_CLASSES_ROOT   = 0x80000000
  HKCR                = 0x80000000
  HKEY_CURRENT_USER   = 0x80000001
  HKCU                = 0x80000001
  HKEY_LOCAL_MACHINE  = 0x80000002
  HKLM                = 0x80000002
  HKEY_USERS          = 0x80000003
  HKEY_CURRENT_CONFIG = 0x80000005
  HKEY_DYN_DATA       = 0x80000006
end

include REG

# File activesupport/lib/active_support/core_ext/hash/keys.rb
class Hash
  def symbolize_keys!
    keys.each do |key|
      self[(key.to_sym rescue key) || key] = delete(key)
    end
    self
  end
end

class Software
  def initialize(hostname = ".", opt = {})
    wmi = conn_server(hostname, opt)
    @reg = wmi.Get("StdRegProv")
  end

  def conn_server(hostname, opt)
    locator = WIN32OLE.new("WbemScripting.SWbemLocator")
    if Socket.gethostname == hostname || "." == hostname
      locator.ConnectServer("." ,"root\\default")
    else
      locator.ConnectServer(hostname ,"root\\default", opt[:user], opt[:pass])
    end
  end
  
  def each_subkey
    in_param = @reg.Methods_("EnumKey").InParameters.SpawnInstance_()
    in_param.hDefKey = REG::HKLM
    REG::UNINSTALLS.each {|key|
      in_param.sSubKeyName = key
      out_param = @reg.ExecMethod_("EnumKey", in_param)
      out_param.sNames.each {|subkey|
        yield  key + "\\" + subkey
      }
    }
  end

  def each_products
    in_param = @reg.Methods_("GetStringValue").InParameters.SpawnInstance_()
    in_param.hDefKey = REG::HKLM
    self.each_subkey {|key|
      product = {}
      in_param.sSubKeyName = key
      %w(DisplayVersion DisplayName).each {|label|
        in_param.sValueName = label
        out_param = @reg.ExecMethod_("GetStringValue",in_param)
        product[label] = out_param.sValue.to_s 
      }
      yield product.symbolize_keys! 
    }
  end
end

こういうのはWin32OLEで書くほうが楽しいです。こんなかんじで実行すればOK.

so = Software.new
so.each_products {|h|
 next if h[:DisplayName].empty?
 p h
}

Windowsのイメージバックアップとか

CrystalDiskInfo をみたら、もうHDDの寿命が近づきつつあることがわかったので、System領域を引っ越すことにしました。

Windowsは色々なイメージバックアップツールあるけど個人利用は無料ってやつを探してみた。どれも便利そうだし、というかいくつか使ってどれも便利だった記憶がある。
今回は、別Diskへまるっと引越しなので、EaseUS Todo Backup Free使ってスンナリ。

EaseUS Todo Backup Free

http://www.todo-backup.com/

Paragon Backup & Recovery Free Edition

http://www.paragon-software.com/

Macrium Reflect Free Edition

http://www.macrium.com/

RDPのセッション共有(シャドウ機能)が使えなくなった

恥ずかしながらそもそもシャドウ機能を知らなかった。

管理者悲痛? 人知れず削除されたRDPのシャドウ機能
Posted by 山市良 ( 2012年12月17日 )

先月、Windows 7 SP1向けのRDP 8.0更新(KB2592687)について、いろいろと制約事項を説明しましたが、その中でリモートデスクトップ接続のホストとしてRDP 8.0を有効にすると、シャドウ セッション機能が利用できなくなると書きましたが、補足させてください。正確には“RDP 8.0のセッションでshadow.exeコマンドが機能しなくなる”です。実は、RDPのシャドウ セッション(リモート制御)機能、RDP 8.0が標準のWindows 8やWindows Server 2012からは削除されてしまいました。

http://www.computerworld.jp/blogs/d/205897

記事をみていて、「管理ツールのターミナルサービスマネージャでセッション接続するやつね」と昔からよく使っていたことを思い出しました。あれ便利だったから、Windows8/Windows2012で使えなくなるのはちょっと残念です。
とりあえず、Windows2008で使える設定を備忘録に書いておきます。


スタートメニューからグループポリシーを起動

gpedit.msc

ここの設定を有効にして「ユーザーの許可なしでフルコントロールにする」

->コンピュータの管理
  -->管理用テンプレート
    -->リモートデスクトップサービス
      -->リモートデスクトップセッションホスト
        -->接続
          -->リモートデスクトップサービスユーザーセッションのリモート制御のルールを設定する

f:id:dharry:20130114122524p:plain

OSリブートもしくはpgupdateを実行して反映

gpupdate.exe /force

あとは適当にRDPで接続して該当するセッションを調べてshadowコマンドで接続。下の例はadministratorでRDP接続してdharryユーザのセッション2にアタッチしています。

C:\Users\Administrator>query session
 セッション名      ユーザー名               ID  状態    種類        デバイス
 services                                    0  Disc
>rdp-tcp#0         Administrator             1  Active  rdpwd
 rdp-tcp#1         dharry                    2  Active  rdpwd
 console                                     3  Conn
 rdp-tcp                                 65536  Listen

C:\Users\Administrator>shadow 2

Windows8/Windows2012のRDP8

仕事柄、新しいWindowsやLinuxディストリビューションがリリースしたときは、リリースノートぐらいはみているのですが、Windows8/Windows2012に関してはあまり見ていなかったので、休み中に斜め読みしていたら、これはこれは...楽しい機能が結構増えていたんですね。

RemoteFXは、USBのリダイレクトもサポートしている。この機能は、クライアント デバイスのUSBをダイレクトにVDI上で動作しているOSにマッピングする(1つのUSBデバイスを複数のOSを同時に利用できるわけではない)。この機能を利用すれば、シンクライアントのUSB端子に接続したUSBメモリ、プリンタ、Webカメラ/ビデオ、USB電話機などが、VDI上で利用できる。

http://cloud.watch.impress.co.jp/docs/column/2012lab/20121026_568604.html

クライアントのUSBと仮想マシンのUSBをマッピングできるってのは素晴らしい。