2013年2月24日日曜日

LocalDB (Microsoft SQL Server 2012 Express LocalDB )


最近しょっちゅう書いてます。数年ぶりに完全にソフト屋モード。

いまWCFを学習中です、そろそろソフトを売る予定なのでライセンス認証サーバー立ち上げないといけません。何故なら当然自腹で作るのでタダでCOPYされたらご飯が食べれなくなります。
しかしこの認証サーバーソフトと言うか仕組一式を買うと数百万@@、保守に年間数十万、完全ぼったくり?かどうかは分かりませんが、最初からそんな予算取るほどめでたくないので、自作すべく調査中です。

いつ立ち上がるのかは不明ですが・・・完成したら認証サーバーの仕組みも売らないとです。



ところで、Sqlserver、DBの話です。



Sqlserverは、MSDNのライセンス(サブスクリプション)持っていればSTDでもエンタープライズでもDLすれば良いだけですが、そうでない場合はSQL Server 20xx Express Editionを使うと思いますが(mySQL使う方もいるようですが、それって・・・)
これタダで運用でもリモートでも使えるので重宝しますが、このExpress Edition に LocalDBと言うのが出ているのですね。軽い版。

普通のExpressは上位完全互換なので規模が大きくインストールもSTDなどと同じで時間はかかるしあまりお手軽な気はしません。が、このLocalDBは数十秒でインストールできるかなりのお手軽版です。



実際にどこまで使えるのか良くわかりませんが、面白そうなのでこのページからDLしてインストールしてテーブルまで作成してみました。

細かい話は素晴らしい皆様が記事をUPされているのでお任せして、非常に雑な画像をUPします。

私的備忘録のようなものですが・・・。




※文字が小さいのでデスクトップに張り付けて拡大してみてくださいメ
Microsoft SQL Server 2012 Express LocalDB
Microsoft SQL Server 2012 Express LocalDB




< 試してみたこと (画像赤丸の詳細は下記の丸へ記述) >


0  DLしてインストール

  本体はここに入るようです。 C:\Program Files\Microsoft SQL Server\110\LocalDB\Binn
  インストールは特に問題なく数十秒で終了



① DOS窓からコマンドを打つ

  1.インスタンス作成(インストールされると作られるV11.0とは別のインスタンス作成)
  2.インスタンス情報表示、停止、削除



③ データベースの場所

  master、model、msdb、tempdbなどのシステムDBは、現在のユーザープロファイル下のフォルダに作成される
  C:\Users\ユーザー名\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\インスタンス名
  なんでこんなフォルダに入る?と疑問に思うが、あくまで小さいDBなのでユーザー単位に、と言う発想のよう



④ DBを作ってみる

  普通に作ると、C:\Users\ユーザー名、この中に出来てしまう
  なんでもバグがあるそうで(DB作成エラー)皆さんマイドキュメントなどに作っているようですが、それは嫌なのでCドライブにフォルダ作って入れました(インスタンス毎のサブフォルダ作るのを忘れましたが・・)
  特に問題なく作れます(②のManagement Studioで作成)



② 順番が前後しますが・・ SQL Server Management Studioでインスタンスに接続し、色々試す

  1.インスタンスへの接続は、ローカルと言う事もあり何の問題なく完了
     (localdb)\インスタンス名
  2.DBを作成してみる
    特にいくつでも作れそう
  3.テーブルを作成してデータを入れてみる
    特にいつもと変わらず作れる(STDやEXPRESSと同様)



◎ 最後にやったこと

 上記だけだと何のためにわざわざLocalDBをインストールして使うのか全く意味不明なため?(expressかdeveloperでいいじゃんか?)、画像にはありませんが、もう少し使ってみようとアタッチ・デタッチ試してみました。問題なく普通にできます。

 STDエディションの本番データ →デタッチ →ローカルへCOPY →LocalDBでアタッチ →問題なく開いて加工が可能、テーブル構造変更も普通に可
 逆も行いましたが特に問題なし LocalDBでデタッチ →本番でアタッチ


 いきなり本番DBを持ってくるのはどうかと思いますし、その持ってきたデータを加工し本番へアタッチするなど正気とは思えませんが、しかしどうやらそういうことを手軽に出来ることを売りにしている面もあるようです


< MSの説明 >

