カテゴリー別アーカイブ: Windows

生存報告

ブログを放置しすぎた。
とりあえず、以前ちらっと書いたHyper-V Server 2012 R2の構成方法についてでも書くか。
・・・と思ったけど、結局は下記リンクを観たほうが手っ取り早いんだよね。
Hyper-V ServerをGUIで使い、仮想マシンを作成してみる

一応、プロビジョニングもどきのScriptを書いてみた。
参考程度に。

実際、仮想マシンを立ち上げて遊んだりしているが、もっぱらの用途はファイルサーバーだ。
Hyper-V Serverは無料だがファイル共有機能はついているので、これだけで簡易なファイルサーバー用途は十分に満たせるのだ。


最近は仮想マシンとしてにWindows Server 2012 R2 評価版を入れ、ドメイン構成したりSharePointインストールしたりと無意味なことをしている。
技術的な進展はない。

作ろうとしていた書籍管理DBも面倒くさくて停滞中。
ASP.NETを勉強して、入力フォームちゃんと作ろうかしら。

外付けHDDに常用ファイル置いて、それを毎晩ファイルサーバーにバックアップしているんだけど、
もう外付けHDDやめてファイルサーバーを常用化したほうがいいのかねぇ。
なんだか無駄な構成に思えてきた。


あと、そろそろ軽井沢に転勤になる。
本当は来月だったんだけど、会社の都合で再来月になりそう。
住居契約済ませたあとなのに、なんというタイミング。

まとまりねぇなぁ。

Windows ServerにGoogle Driveをインストールするときの注意点

以前の記事で触れたまま放置していたので一応書いておく。

Google DriveはWindows Server系は正式サポートしていないが、普通にWindowsクライアントのインストールが可能だ。
しかし、インストールした後、いざ認証しようとしてアカウントを入力すると以下のようになる。

GD

どうやらCookieが無効なようなので、有効化しよう。
・・・としても、これが何のブラウザなのかさっぱりわからないのでどうしようもない。

調べてみると、どうやらEdgeではなくてInternet Exploereとして動作しているようだ。
そこで、IEのインターネットオプションの設定を変更してみたが、どうもうまくいかない。

最終的に、
IEのhttps://accounts.google.com/を信頼済みサイトに登録する
という方法で解決はした。

要するにインターネットオプションのどこかでどこか設定不備があったのだろう。
しかし、どこだったのか。Cookie系の項目は全て有効にしていたと思うのだが。
どうしても腑に落ちないが、とりあえずこれで認証ができるようになったので、メモしておく。

Googleドライブはシンボリックリンクに対応しきれていない。

ファイルのバックアップのために、毎晩ローカルのファイルを自宅ファイルサーバーにコピーするように設定している。
しかし、自宅ファイルサーバーと言っても所詮は安物サーバーなので、完全に安心はできない。
そもそもローカルもサーバーも同じ「自宅」になる以上、自宅がどうにかなるともうだめである。

そこで、自宅ファイルサーバー(今はお試しを兼ねてWindows Server 2016 Previewを利用)の内容をさらにGoogleドライブにコピーするように設定しようとした。
結果としてできなかったのだが、それまでの過程を記述する。

  • 試行1 – Googleドライブにファイルコピーする
    単純にGoogleドライブのクライアントをサーバーにインストールし、
    ローカルのGoogleドライブ内にファイルをコピーしようと考えた。

    しかし、ファイルは1T近くあるため、こうするとバックアップのためだけに余分にもう1TBも
    容量をとられる結果となる。
    よって、これは却下した。

  • 試行2 – WevDavでGoogleドライブに接続する
    有料ソフトが多く、使ってみると実際はローカル上にファイルをおいているものもあり、却下した。
  • 試行3 – Googleドライブ内に同期したいファイルのシンボリックリンクを作成する。
    シンボリックリンクならファイルの実態は1つのままだし、
    作成も容易なので、コレでうまくいくと思った。

    実際、Googleドライブ内にシンボリックリンクを作成したところ、
    アップロードが実行された。

    これで問題解決、と思ったが、そううまい話ではなかった。
    初回同期後、ファイルを変更したり、追加、削除しても、Googleドライブには一切同期されなかった。
    やはり、ファイルの実態がないため、同期が働かないようだ。
    よって、これも却下となった。

  • 試行4 – Googleドライブをファイルサーバーパスに設置する。

    多分、これが最善策です。
    ただ、ファイルサーバーのファイル階層が変わるのが嫌なので敬遠している。
    バックアップスクリプトも変えなきゃだし・・・
    まぁ、今夜にでもやってみようかな。


