syg_hira's tech memo

windows server関連のTipsのおぼえがき

検証環境を宅鯖もしくはクラウドで構築する場合の費用試算

技術検証の対象がWindows Azureになり、今年の夏の猛暑のなかで少しでも室内の熱源を減らすため、しばらくの間、宅鯖をずっと止めていました。

そんなこんなしているうち、クラウドIaaSでの検証もそれなりにできることがわかってきました。
Windows PowerShell DSCやらChefやCookbookの勉強をした方が良さそうな気がしてきたので、環境をどこに作るか再検討してみました。

要件

  • サーバ、台数、必要メモリ
    • AD(旧ドメイン2台、新ドメイン2台、メモリ1GB)
    • Exchange(CAS2台、HB2台、MBX2台、メモリ2GB)
    • SQL(MSFC2台、メモリ2GB)
    • RMS(2台、DB共用、メモリ2GB)
    • Skype for Business(フロント2台、DB共用、メモリ2GB)
    • iSCSI 1台
  • 運用期間
    • 3ヶ月

お仕事で、Microsoft製サーバ製品群の構築をするための検証に使用することを想定しているので、普通に冗長化構成を作れ、システム間連携をとれるだけの構成になっています。

これを、クラウド(Azure、AWS EC2)と、宅鯖で3ヶ月間維持するコストを試算。
宅鯖と同じ自由度で検証いようとすると、このぐらいになってしまうよ、という参考数値です。

Windows Azure

一番単価の安い、アメリカ東部を使用します。
要件のメモリ容量にたいして、ジャストサイズのサーバが無いため、少しオーバースペックなサーバになります。
IOPSはWindows Azure仮想マシンBasicサーバの規定の上限値です。AWSとの比較の為に明示しています。IOPSについては、ストレージアカウントの上限といった制限もありますが、計算単純化のため、300IOPSとします。

品目 説明 単価 数量 期間(月) 月額 3ヶ月分
Azure Basic A1 1Core/1.75GB RAM/40GB HDD/300IOPS 5,615 6 3 33,690 101,070
Azure Basic A2 2Core/3.5GB RAM/60GB HDD/300IOPS 11,231 10 3 112,310 336,930

総額 438,000

AWS EC2

一番単価の安い、アメリカ東部を使用します。
AWSの見積もりは$建てなので、1ドル=119円で換算しています。
ディスクの容量とIOPSは、Azureと同じものを使用します。

品目 説明 単価 数量 期間(月) 月額 3ヶ月分
AWS EC2 windows on t2.micro 1Core/1GB RAM/40GB HDD/300IOPS 4,787 6 3 28,722 86,166
AWS EC2 windows on t2.small 1Core/2GB RAM/60GB HDD/300IOPS 8,067 10 3 80,670 242,010

総額 328,176

サーバ台数自体が、個人のお勉強のレベルでは無いのですが、費用も個人で負担する金額では無いわー。

宅鯖は2年前に15万円ぐらいで組んだら後はずーっと使えてます。
ランニングコストは電気代とグローバルIPアドレス維持費で月1000円ぐらいで済んじゃいます。
ただ、人によっては家庭の事情などで置き場に困ることがありますでしょうか。

クラウドにするという選択肢は、ご家庭の事情でサーバの常設が難しい方にはよいのですが、稼働時間をかなり切る詰める(使わないときは電源を切る)などやりくりしないと大変なことになりそうです。

Windows 10 (英語版)でシステムロケールを設定しているのに文字化け・・・MSゴシックがない?

Windows 8.1英語版に言語パックを入れて日本語化していたのですが、Windows 10英語版にアップグレードしたら、文字化けしました。
f:id:syg_hira:20150731170848p:plain
システムロケールは「日本語(日本)」になっています。
システムロケールを英語にすると、いつもと違う、英語版を無理矢理日本語化したような、汚いフォントで日本語表示されます。

C;\Windows\Fonts
Windows10のフォントフォルダです。
MS ゴシック/MS Pゴシックがありません。
f:id:syg_hira:20150731170857p:plain

C:\Windows.old\fonts フォルダ。
Windows8.1がインストールされていたフォルダです。
msgothic.ttcが、MS ゴシック/MS Pゴシックです。
f:id:syg_hira:20150731170911p:plain

Windows10に、MSゴシックをインストールします。
f:id:syg_hira:20150731170919p:plain