・Microsoft SQL Server 2012 Express LocalDB は、プログラムの開発者を対象とした SQL Server Express の実行モードです。
・LocalDB インストールによって、SQL Server データベース エンジンの開始に最低限必要なファイルがコピーされます。
LocalDB のインストール後に、開発者は特殊な接続文字列を使用して接続を開始します。 接続時に、必要な SQL Server インフラストラクチャが自動的に作成および開始されるため、複雑な、または時間のかかる構成タスクを行わなくてもアプリケーションでデータベースを使用できます。
開発者ツールによって、開発者は SQL Server データベース エンジンを使用して Transact-SQL コードを記述してテストすることができ、SQL Server の完全なサーバー インスタンスを管理する必要はありません。
http://msdn.microsoft.com/ja-jp/library/hh510202.aspx




私はコードも設計も要件もDBもマネジメントもコンサルも営業も運用も環境もPCもサーバーもネットワークも時にはケーブル・施工も!全てやるので特にDB周りが問題になったことはありませんが、普通は分業してソフト開発していると思うので、こういう軽いDBツールはありなのかな?と思いました。

ただインストールからしてあまりに手軽すぎるので、気軽にノートに入れてデータ持ち歩いてなくした!!!など心配な面もありますが、とても手軽です。

LocalDBならdeveloperEditionと違いパワーのないノートでも開発できそう♪
が、VSが重いのでやはりパワーのないノートでの開発は辛く嫌ですね。

仮に併用したとしても、接続先名も本番とLocalDBとでいちいち変更しないとならないし、そういう点でくだらないミスが発生する可能性あるので、やはり本番と同じエディションのSqlserver立ち上げ同一マシン名にするか別名を作って接続し開発するのが良さそうな気がします。もしくはdeveloperEditionで。

でもせっかくなので何か面白い使い方を考えてみますが・・・




(後日)

考えてみました。
商用ソフトのDBとしてバンドルし、客が使うDBとして使えたら嬉しい(ライセンス詳細は未調査のため現時点では考えない)
が、システムDB群がユーザプロファイルフォルダの中に出来るので、基本そのユーザーしか使えないかな?だとするとダメですね。逆に簡易セキュリティーにはなるけど。

SQLSERVERのExpress EditionはPCでやばいオペレーションすると結構危険で、やってしまうとほぼ100%PCをリカバリーしないとダメ。するとPCに保管してたエクセルやメールデータは全て飛ぶ!
だから客のPCにあまりインストールする気にならず=Expressは個人的には好きでない。

だからLocalDB使いたいのだけど・・・
※開発者の方が使う分には問題のオペレーションはほぼ100%発生しないと思われるので、心配しなくて大丈夫です(最近試してないので問題なくなってるのかも知れませんが?・・当たり前ですが試せないので・・不明)(詳細については質問しないでね。質問は無視しますので)

んー、、、また考えてみます。







2013年2月23日土曜日

2013年版 DataGridViewヘッダーの拡張に関する問題の解消方法(DataGridViewのヘッダーを使わず、ヘッダーを自作する)


<お題>
WindowsFormでDataGridViewのヘッダー機能を使わずにヘッダーを自作すると幸せになれる?



<答え>
なれる。


<解説>
昨年の9月にDataGridViewについてウダウダ長々くだらん話を沢山盛り込んだ記事を書きましたが(何時もかも?)、お題を実現するサンプルソリューションをUPしましたので改めてご紹介します。


サンプルのDLは昨年の記事へ → こちら


短いサンプルですが、現実世界ではDataGridViewを使った処理画面(~DBi/o含む)を作るとかなりのボリュームになります。当該機能もDataGridViewを使った、とある機能てんこ盛り状態でしたが、コード量は関連するクラスを入れると4kにもなります。

だから・・・
出来ればDataGridViewを使った機能は作りたくないです、これから先もメ




サンプルの本当の姿はこんな感じ、汎用機風画面
可能な範囲でお見せしてますので、
あまりよく分からないと思いますが
対象はOP
プログラマーの10倍ほどの速度でinputします
凄まじいです




2013年2月21日木曜日

DELLのT105でWindowsServer2012にHyper-VでVM3つ


今回DELL T105を使い、WindowsServer2012Datacenter上でHyper-V3.0を有効にし、Active Directoryを仮想化していましたが、やっと安定しました。





しかし今更今どきT105の話をしても仕方ないのですが、、、、

が、デルのタワーサーバーは良いですね。
今回T105(1.5万)を使いましたが、同時期に購入したHPのML110G5(1.5万)とは比べ物にならないほど良いです。

箱から出してすぐわかるのが筐体がかなりしっかりしている点。正直この時点でML115では勝負にならないと感じますし、中を開けても内部シャーシのクリアランスが非常にキチッとしています。
HP・・・これがどうしてMadeInTOKYOなのでしょう?中国製のDELLの方がよっぽどマシ。これは結構残念に感じました。