ちなみに、Windows ServerにGoogleドライブをインストールすると、実はログインで躓く。
そうそう需要のある操作ではないかもしれないが、このあたりは今度書いておこう。

KB3114399でKB3055034の不具合が修正された

Windows UpdateによりOfficeファイルがWebDAVで開けなくなる問題だが、
ようやくMicrosoftが修正アップデートをしたようだ。

https://support.microsoft.com/en-us/kb/3114399

一応、直ったという報告もある。
https://www.reddit.com/r/sysadmin/comments/3vzmia/kb3114399_fixes_sharepoint_office_web_integration/

自分の環境ではまだ試せてないので、試してから追記する。


検証した。
どうやら問題なくWebDAVでのファイルオープンや保存ができるようになった模様。
[解決] KB3055034 適用後、Office 2010 アプリケーションがクラッシュする問題について


追記(2015/12/14)

自分の環境では再現できていないが、一部環境では「名前をつけて保存」時にまだ不具合がある模様。
HOME-BOX2
(「【HOME-BOX2】Office 2010 WebDAV接続不具合に関するご案内(12/10)」の項)

う~ん。これは困った。


追記(2016/02/24)

上記現象もKB3114750でようやく解消した模様。
https://support.microsoft.com/ja-jp/kb/3114750
よかったね。おめでとう。

Hyper-Vの仮想マシンのネットワークを制限する方法

仕事でHyper-V上で複数マシンを立ちあげて管理している。
一応、各ゲストマシンはそれぞれ無関係なので、ゲストマシン間の通信は行えないようにしたい。
ただ、現実問題として使える仮想ネットワークアダプタは限られているので、
どうしても同じネットワークアダプタを使わざるを得ない。

何とか良い通信制御方法は無いかと探していたら、Hyper-VでAcl(アクセス制御)ができることが分かった。
ホストマシンでコマンド実行するだけなので、一度わかればかなり楽に設定が可能である。
なお、Windows Server 2012からの機能なので、恐らくWindows Server 2008 R2とかその世代のものではできないと思う。


ホストマシンからPowerShellで以下のコマンドを実行すると設定等が実行できる。
なお、ここで「VM名」と言っているのはHyper-Vマネージャ上で表示されている仮想マシンの名称のことである。

  • 設定を確認する
  • 設定を追加する
    ・<Action>・・・接続拒否ならDeny、接続許可ならAllow、計測ならMeter。
    ・<Direction>・・・VMへの入力方向ならinbound、VMからの出力方向ならoutbound、VMの入出力両方ならBoth。
    ・<VM名>・・・対象のVM名を指定する。コンピュータ名でなくVM名なことに注意。
    ・<対象IPアドレス>・・・対象のIPアドレス。CIDR表記での設定も可能。
  • 設定を削除する
    要するに、addしたものと同じ設定を指定してDeleteする必要がある。何と面倒な。

例えば、192.168.0.1がルータで、192.168.0.xが別のゲストマシンの場合、
以下のようにすれば、「ルータ(=インターネット)にのみ接続し、他の同ネットワーク上マシンとは通信しない」という設定が可能である。

以下のページがより詳しいので参照すると良い。
僕はこのページが無くては詰んでいました。ありがとうございます。
参考: Windows Server 2012 Hyper-VでPort ACL・その1


いよいよ日本に帰任しそう。
引越し手続きとか全部やってくれないかね。
自分で手配するの面倒臭いし絶対何かミスしそう。

Windows Server 2012のRDPでサーバー証明書を設定する方法

RDP(リモートデスクトップ)でキチンとセキュアな環境を整えるためには、
サーバー証明書を設定する必要がある。
設定する理由と、設定しない場合の弊害は下記記事を参照するとわかりやすい。
参考: リモート・デスクトップ接続のサーバに「正しい」証明書を割り当てる

さて、それでWindows Server 2008 R2であればGUIで簡単に割り当てられるのだが、
Windows Server 2012では同様の項目が見つからなかった。
調べた結果、どうもPowerShellを使うぐらいしか方法が見つからなかったので、その方法を記載する。

  1. 新しい証明書をダブルクリックし、インポートする。
  2. PowerShellを管理者として実行する。
  3. 以下を実行し、新しい証明書のThumbprintを確認する。
  4. 以下を実行する。これは単にパスを設定するだけである。
  5. 以下を実行し、証明書の割当を変更する。