フォントインストール後。
f:id:syg_hira:20150731170945p:plain

ダイアログの文字が正しく表示されるようになりました。
f:id:syg_hira:20150731170952p:plain

これは英語版だからでしょうか?

アプリで、MSゴシック/MS Pゴシックを決め打ちにしているアプリは同様の問題が出ると思われます。

Windows 10 Enterprise LTSB

Windows 10 がリリースされて2日経ちました。

MSDNサブスクリプションから、インストール用ISOをダウンロードしようとしたところ、Windows 10 Enterpriseに2つのバリエーションがあることに気がつきました。

Windows 10 Enterprise
Windows 10 Enterprise LTSB

無印とLTSBの違いについて調べてみました。


LTSB:Long Term Service Branch
Windows Updateで、「重要な更新プログラム」に含まれる「セキュリティ更新プログラム」「重要な更新プログラム」のみが適用される。

重要な更新プログラムに含まれないとされる
・推奨される更新プログラム
Service Pack
これらは、Windows Updateで展開されない、ということのようです。

会社の業務でWindowsを使用していて、内部統制やアプリ互換性のため、Windows Updateによる不用意な追加機能のインストールを防ぎたい場合に使用するエディションのようです。
ただ、Windows Updateの挙動はグループポリシーで管理できると思うの、なぜ個のエディションが必要なのか、利用シーンがよく分かりませんが・・・

Using file hash in PowerShell

I am working with PowerShell to maintenance systems.
I managed many scripts manually in this situation.
I confirmed file size and timestamp to identify the script version.

It is hard to deploy because server and script is too many.

I had made a script to enumerate filehash.

$stream = New-Object IO.StreamReader  
# MD5ハッシュ値を計算する 
$md5 = [System.Security.Cryptography.MD5]::Create() 
$hash = $md5.ComputeHash($stream.BaseStream); 
$result = [System.BitConverter]::ToString($hash).ToLower().Replace("-","") 
Write-Output $result 
$stream.Close()

The file compression in script on Windows. CAB is good, ZIP is not good.

If you want to know how to compress files in script(PowerShell, VBScript ...)and implemented with only windows builtin function, you may find "operate ZIP folder provided Windows Shell object"
But it is not stable on production server.
I implemented file compression batch with powerShell, Windows.Shell process is crashed and powershell.exe process is dead.
Because of killing PowerShell.exe, error handl block( try - Catch ) is not work.

I suppose to use CAB compresion.
See this article.

how to use - makecab.exe(updated)

Makecab.exe, it's file compress and packaging tool.
Makecab capable of making install package.
But,I will compress files to CAB.

Goal

  • Make single CAB file.I will not split CAB file that size is same as legacy media(FD,MO,CD and etc)
  • no subfolders to contain splited CAB files
  • no file created for install package
makecab.exe /D CabinetNameTemplate=CABFilePath /D RptFileName=nul /D InfFileName=nul /D DiskDirectoryTemplate= /D MaxDiskSize=0 SorceFilePath

Parameters
CABFileName:Path of CAB file to create.
SorceFilePath:Name of file list. It is contained file path of files to be contained in CAB.

RptFileName and InfFileName is nul: these file is used to install package.
DiskDirectoryTemplate is blank: we do not haev to make CAB in any subfolder to splited files.
MaxDiskSize is 0: We donot have to split file.

STOP: c00002e2 ... when boot domain controller on Hyper-V

I had a windows 2008 R2 active directory domain controller, it's running on hyper-v virtual machine.
The DC had a NTDS directory on D drive.
The VM had used a differencial VHD.
I had merge the virtual disk from differencial to new single vhd.

After merging VHD, attach the new VHD and boot domaincontroller.
I had encount the error as bellow.


STOP: c00002e2 Directory services could not start because of the following error:

Error Status: 0xc000001.
please shutdown this system and reboot into Directory Services restore Mode, check the event log for more detailed information.


Resolution

  1. Press F8 key on start up
  2. Select "Directory Service Restore mode" and Press Enter
  3. Log on as ".\Administrator" with the password for "Directory Service Restore mode".
  4. Open NTDS directory("D:\NTDS" in my case, Windows default may be "C:\Windows\NTDS")
  5. rename "*.log"(rename to "*.log.bak" in my case)
  6. restart VM