実際HP ML115G5は使用を開始してから3か月目にVGAが壊れ画面が映らなくなり2台廃棄。ML115は3台も購入してしまいましたが使う気にもなれず処分に困っています。T105を3台購入しておけば良かったと真面目に後悔しています。

T105は音が静かなところも良いです。とろいAMDですが負荷をかけようがいまいがFANはずっと静かで(負荷の掛かりようがない!?)、HDD音だけが異様に煩く感じます。それに比べML115G5はブート時に爆音を出しますし、普通に動いていても煩いです。ファン音がダメ。

DELLはこれ以外に数年前に顧客に安いタワーサーバー(10万~20万)を導入し、1台は10名程のファイルサーバー、もう1台はaccessDBを入れ5台ほどの業務アプリPCから共有DBとして使っていますが、大した負荷をかけていないせいもありますが、4年経った現在も普通に動いています。トラブルは皆無、1度もなし。
Xeonの低クロック物でしたがFAN音はかなり静かで、最近少々煩くなりましたがこれは埃のせい。誇りはオーバーヒートも引き起こす原因になるので埃の場所に置かないことです(もしくは掃除機をかける)。

最近、静かさを売りにしている富士通の安いタワーサーバーの話など聞いてますが、ちょいイマイチな様ですね。
PCは圧倒的にダメなDELLですが(基本、知人にも客にも絶対薦めません)、タワーサーバーはかなり良いと思いますよ。タワーに関しては今後もDELL以外使わないかな?と思ってます。DELLラックは使ったことがないので不明?



と、まるでDELLの回し者のようですが?今更T105ですが、WindowsServer2012Datacenter、ドライバーが心配でしたが普通にインストールできました(DLしたISOはDVDに焼き、ドライブに入れ電源を入れただけでInstall完了)。NICもI-O DATAの安いPC用ですがただ差しただけで付属ドライバー入れずも普通に動作しています。
byAmazon

 「T105 Hyper-V3.0仕様」
・ M/M:8GB
・ HDD:320GB:付属のSATA(シングル)
・ CPU:AMD 1212 Dual-Core
・ NIC2枚(1枚は仮想アダプター用オンボード、1枚はリモートからの接続用io-data)
・ ホストOS(2012Datacenter64bit)ではHyper-Vのみ稼働(ドメイン参加なしのワークグループ)
・Hyper-V仮想スイッチ
 ・仮想スイッチは外部ネットワークでオンボードNICを使用
  「管理オペレーティングシステムにこのネットワークアダプターの共有を許可する」をチェックすると選択したNIC
  (この場合オンボード)が共有されるが、共有したくないのでi-o dataNICを増設
  チェックしてしまうとDHCPなどが稼働している場合はセキュリティー上問題が出るケースあり
 ・仮想ネットワークアダプターのMACアドレスの範囲はHyper-Vインストール時のIPアドレス(私的環境ではルーターDHCPから割り当て)の一部が下位4bitに割り当てられるようだが特に問題ないのでそのままに)
・ VM(ゲスト)
 <常時稼働>
 1.ADDCサーバー(WindowsServer2012Datacenter、仮想メモリ1024~1980MB動的、メモリ重み+1)
   FSMO
 2.ADDCサーバー(WindowsServer2012Datacenter、仮想メモリ1024~1980MB動的、メモリ重み±0)
 3.メンバサーバーDB(WindowsServer2008STD、SQL SERVER 2012 STD、仮想メモリ2980MB固定、メモリ重み+2)

この仮想メモリ量で、8GBのM/M上で3VM動作しておりホストOSの動作を含め現在のところ特に問題なし。試しにADDCは動的メモリにしたが起動メモリ量1024MBから動きません(動きようがない?)。

上記はテスト的に作った環境ですが、ドメインに属するクラサバ業務システムが5つ入ったクライアントPCからDBサーバーへデータI/Oしているだけでストアドも大した量はなく、数名で使っても特に何も起こりません。ただ20秒ほどかかるクエリを同時に実行されるとカナリ厳しいですが、、、が、動作させるのが目的だったので良しです。




恥ずかしながら今回ActiveDirectoryを学習しながら作った環境なので、厳密に言えば解決しなければならないエラーもログに上ったりしますが、一先ず問題な箇所を除いて無視。
ADDCの時計は、FSMOサーバーのハードを見に行っています。よってエラーが定期的に発生しています。しかし業務終了時に毎回サーバー電源を切るので、こうしないと翌日立ち上げたときに時計がえらいことになってしまうので、良しとしてます。我ながら適当な運用です。