以上の手順で証明書を設定できる。
実行後、特にエラーが起きないことを確認したら、RDPを切断し、再度RDPで接続できることを念の為に確認する。
RDPしたときのウィンドウ上の鍵マークをクリックすれば、設定した証明書が利用できているか確認できる。

他に方法はあるはずだと思うけど、上記手順で行えたので調査は打ち切りです。
こんな操作すること滅多にないしね。


こういう作業の何が嫌かって、万が一ミスってRDPできなくなったときだね。
データセンターのサーバーに対してやる場合、最悪データセンターに行かなくてはならなくなる・・・

Windows Update KB3055034で凄く困った(修正済。詳細は追記より)

恒例のWindows Updateによる不具合。
今まで運が良かったのか遭遇したことはなかったんだけど、昨日、とうとう大きなトラブルにぶち当たった。
それも仕事関係なのが救えない。

Microsoft Office 2010(KB3055034)の更新プログラム

何が問題かって、この更新プログラムをインストールすることにより、
Excel2010で、Web上のOfficeドキュメントをWebDAVで開けなくなるのだ。
俺が確認したのはSharePoint2010上のファイルだけど、情報調査した限りWebDAV使う物全般がダメになっているみたい。
確認した限り、現象は「認証ダイアログが何回も表示される」「Excelがクラッシュする」等。

今のところ、どうもネット上にはまだ情報があまりない。
一応、確認したのは以下のページ。

KB3055034 breaks opening Office files directly from sharepoint
HOME-BOX2(お知らせの部分)

なお、このKB3055034をアンインストールすることにより問題は解消した。
方法は以下のとおり。

・手動でアンインストールする方法
1. 「コントロールパネル」を開き、「プログラム」をクリックする
2. 「プログラムと機能」の「インストールされた更新プログラムを表示」をクリックする
3. 「Microsoft Office」カテゴリ内の「Update for Microsoft Office 2010(KB3055034)」を右クリックし、「アンインストール」をクリックする
4. ダイアログの指示に従ってアンインストールする

・コマンドで実行する方法
以下のコマンドを実行する

アンインストーラーが立ち上がるので、指示に従ってアンインストールを行う(再起動が必要)


MicrosoftがKB3055034を取りやめない限り、Wndows Updateを行うとまたKB3055034が入ってしまう。
そのため、以下の対策を行う。

・再度KB3055034をインストールしないように設定する方法
1. 「Windows Update」を起動する
2. 「更新プログラムの確認」をクリックし、現在インストールできる更新プログラムを取得する
3. 取得が完了したら「XX個の重要な更新プログラムが利用可能です」をクリックする
4. 「Office 2010」内の「Microsoft Office 2010(KB3055034)の更新プログラム」のチェックを外す
5. 「Microsoft Office 2010(KB3055034)の更新プログラム」を右クリックし、「更新プログラムの非表示」をクリックする
6. 「OK」をクリックする


しかし、KB3055034からどうしてこんなトラブルが発生するのか。
だってこの更新プログラムの内容って

Microsoft Word 2010 で、ドキュメントにカスタム作業ウィンドウが表示されたら、組み込みの作業ウィンドウに情報が更新されません。
たとえば、選択したテキストの書式は、書式の詳細設定] 作業ウィンドウで更新されません。

だよ?
Officeの内部コードの闇は深い、ということなのか。

ってか、Office2010のメインストリームサポートってこの更新プログラムが出た2015/10/13に切れてるんだな・・・
Microsoft Office 製品に関する各 OS のサポート状況
修正パッチがでなかったらどうしよう・・・


追記(2015/10/20)

どうやら、KB3055034をアンインストールし、ファイルを開けるようになっても、
編集して保存することができなくなるパターンが有るようだ。
その場合はKB3054886も同様にアンインストールすると編集、保存が可能になる。

また、IEの「信頼済みサイト」に登録することで回避できる場合もあるようだ(未確認)
MSの公式情報で確認できるのは今のところ下記だけである。
https://community.office365.com/ja-jp/f/347/t/414294

早くパッチでないかねぇ。


追記(2015/11/24)

2015/11/11のWinddows Updateで同様の現象が再発する模様。
KB3101521のアンインストールで解消した。
https://support.microsoft.com/ja-jp/kb/3101521

