Windows で自己署名証明書を作成するスクリプト

Windows AzureSSL のテストをやりたいときに、自己署名証明書を作成することがたまにある。

自分の場合、自己署名証明書の作成には、Windows SDK で提供されている makecert コマンドと pvk2pfx コマンドを使っている。 ただ、作成するのは稀だし、毎回作り方を忘れていてネットで調べていたので、スクリプト化してメモしておく。

SET FQDN=azure-sample.cloudapp.net
SET CER_FILE=%FQDN%.cer
SET PVK_FILE=%FQDN%.pvk
SET PASSWORD=test12345
SET BEGIN_DATE=01/01/2000
SET END_DATE=01/01/2100

rem 証明書作成
makecert -r -pe -n "CN=%FQDN%" -sky exchange %CER_FILE% -sv %PVK_FILE% -a sha256 -b %BEGIN_DATE% -e %END_DATE%

rem pfx ファイル作成
pvk2pfx -pvk %PVK_FILE% -spc %CER_FILE% -pfx %FQDN%.pfx -pi %PASSWORD%

ファイル名やパスワードは適当なものに変更して使うこと。

コマンドプロンプトでのカレントドライブ変更方法のメモ

Windows のコマンドプロンプトで、ドライブ間を移動する方法を知らないので調べてみた。どうやら /D オプションが必要なのね。

cd /D 移動先ドライブ内のパス

なんでオプションが必要なんだろう。
/D オプションをわざわざ指定しなくても、ドライブを移動できるべきじゃないかな?

rmdir で空じゃないフォルダを削除できないのもイヤ。「空じゃないけど消す?Y/N」って確認するくらいでいいと思う。

Visual Studio Setup プロジェクトで Program Data にファイルを配置する方法

Visual Studio Setup プロジェクトでアプリのインストーラーを作っていて困りました。

Program Data にファイルを配置する必要があるのに、メニュー「特殊なフォルダの追加」から選べるフォルダに、「すべてのユーザーのプログラムデータフォルダ」が無いじゃないか。ユーザーのプログラムデータフォルダはあるというのに…!

仕方無いので、下の記事を参考に、カスタムフォルダを使う方法で配置することにしました。

カスタムフォルダのプロパティに下の値を指定することで、無事インストーラーは完成。

DefaultLocation [CommonAppDataFolder]\[Manufacturer]\[ProductName]
Property COMMONAPPDATA

それにしても、なんで特殊フォルダの一覧に Program Data フォルダが無いんでしょうね。もっとヤバそうなフォルダは選択できるのに*1

*1:Windows フォルダとか

シンボリックリンクを使ったフォルダの整理術

私のメインマシンには .NET だけでなく、RubyPythonGoogle App Engine の開発環境も入っているんですが、プロジェクトフォルダが分散してしまっています。

.NET は Visual Studio が作る Projects フォルダ、RubyPython と GAE はそれぞれのインストールフォルダ内に apps フォルダを作り、その中にプロジェクトフォルダを作成していました。これらを一箇所にまとめたい。でも、今の場所から移動すると、パスを設定し直すのが面倒です。

そこで、シンボリックリンクを使ってまとめてみました。Windows の場合、Vista 以降なら次のコマンドでシンボリックリンクが作れます。コマンドの実行には管理者権限が必要です。

mklink /d 作成するフォルダ名 リンク先のフォルダ名

参考までに、私は先述のフォルダをすべて D:\projects フォルダへのシンボリックリンクに変更してみました。

開発環境仮想化計画

はじめに

先日、およそ4年ぶりに自宅で使うマシンを買い替えた。新しいマシンは、メモリだけでも前より8倍パワーアップ。そのマシンパワーを生かして、ずっと考えていた開発環境の仮想化を実行することにした。

仮想マシンを使えば環境を汚さないで済む

例えば、Visual Studio をインストールしたら、一緒にいろんなツールがインストールされて、「プログラムと機能」や「スタートアップ」が賑やかになってしまう。SQL Server をインストールしたときも同様。

家でネットを見たり音楽を聴いたりする時間の方が、コードを書く時間よりも多いので、よく使うツールがたまに使うツールに埋もれてしまうのが個人的に嫌。

不要になった環境の削除も簡単

開発ツールの削除って大変すぎる。特に Visual StudioSQL Server

開発ツールを仮想マシンにインストールすれば、Webを見たり音楽を聴いたりする環境と、開発環境を分けることができる。要らなくなった環境は、仮想ハードディスクごと削除すれば済む。

開発環境のバックアップが簡単

仮想ハードディスクのファイルを、外付けハードディスクの適当なフォルダにコピーすれば、バックアップは終了。サイズが気になる場合は圧縮すればいい。HD 革命なんて不要。

開発環境の復元も簡単で、バックアップしておいた仮想ハードディスクを手元のマシンにコピーし、VMWare みたいな仮想ソフトに追加するだけでいい。

アプリによって開発環境を分けることもできる

例えば、.NET アプリ開発用と Web アプリ開発用に分けるとか。.NET アプリの場合は OS に Windows しか使えないけど、Web アプリ開発なら Linux でいい。Ubuntu とか。