参考資料ですが、WindowsServer2012の本はあまり売られていないので、2008r2用で代用しました。
byAmazon
この本、100点本ではなく70点程ですが、そこそこ重宝しています。但し使えるのは前半のAD関連箇所とコラム(補足)のみ、後半は詳細な製品紹介レベル。故に構築作業にはほとんど役にたたず。またコラム等の補足がない個所は何故それを選択するのか理由が書かれていないため無理やり本・的な感じがします。優秀な方が書かれているようですが圧倒的にページ数が足りません(5~6倍は必要)。

こちらは例えばADDC構築ウィザードで何故その選択をするのか理由が書かれているので、NETを使わずに理解を深めたり真似をして小さなシステムを構築するならこちらの方が個人的には好きです。ただそういうものは伝わらないのかあまり売れていないようですが(上の本は増刷増刷ですが・・・netを併用しないと半分は役に立たないのに・・・皆さん雰囲気がわかればそれでOKなのかな?それとも営業が見て勉強する用本?)
byAmazon

ただ最終的にはnetで自力で不明点を潰し学習しながらの作業になるので、やはり本だけで知識を得て構築するのは無理です。
それと当たり前ですが2012svHyper-VのVM上でActiveDirectoryを動作させる方法は解説されていません。この辺はログエラー潰し、障害復旧方法と実テストを含め、これから実際に実験を続けてゆかないと本当に使えるものであるのか検証が終わりません。ネットワーク屋なら、まだこの段階では検証レベル全体の1/3と言ったところでしょうね。





と、なんだか方向性の見えない文章になりましたが、
 ・T105は良い!DELLタワーサーバーは良い!と言う事が言いたかったのと、
 ・ゲストVMに構築した2台のADDC+DBサーバーは今のところは問題なく動いてます(エラー少々無視)
と言ったところです。





そのWindowsServer2012ですが個人的には大変良いです気に入りました。2008SVは細部のツメがイマイチで正直使う気になりませんでしたが2012SVは非常に好印象なサーバーOSで、これならPCのように!とまではいきませんが、今後も使いたいと思った初のサーバーOSです。(サーバーマネージャーが少々重すぎますが・・それ以外は良いです)

しかし仮想化って2012SVが良いこと以上にもっと良いですね。他にもXP、Win7、Win8のVHDも作っていますが、これだけ便利に簡単に使えるようになると物理HDDにOSをインストールするのが大変馬鹿らしく感じます。もうVHD以外扱いたくないです。逆に言うと、これからはこれまでとは違い一派的にも広がってくる可能性があると思えるので、いま覚えておかないと時代において行かれると思います。今回やってみて良かったです、(笑)

もう一つ!VDI、以前から興味があり、2012svになってVDIがどう進化したかかなり期待していたのですが・・・大した進化なく、ただ管理は大幅に良くなったようです。ただこの仕組み自体が複雑すぎる感があるので、次期サーバーOSまで我慢です。
ですが仮想化技術の進化が良くなっているのでVDIも構築しやすくなっているようですけど、現状では複雑な仕組みゆえ・・・中小にはコンサル出来ない代物です。

でもぶっこんじゃうんだろな~その手の営業なら、そして面倒だ、使えないと烙印を押され悪いうわさが広がる・・・のはお前らのせいだったのか!?(笑)






2013年2月11日月曜日

WindowsServer2012に作ったVMからWindowsUpdate出来ない件(インターネット接続できない)

※ソフト屋が乏しいネットワークの知識を駆使し行っているので解決法に誤り等あるかもしれません(私の備忘録)




ADDCサーバーWS2012、メンバサーバーの2008r2sp1がinternet接続できない


Hyper-V3の仮想ネットワークは外部とし作成しているのでこの設定は特に問題はないはず
VM作成当初はwindowsUpdateできていたが、ネットワークの動作が不安定で結局接続不可に(制限付きと表示され外部ネットワークへ接続できない=名前解決できない)
そもそも社内ネットワークにあるADサーバーが直接NETに接続するのか?と言う疑問はあるが、それでも接続させる



外部に接続する=フォワーダーを設定すると暗記していた(以前ネットワーク屋にそう聞いたのを記憶していた)
しかし調べていて疑問に思ったのが、デフォルトゲートウェイが使われるとどうなる?サーバーDNSで設定するフォワーダー、ネットワークアダプタで設定するデフォルトゲートウェイ。(またルートヒントの存在もある)