mso.dllに含まれる不具合のようなので、
今後もmso.dllが更新されると再発すると思われる。


追記(2015/12/09)

KB3114399でKB3055034の不具合が修正されたことが分かった。
これで無心でWindows Updateできるね。
よかったね。おめでとう。

HP DL360サーバーで論理ディスクを作成する方法

社内で結構サーバーやインフラ関連に関わるようになってしまった。
わが社はHPのDL360シリーズのサーバーにWindows Serverをインストールして使っている。
論理ディスクはBIOSからささっと設定することができる。

で、それはいいんだけど、運用後にさらにHDDを追加し、これで論理ディスクを作成するようにお達しが来た。
「え?BIOSからやる=システム止めなきゃ無理じゃね?」と思ったが、どうもHPのツール
「HP ProLiantアレイ コンフィギュレーション ユーティリティ for Windows 64ビット」
を使えばシステムを止めずに論理ディスクの作成ができるらしい。
上記ツールはWeb上で入手可能だ。
実際に導入したが、GUIに従うだけで論理ディスクの作成、削除ができる。いやぁ簡単でいい。
(ちなみに、HPプロビジョニングでOSインストールしていれば初期から入っている筈である。最初からプロビジョニングでインストールすればよかったんだけど、何か上手くインストールできないから直に入れた経緯がある)

・・・と安心していたら、さらに要望が来た。
「Hyper-V Server 2012の方にもHDD追加したから論理ディスク作成4649!」とのこと。
GUI使えないし、どうすりゃいいんじゃと思っていたが、CUIで論理ディスクを作成できるツールもHPがリリースしていることが分かった。
「HP ProLiantアレイ コンフィギュレーション ユーティリティ(CLI) for Windows 64ビット」
以下、使い方とコマンド例をメモしておく。

事前準備
1. HPのサポートページから利用しているサーバーを検索する
2. 商品のページに辿り着いたら「ドライバー、ソフトウェア、およびファームウェアを入手する。」をクリックする
3. OSで「Windows Server 2012」を選択する
4. 「ソフトウェア – システム管理」に「HP ProLiantアレイ コンフィギュレーション ユーティリティ(CLI) for Windows 64ビット」があるので、これをダウンロードする
5. ダウンロードしたインストーラをサーバー上で実行する。コマンドプロンプトでインストーラを実行すればGUIがでてくるのでそれに従う

実行方法
1. c:\Program Files\Compaq\Hpacucli\Bin\hpacucli.exeを実行する
2. アレイ設定ツールが立ち上がるので、各コマンドを実行する

なお、コマンドの説明と例はマニュアルを参照すれば良い。
が、やや難しいので、実際に自分が使ったコマンドを備忘も兼ねて記述する。


・現在の設定を確認するとき


・論理ディスクの設定を確認するとき

スロット番号、論理ディスク番号は上記のdetailから確認する。


・空いているディスクでRAID0のディスク(アレイ)を作成するとき

スロット番号は上記のdetailから確認する。


・空いているディスクでRAID 1 のディスク(アレイ)を作成するとき(ディスクを指定する)

スロット番号は上記のdetailから確認する。
driversもdetailから確認可能。どうやら<port>:<box>:<bay>の順になっている模様。detailで全論理ディスクのdriversを確認して、使われてないディスクを指定すればよい。


・論理ディスクを確認する

スロット番号は上記のdetailから確認する。


・論理ディスクを削除する

(スロット番号は上記のdetailから、論理ドライブ番号はlogicaldrive all showから確認する)
警告が出るので、yで続行し、削除する。


しかし、趣味でこういうことするのはいいけど、仕事という責任が伴う場合でサーバーやインフラ管理するのって疲れる。
しかも担当者が知識ゼロの俺だけとか。

もう少しミニマムに、単純に行きてゆきたい。

VirtualBoxの仮想環境で容量を増やす方法とその注意点

僕はMac使いだが、C#しか基本的に使わないので、コーディングするときはVirtualBoxでWindows8.1を起動してその中でやっている。
Windowsもクリーンインストールだとスッキリしていて悪くない。仕事関係の勉強にもなるし。

で、どんどん使っていると容量が無くなってくる。
当初は20GBもあればいいだろ、と思っていたのに、今では40GBに増やしたくなっている。
VirtualBox上では「容量の拡張」みたいなメニューが無いので無理だと思っていたが、調べてみたらコマンドから実行可能だった。

