syg_hira's tech memo

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

twitterの確認メールが届かない

「全ツイート履歴の取得」と「メールアドレスの変更」をしようとすると、「メールアドレス確認」のために、「確認メール」が届くはずなのですが、届かなかった件。

「確認メールが届かない」でググると、プロバイダのメール受信設定や迷惑メールなどいろいろ書かれていましたが、、、

メール通知を無効にしていたのが原因でした。
help.twitter.com


昔、メールの通知がうるさいと思って、メール通知OFFにしたことがあります。
その後、アクティビティ毎にメール通知ON/OFFを設定できる様に仕様が変わったようです。
メール通知そのものをオフにすると、確認メールも届かなくなるのは、ちょっとダメなんではないか?
まあしらんけど

iCloud宛てのメールが届かない

弊社、業務で、B2Cなメールを、自前で大量送信しています。

M&Aしてたら、レガシーなメールマーケティングシステムが集まってきました。
メール送信者認証を知らない人が作っているなんて事もよくあるので、SPAM判定されたりブラックリストに載ったりしやすいです。

そんななか、とあるシステムから、iCloud.com 宛てのメールが届かなくなりました。
iCloud上にテストアカウントを作ってテストしてみました。
...テストメールが受信トレイに配信されません。
メールサーバ側でログを見ると、iCloud.com のSMTPサーバに接続拒否されたり、送信は成功していたりしています。
送信者認証のためのDNS情報は、何回もチェックしましたが、何も問題ありません。

そこで見つけた対処法です。

support.apple.com

postmasterにメールで状況を連絡したら、数日で配信されるようになりました。

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

技術検証の対象が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()