内部ネットワークにないアドレスへの接続要求は・・・言い換えると名前解決はどう行われる・・・
 いったいどちらを使って行われるのか?
 どういう基準でどちらかが優先されるのか?
 このブラックボックス(MSが作ったDLL)はユーザーからの制御が可能なのか?
疑問が湧く。

しかしいろいろ調べてみると根本的に何も理解していないことが発覚。そもそもフォワーダーはDNSサーバーのIPアドレスを設定しておかないといけないのに、ルーターLAN側アドレスって、それはそもそもDNSサーバーのIPアドレスとは違うでしょ、と。
と、それはあとで解決するとして・・・・




インターネット接続できない件は解決出来たので備忘録 (外部環境はNTTフレッツ)

・フォワーダーの使用をやめる
 フォワーダにはADの昇格させる前に設定してたルーターLAN側アドレスがAD構築で自動設定されていた
 (何故?デフォルトゲートウェイから?それともDNSにルーターLAN側IPアドレスを設定していたから?)
 NTTフレッツ:IPv4、NTTの他サービス(TV?):IPv6、の2行、これをすべて削除
・ネットワークアダプターのデフォルトゲートウェイにルーターLAN側アドレスを設定
 ADDCサーバーWS2012、メンバサーバーの2008r2sp1
・ネットワークアダプターのDNSはADDCサーバーのIPアドレスを設定
 現在ADDCサーバーは1つなので、プライマリーのみ設定



参考)
http://social.technet.microsoft.com/Forums/ja-JP/windowsserver2008r2ja/thread/53ce36a1-7f6c-421d-bed1-32946e299a9b
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=46580&forum=6 (リンクしてある@ITのページ)
http://technet.microsoft.com/ja-jp/library/cc726034(v=ws.10).aspx







2013年2月10日日曜日

学習について思うこと


これは私の感想文なのでどうでもいい話です。ご了解を。




ちなみにサーバーに加えネットワークもそうですが、ネットワークが絡むADDCサーバーなどのサーバーに関しても素人です。これを機に学習したいですが・・・(これは俗に言う希望と言うものです)



この学習について考えてみました。

もう10年20年前からDNSやTCPIP、ADなどの話をたまに本を買って読んでましたが、一向に覚えられず。なんでかな?と今回考えましたが、簡単な理由でした。それは・・・

私はソフト屋と名乗るくらいなので、ソフトに関してはそれこそ体力的にも精神的にも地獄の様な時間を経験しています。通常でも一からシステム作る場合は、出てくる問題に変な汗を出しながら必死に解決しています。そのかいあって、windowsOSに関しては普通の業務システムは組めます。

ではネットワークとサーバーは・・・?

本を読み、多少の知識を得ていましたが応用が利きません、トラブルの対処も偶然解決したレベルでしかありません。なぜソフトウェアの様にこなせないかと言うと、要するに必死になってそれこそ地獄の時間を極地の精神状態で抜け出たなど必死体験などなく、楽な環境で本やネットを使い情報を得ても体で覚えられない、このことが原因のようです。

仕組みを理解することが得意な人は本やNetの情報でも問題解決が可能と思います。が、このレベルでは永続的には¥を稼げないことが多く、それは精神的プレッシャーがかかった状態で力を発揮できるかが大きな問題です。
※1参照

やはり人間、追い込まれないと、また必死にやらないと、いろいろな事象になかなか応用が利かないようです。だから今回のネットワーク問題もソフトのように必死にやらないと身につかない、自分でそう思いますよ。

一般的にソフト屋はサーバーとネットワークの分からない人が多いですが(力技で無茶無茶する野郎が多い、SQLも書けない輩もいる)、そんな人は一度必死にやった方がいいですね。するとあとで¥なります。
私はジジイなので引退も近いけど、若い人はこれから長いからそういう体験を過ごせばのちに食べてゆく助けになると思います。いつか、過去の自分が今の自分を助けてくれますよ。

格差社会と言われていますが格差は自分が自分で作り出しているものだと思ってください。
ただ運と言われるものも必ず必要になるので、アンテナは常に伸ばし社会を生きる要領も得てください。何もせず好きにしていても運など訪れませんから。(だって高額宝くじ当ったことないでしょ?笑)