やり方自体は簡単。Macなのでターミナルから実行することを想定しているが、Windowsでもコマンドプロンプトから同じように実行できる。

ちなみに、一つ落とし穴がありハマったので、それについては後述する。


VirtualBox仮想環境(Windows)のディスク拡張方法

  1. 仮想ディスクファイルのバックアップをとっておく
  2. VBoxManage modifyhd 仮想マシンの仮想ディスクのパス —-resize 拡張後のディスク容量(MB単位)
    を実行する。
    ex)VBoxManage modifyhd /Users/Administrator/VirtualBox/VMs/TestMachine/TestMachine.vdi --resize 40960
  3. コマンドが完了したら、仮想マシンを起動する。(この時点ではまだ容量が増えていない)
  4. 「コントロールパネル」→「システムとセキュリティ」→「ハードディスク パーティションの作成とフォーマット」を開く
  5. 画面下部で、Cドライブに割り当てられている領域を右クリックし、「ボリュームの拡張」をクリックする。

以上で仮想マシンの容量が拡張される。
2以降の手順はWindows固有の操作なので、Windows以外の場合はそのOSのパーティション割り当て方法に従ってください。

・・・で、1で仮想ディスクを拡張したとき、仮想マシンが一切起動しなくなる場合がある。
どうやら原因は仮想ディスクファイルの形式のようだ。
VHD形式の仮想ディスクファイルは上記コマンドで拡張すると壊れてしまい、起動できなくなるのだ。

VHD形式の仮想ディスクを拡張するには、一度別形式に変換してから拡張を行うと良い。

VBoxManage clonehd --format VDI 仮想マシンの仮想ディスクのパス 変換後の仮想ディスクのパス

ex)VBoxManage clonehd --format VDI /Users/Administrator/VirtualBox/VMs/TestMachine/TestMachine.vhd /Users/Administrator/VirtualBox/VMs/TestMachine/TestMachine.vdi
上記コマンドでVDI形式に変換された仮想ディスクファイルが作成されるので、それを拡張すれば良い。
拡張後は形式をVHD形式に戻してもいいし、戻さなくてもいいし、好みにすればいいと思う。


しかし、最近自分にITの適正が無いのが分かり始めた。
何かこう、薄給で責任の少ない仕事がしたい。
田舎の公園の清掃員とかが理想なのだ。
(清掃員を下に見る意図ではありません。ただ、田舎に帰るとどうしても羨ましくなってしまうのです。)

コマンドプロンプトをランチャー的に使う

仕事でプログラミングをやらされるようになって、ようやくコマンドプロンプトとか、いわゆるCUIに触れるようになった。
しかし、如何せんタイピングが遅いという致命的な欠点がある自分では細かいコマンドがストレスでたまらない。

で、予めエイリアスを登録した状態でコマンドプロンプトを立ち上げられるようにした。
レジストリをいじってコマンドプロンプトが起動したら自動的に指定したパッチファイルを読み込むようにすることもできるんだけど、
(というか会社ではそうしている)
自宅PCの環境を極力綺麗にしたいというPC初心者的思想から、あえてパッチファイルからコマンドプロンプトを起動するようにした。

上記ファイルをStart_Advanced_Command_Prompt.batというファイル名でホームディレクトリ(C:Usersユーザー名)に保存して、保存したファイルを起動すればいい。
適宜追加したいコマンドがあれば追加する。
上記なら、例えば”commit AAA BBB”と打つだけで”git commit -m “AAA BBB””が実行される。

ファイル名や保存ディレクトリ、使用したいアプリケーションに応じて当該箇所は書き換えること。
僕はデスクトップに保存しているのでeditとreloadを書き換えている。

なんの工夫もないけど、%windir%system32cmd.exeで新規にコマンドプロンプトが立ち上がるのもだと思い込んでいたから、こういった方法が使えるのに気付かなかった。

本当はコマンド類は別batファイルにしたかったんだけど、batファイル終了時にコマンドプロンプトも終了してしまった。
%windir%system32cmd.exeをコマンド記述batファイルの最後に加えればいいのかもだけど、それだと分離する意味が怪しくなってくるのでもう1ファイルにすることにした。

技術的には何の価値もないけど、少ない知識で何かできるのは楽しい。
困難なことばかりでなく、初心者でもできることにも共有する価値が有るのだ。
(初心者でもできることしか共有できない、ということは置いておく)