欠点は高いマシンスペックが求められること

仮想マシンでストレスなく開発するには、マシン本体に十分なスペックが必要。特にメモリ。今回買い替え時にメモリを 4GB 積んだので、今のところ Windows XP 程度なら仮想マシンでサクサク動いている。でも、Visual Studio 2010 を動かすと激重だろうな。

仮想化ソフトはお好みで

私の場合、.NET アプリ開発だけでなく Web アプリ開発もしたいので、VMWare Player を選択。.NET アプリ開発だけなら、Windows Virtual PC でも問題ないんだけど。ゲスト OS で Linux 系をサポートしてないのは残念。あと、Virtual Box は描画が遅いという評判を聞いたので試していない。

開発でも仮想化は積極的にやった方がいい

仮想化で開発環境を量産できるし、簡単にバックアップも取れるし、復元もできる。OS のライセンスが許せば、複数人で開発する際に、ツールインストール済みの環境を配布することもできる。

開発で仮想化を使わないのは損だと思うんだけど、どうだろう。

プリインストールソフトなんていらない

4年前に VAIO を購入したとき、大量のソフトがインストールされていて、すごく嫌だった。今回の PC 購入で DELL を選んだのは金額だけじゃなく、「インストール済みのソフトが少ないはず」というのも大きい。実際、Inspiron にインストールされていたソフトは VAIO よりもだいぶ少なかった。それでも、使わないソフトを削除する作業は必要だったけれど。


個人的には、購入した PC には Windows7 とウィルス対策ソフトの体験版が入っていれば十分。ウィルス対策ソフトの体験版は、他のに乗り換えるまでのつなぎ。ノーガードでネットに繋ぐのは、ちょっと気が引けるから。


ネットで注文する際は、ハードウェアの構成だけじゃなく、インストールするソフトも細かく選べたらいいのにと、つくづく思う。インストーラーの「標準インストール」と「カスタムインストール」みたいに。


例えば DELL のオンラインストアで注文する場合、CPU やメモリや HDD などをユーザーが選択するわけで。自分でハードウェア構成を選択できる程度の知識を持っている人なら、愛用ソフトの1つや2つあるハズ。愛用ソフトを使いたいから、プリインストールされているソフトを削除する人って多いと思うんだけど、実際どうなんだろうか?

我が家に Windows7 マシンがやってきた

ついに Windows7 マシンを購入

Visual Studio 2010 のローンチが目前に迫った中、愛機 VAIO Type T (Windows XP) の貧弱さにとうとう我慢出来なくなり、少ない貯金をはたいて新しいマシンを購入。

家にデスクトップを置くスペースなんて無いので、ノートを選択。持ち運べると、部屋の掃除とかしやすいからね。出張でも持って行けるし。

Mac Book に憧れるけど…

仕事で .NET を扱っているせいか、家でも .NET をさわる機会が多いので、Windows7 を選択。Mac の Bootcamp や VMWareWindows7 を使う手もあるんだろうけど、金銭的に無理。それに、Windows でしか使えないアプリって結構あるしね。

12.1 インチ以上のノートはノートじゃない

そう思っていた時期が私にもありました。今回購入したのは 13.1 インチのノート。ホントは 12.1 インチ以下のモデルが欲しかったんだけど、DVD ドライブが内蔵されていないのはメインマシンとしてどうかと思ったんで、しぶしぶ妥協。

「ノートは小さい方がいい」というこだわりは、大学4年の研究室所属時に、15インチの重いノート(2kg 超!)を毎日持って通学していたつら〜い思い出からきたものなので、出張以外で持ち運ぶ機会の無い今となっては問題じゃないのだけれど。

それでも、15インチ以上のでっかいノート PC を購入する気には、流石になれないや。でっかいノート PC を買う人の気持ちが想像できない。

さっそく環境構築

VAIO で使っていたアプリを一度にすべて入れるのは大変なので、ひとまず必要最低限のものにとどめておく。

avast!

マカフィーの体験版がインストールされていたので削除し、avast! のフリー版をインストール。UI が変わって使いやすくなった…気がする。以前の音楽プレーヤーみたいな UI があまりにも使いづらかったからなぁ。

COMODO Firewall

Windows 標準のファイアウォールじゃ心もとないので、最近評判の COMODO Firewall をインストール。付属の AntiViruls は不要。標準で日本語に対応しているのは嬉しい。でも多機能すぎてすぐには使いこなせそうにない。とりあえず次のページで使い方の初歩を勉強。

Google Chrome

FirefoxChrome で迷ったけど、Chrome のサクサク感を体験したら、もっさりした Firefox に戻れなくなった。Firefox のアドオンは魅力的だけど、たくさん入れすぎたら重くなるし、入れないと使い勝手悪いし…。

残りは必要になったときにインストールすればいい

重要な書類とかは Web 上に保存するようにしていたので、メインマシンの移行で行ったのはアプリのインストールのみ。ローカルから Web へ徐々にデータを移していたので、それが今回役に立った。

Visual Studio のインストールは時間がかかるから、2010 が出てからでいいや。