※1 プレッシャーについて
弱度のプレッシャーから、極端に強度のプレッシャー。これにはその人が持つ耐性力と言うか人間力と言うか動物的生命力が必要なため、コンピューターや仕事に限らず通常の生活の中で起こりうる強度のプレッシャーも同様、優秀な人や頭のいい人でもここでダメになる人は多く、これが生き残れるか否か(生命を含め)と言うことになります。
ただこれはその人にとってあまりにオーバースペックでないプレッシャー経験を積むことで耐性力、生命力は向上します。しかしその人のキャパを超えすぎたプレッシャー事象に遭遇すると、たいていの人は生き残れません。肉体的問題か精神的問題が発生することが多いですが、これは仕方のないことです。
私がこれまで見てきた大勢は私生活の問題含め強度のプレッシャー事象に遭遇した人の99%の人はダメになるようで、そのよう極度のプレッシャー事象が発生すると予見できた場合は、予めそれらをかわす準備をし、そのような事態に遭遇しない対処が必要です。
別にこれは逃げることにはあたらないので(自己を守る行為にあたる)回避行為を気にする必要はありません。なぜなら100人中99人の人が人間的にダメになるのですから、回避するのは人として当然です。
が、逃げると感じそれが嫌な人は正面からぶつかり対決するしかありません。しかしこの選択をした場合は全て終わった後では、やったか、やられたか、このどちらかになるので覚悟の上で対決しなければなりません。上に書いたよう、やられてしまえば肉体的か精神的問題が生じ社会復帰できなくなるかも知れませんので覚悟は必要です。メンツだのに拘り強がって身を滅ぼした人は多くいますので、上に書いた回避行為を気にする必要はありませんよ。

と、掲題からだいぶ脱線しましたね・・・笑

少々大げさに書いてあるよう見えると思いますが、現実って結構こんな感じです。用心しながら少し戦う、そしてそのたび少しだけ強くなってゆく。そのくらいが良いと思いますよ。








2013年2月9日土曜日

ドメイン "xx" の Active Directory ドメイン コントローラー (AD DC) を検索するために使用される DNS の Service Location (SRV) リソース レコードを照会したときに、次のエラーが発生しました


WINDOWSにて、いろいろな事が原因で掲題エラーが発生するようですが、結論から先に言うと私の場合、


IPv6のチェックを外したらドメインに参加できました




その後IPV6にチェックを入れ再起動したが、それからも普通にドメインに参加、ログインできてます。
 →やはりダメ、IPv6を有効にするとドメインへ入れず。


最近OSインストール後やPC購入後の状態は、最初からipv6がチェックされていて優先的に使われるようですね。

ちなみに上記は、ネットワーク接続のプロパティーのところの話で(最近だと、ネットワーク共有センター→アダプター設定の変更→)、
・IPv4は固定IPを設定
・DNSサーバー:DCサーバー上のDSNサーバーIPアドレスを設定





と、これだけだとどういう環境でなったのか全く分からないと思うのでちゃんと環境を書きます。

WindowsのIPv6に関しての基礎はMVAのトラックを見るのが最適(他のサービス@itなどの情報より的確)
  → Windows Server 2012 と IPv6





① WindowsServer2012Datacenterがインストールされた物理サーバーが1台
  このサーバーで仮想化を実現するので、役割はHyper-V3.0を入れているだけ

※なんでstandardでなくDatacenterかというとVMを3つ以上立てようと思ったので、STANDARDだとVMは2つまで(VM立てて無料で入れられるOSが2つという意味)らしく(多分ね?)(Datacenterは無限)、と普通はそうなるのかな?Datacenterは高いから別途standerdライセンス購入したりと。
私はmsdnを持ってるので単にDatacenter入れてみただけです。2012は両社内容かわらんみたいね?

※LANカードは2枚差してます。1枚はHyper-Vの仮想スイッチ用。もう1枚はリモートでサーバーメンテするのでそのやり取りをするNIC(このNICのIPアドレスめがけてリモートデスクトップしてます)

仮想マシンの仮想スイッチは「外部」
「管理オペレーティングシステムにこのネットワークアダプターの共有を許可する」はチェックしない。
これをチェックするといろいろと問題があるので(セキュリティー、その他)普通チェックしないで管理用のNICを取り付ける。




  以下は①内に仮想マシンVMを作り、入れたいOSを入れ、仮想化している



② 仮想マシンVMその1
  ゲストOS:WindowsServer2012Datacenter
  用途:AD DCサーバー  なので役割は「AD DC」のみ。

これが③サーバーから見れなかったAD DCサーバーです!仮想化したから×なのかな?と、少しだけ悩みました。

WS2012からADが仮想化したサーバー内で使えるようになったからADサーバーに。
~2008r2ではその後いろいろと面倒な問題が起こるため、物理サーバーでないとAD DCを入れられなかった(時計が狂う、障害後にDC情報をリストアすると他のDCと整合性が取れなくなる、など)

