Windows Azure を Windows PowerShell をはじめとするコマンドラインから管理するためのモジュールが以下からダウンロードしてインストールすることができます。
http://www.windowsazure.com/en-us/downloads/?fb=ja-jp
これにより、Windows PowerShell のコマンドレットや、Azure.cmd コマンド等が使える用意なり、それはそれは大変便利な環境になります。
が、難点は、コマンドがどこを触っているのかさっぱりわからないこと。
特に、以前は証明書の作成も含めて自分でやらなければならなかった管理証明書(API証明書)のインストールやアップロードなんかは、以下のコマンドレットを使用して簡単に行えるようになりました。
Import-AzurePublishSettingFile コマンドレットを実行して .publishsettings ファイルを取り込むと何が行われるかというと、以下の通りです。
ここに保存したサブスクリプション情報が裏で使用されて管理プロセスが動きます。
これ、非常に便利なのですが、「環境をきれいにしよう」なんつってうっかりローカルの証明書を消してしまったりするとさぁ大変。
以下のようなエラーが出て、コマンドレットがことごとく使えなくなります
PS C:\windows\system32> Select-AzureSubscription コマンド パイプライン位置 1 のコマンドレット Select-AzureSubscription 次のパラメーターに値を指定してください: (ヘルプを表示するには、「!?」と入力してください。) SubscriptionName: junichia Select-AzureSubscription : No certificate was found in the certificate store with thumbprint 4EAAE4F5CF86FEA8625A9688A6E05DBA79363882 発生場所 行:1 文字:1 + Select-AzureSubscription + ~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : CloseError: (:) [Select-AzureSubscription]、ArgumentException + FullyQualifiedErrorId : Microsoft.WindowsAzure.Management.Cmdlets.SelectAzureSubscriptionCommand
原因は、publishSettings.xml と DefaultSubscriptionData.xml ファイルに書き込まれた管理証明書がローカル無いためです。
かといって削除してしまったものは復活できないので、仕方ありません。いさぎよく、この2つのファイルを消してしまう。。。またはテキストエディタで開いて、当該サブスクリプションに関するエントリを削除します。その後、再度 Import-AzurePublishSettingFile を実行しなおしてファイルを再生成すれば OK です。
便利になるのはいいんですけどねぇ。トラブルと面倒なんですよね。。。