たかがAD DCサービス位で物理サーバー立てるのは¥が馬鹿らしいですからね。



③ 仮想マシンVMその2
  ゲストOS:WindowsServer2008r2SP1Standerd
  用途:DBサーバー  なのでSqlServer2012を入れたDCのメンバサーバーです。

この③のサーバーが掲題のメッセージを吐き、②DCのメンバサーバーにしようとおもったのに、ドメインに入れなかったのです。 このサーバーのネットワークの構成でIPv6を使わないようチェックを外した。SRVを探したかったのでしょうか?
ipでもサーバー名でpingは通るし、エクスプローラーのネットワークから見ると②サーバーがいるし中に入れましたが。

で、なんでWindowsServer2008r2SP1かというと、まだ2012使っているお客がいないから。
業界的にもSP1が出るまで客に2012は売るな、そうお達し出している会社が多いみたいですね。
(SP1が出ないとどんな不具合が発生するか怖く、情報も少なく、危ないし&MSの実験台にはなりたくないらしい・・)





という環境です、、、

で、原因が分かったきっかけは、エラーメッセージをよーく見ると③サーバーのIPV6のアドレスらしきものがメッセージ中にあったため。∴IPV6を使ってDNSを探しに行っていたようです。

ならきっとこいつが悪いのだろうとIPV6のチェックを外せば、、、いやおうなしにIPV4を使ってDNSサーバーを探しにいくだろうと思いそうしたところ、難なくドメインへのログインダイアログが出てきてめでたく完了。

でも本当にこれで良かったのか?少々疑問?










(後日談)

なんでも最近の?Windowsは、IPv4よりIPv6が優先されるようで、また最近のネットワーク接続はIPv4、IPv6、共にチェックされ初めから使用するようになっています。

① だからIPv6で通信しに行った

 IPv4通信を優先させたいときは、netsh、コマンドで優先順位を変更すれば良いみたいです


======
 現状確認  dos窓にて
======
(2008r2sp1)
C:\Users\Administrator>netsh interface ipv6 show prefixpolicies
アクティブ状態を照会しています...
優先順位   ラベル  プレフィックス
----------  -----  --------------------------------
        50      0  ::1/128
        40      1  ::/0      ←←←←←←←← これがIPv6らしい
        30      2  2002::/16
        20      3  ::/96
        10      4  ::ffff:0:0/96  ←←←←←←←← これがIPv4らしい
         5      5  2001::/32


=========
 優先順位変更実施  dos窓にて
=========
(上から5番目のIPv4を一番上に持って行くバッチファイルを作り実行し、既存の1~4行目の優先順位も合わせて設定するよう1行ずつ優先順位を下へずらす)
C:\Users\Administrator>netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 50 0
OK
C:\Users\Administrator> netsh interface ipv6 set prefixpolicy ::1/128 40 1
OK
C:\Users\Administrator> netsh interface ipv6 set prefixpolicy ::/0 30 2
OK
C:\Users\Administrator> netsh interface ipv6 set prefixpolicy 2002::/16 20 3
OK
C:\Users\Administrator> netsh interface ipv6 set prefixpolicy ::/96 10 4
OK

C:\Users\Administrator>netsh interface ipv6 show prefixpolicies
アクティブ状態を照会しています...
優先順位   ラベル  プレフィックス
----------  -----  --------------------------------
        50      0  ::ffff:0:0/96 ←←← IPv4
        40      1  ::1/128
        30      2  ::/0      ←←← IPv6
        20      3  2002::/16
        10      4  ::/96
         5      5  2001::/32

(参考)IPv6よりIPv4優先に変更する方法
参考と言うより、そのまま真似させていただきました
http://www.vwnet.jp/Windows/w7/IPv4/IPv4PriorityUP.html

netshの使い方
@it netsh の使い方

WindowsServer2012のdos窓で netsh interface (TCP/IP関連のパラメータ)と打つと、これはそのうちなくなるかもしれないのでPowerShellを使いなさいといわれます

TCP/IP 用の PowerShell コマンドの詳細については、
http://go.microsoft.com/fwlink/?LinkId=217627 を参照してください、らしいです。


=========
 上記リセット方法
=========
netsh interface ipv6 reset
C:\Users\Administrator>netsh interface ipv6 reset
インターフェイス のリセットに成功しました。
プレフィックス ポリシー のリセットに成功しました。
コンピューターを再起動してこの操作を完了してください。



参考までに)
2012SVのIPv6状況を調べると、、、
netsh interface ipv6>show prefixpolicies
アクティブ状態を照会しています...
優先順位 ラベル プレフィックス
---------- ----- --------------------------------
50 0 ::1/128
40 1 ::/0      ←←← IPv6
35 4 ::ffff:0:0/96 ←←← IPv4
30 2 2002::/16
5 5 2001::/32
3 13 fc00::/7
1 11 fec0::/10
1 12 3ffe::/16
1 3 ::/96
という感じです。


PowerShellのtcpip関連のコマンド
CommandType Name ModuleNa
----------- ---- --------
Function Get-NetIPAddress NetTCPIP
Function Get-NetIPConfiguration NetTCPIP
Function Get-NetIPInterface NetTCPIP
Function Get-NetIPv4Protocol NetTCPIP
Function Get-NetIPv6Protocol NetTCPIP
Function Get-NetNeighbor NetTCPIP
Function Get-NetOffloadGlobalSetting NetTCPIP
Function Get-NetPrefixPolicy NetTCPIP
Function Get-NetRoute NetTCPIP
Function Get-NetTCPConnection NetTCPIP
Function Get-NetTCPSetting NetTCPIP
Function Get-NetTransportFilter NetTCPIP
Function Get-NetUDPEndpoint NetTCPIP
Function Get-NetUDPSetting NetTCPIP
Function New-NetIPAddress NetTCPIP
Function New-NetNeighbor NetTCPIP
Function New-NetRoute NetTCPIP
Function New-NetTransportFilter NetTCPIP
Function Remove-NetIPAddress NetTCPIP
Function Remove-NetNeighbor NetTCPIP
Function Remove-NetRoute NetTCPIP
Function Remove-NetTransportFilter NetTCPIP
Function Set-NetIPAddress NetTCPIP
Function Set-NetIPInterface NetTCPIP
Function Set-NetIPv4Protocol NetTCPIP
Function Set-NetIPv6Protocol NetTCPIP
Function Set-NetNeighbor NetTCPIP
Function Set-NetOffloadGlobalSetting NetTCPIP
Function Set-NetRoute NetTCPIP
Function Set-NetTCPSetting NetTCPIP
Function Set-NetUDPSetting NetTCPIP
http://go.microsoft.com/fwlink/?LinkId=217627






(後日談 : さらなる問題)

上記ドメイン参加しているメンバサーバーにSqlserver2012が入っているが、ドメイン参加している物理クライアントからリモート接続できず(マネジメントスタジオ、PGM)、DNSの名前解決は出来ているが、何をやっても入れない。仕方なくメンバサーバーで再度IPv6を利用してみるが、今度はメンバサーバーがまたドメインへ入れず。
もうにっちもさっちもいかないので全対象CPにパケットキャプチャーソフトを入れ、現在キャプチャーして調査中。それでもどうしようもない感じのため、msdnのチケットを使うか検討中。たしか2枚使えたような気が・・?


余談ですが、こんなエラーも出ました。
「認証エラーが発生しました。ローカル・セキュリティ機関にアクセスできません リモートコンピューター:コンピューター名」 
既にドメインに入っていたメンバサーバーでIPv6を有効にしたところ、またドメインへ入れなくなってしまし、その状況下で物理PC(ドメイン参加)からリモートクライアントでそのメンバサーバーにログインしようとして出たエラー。
netにある情報と照らし合わせると原因が全く違っています。が、全く同じメッセージが出ます。
今回は理由がわかっているからよいですが、そうでなければ原因見つけられるかな?と言う感じですね。はまったら一旦netの情報は無視し基本に戻った方が良いかもしれません。






(後日談 : さらなる問題の解決)

ネイティブクライアントからsqlserverに接続できない。・・くだらなすぎる理由で1日潰しました。
原因は、クライアントPCのSQLServer構成マネージャーにあるSQLNativeClientの構成32bit、SQLNativeClientの構成64bit。
(PCにはsqlserver2005、2012のDeveloperEditionが入っている)

このうちのSQLNativeClientの構成32bitの別名。
ここにドメイン参加できなかったサーバーのサーバー名で登録した別名がありました。以前作ったものです。
64bitの方に作ってあった別名は事前に削除していますが、32bitの方は単なる削除し忘れ。


これが原因でホストを探しに行くと、ローカルを探しに行っていたよう。
久々に超!馬鹿馬鹿しい原因で時間を潰しました。あまりに簡単な原因だったこともあり、愕然としました。
ただお蔭でまる1日使いnet徘徊しネットワークの学習ができたので逆に良かったのかもしれません。

でも、アホらしいですね、、、