Windows Azureアカウントの取得

Windows AzureはMicrosoftアカウントを取ることが必須です。Microsoftアカウントを持っていない方はここから取得してください。既存のメールアドレスさえあればMicrosoftアカウントを簡単に取得することができます。メールアドレスがなくても、Microsoftアカウントを新しいメールアドレスと共に取得することができます。

image

Microsoftアカウントを取得したら次はWindows Azureにアクセスしてみましょう。

http://azure.microsoft.com/ja-jp/

まずは無料評価版を試してみましょう。自分が「これは必要だ!」と思えなければお金を払う必要がありません。シェアウェアでもやはり試用版を試してみてこれは必要だしいい!と思えなければお金を払いたいとは思わないものです。「無料で試す」という緑のボタンがありますので、それをクリックしましょう。

image

緑のボタンをクリックすると「今すぐ試す」」ボタンが出てくるのでそれをクリックしましょう。1ヶ月間200ドル相当のサービスを試用できるみたいです。

image

後は必要な情報を入力して試用期間いろいろ試してみることができます。

次回は早速仮想マシンを作成してそれにアクセスする方法をやってみましょう。

Windows Azure

名前の付け方が…って思うけど、この技術に自分は結構興味があるし期待をしている。クラウドコンピューティングということだけれども、結局何かというとMicorosoftがWindowsサーバー(Linuxのディストロも使用可能)のホスティングを始めたということ。Windowsサーバーはすべて仮想マシンで自分で管理が可能。

しばらく前からあるのは知ってたけど、特に必要もなかったので時間を割いてAzureについて勉強してなかった。ちょっと勉強してみると、これは…と思えるほどいい。当然のことながら無料ではないけど、いろいろ工夫すると非常に安価にWindows環境がクラウド上にできてしまうということ。

まずは、http://azure.microsoft.com/ja-jp/ にアクセスして設定してみよう。自分はMSDNサブスクリプションを持っているので、その恩恵を受けているのだが、ない状態で一からやってみたいと思う。Windows Azureのセットアップやその利点などをこれからシリーズとしていろいろここで書いていきたいと思う。

PowerShellでXmlPoke

本当にちょっとしたことなんですが、XMLデータのあるところをちょこっと変えたいという時にはNAntだとxmlpokeというタスクが便利ですね。それと同じことをPowerShellでやらなければならないことがありましたので、functionを作ってみました。

function XmlPoke([string]$xmlFilePath, [string]$XPath, [string]$value)
{
    $xml = [xml](Get-Content $xmlFilePath)
    Select-Xml -xml $xml -XPath $XPath | % {$_.Node.'#text' = $value}
    $xml.Save($xmlFilePath)
}

ツイッターからブログへの帰還

ここ3~4年はブログよりもツイッターで発言することが多かったんです。手軽、すぐに反応があるなど利点があるのですが、やはりちゃんとまとまった考えを書いて共有するという点に於いてはブログじゃなければならないんだと思います。

このブログでは、自分はソフトウェアの技術屋なので、それを中心にこれからも徐々に気長に書いていこうと思います。コンピューターが一般に浸透しはじめてからまだ本当に歴史的には浅いので、まだまだこれから人類の発展に寄与することを期待してその一助を担えればいいなあなんて思っています。

それよりなによりも、コンピューターが面白いからやってるんですけどね…

PowerShellでUnzip

これに関して検索するとたくさん出てくることと思いますが、Windowsのシェルを使わないとできないんです。つまり、Server Core環境ではShellがないので、

$shell = New-Object -ComObject Shell.Application

も使えないことがあります。そこで、.NET Framework 4.5に登場したSystem.IO.Compression.ZipFileを以下のように使うと簡単にZipファイルがPowerShellで解凍できてしまいます。当然のことながら.NET Framework 4.5はインストールしておく必要があります。

function ExtractZipFile([string]$filePath, [string]$destination)
{
    #Assemblyを読み込む。
    [System.Reflection.Assembly]::LoadWithPartialName("System.IO.Compression.FileSystem") | Out-Null
    #ファイルを解凍。
    [System.IO.Compression.ZipFile]::ExtractToDirectory($filePath, $destination)
}

PowerShellでディレクトリ内にある最新のディレクトリを取得する

関数にしてしまいましたが、一行でできちゃいますね。

function GetLatestChildDirectory($rootDir)
{
    return (dir $rootDir | where {$_.PSIsContainer} | sort CreationTime -desc | select -f 1)
}

PowerShellでリモートマシンのサービスをリストする

多くのコンピューターを管理をすることはIT関係の仕事をしているとよくあることです。特に最近は仮想マシンの技術が発達して、より多くのコンピューターを管理する機会が多くなりました。それぞれのコンピューターにリモートログインをしてあるWindowsサービスがインストールされているかどうかをチェックするのは、数台のコンピューターだったら大したことはないのですが、10台、20台になるとそれだけで結構時間のかかるものです。

そこで、PowerShellのスクリプトでリモートマシンのWindowsサービスをリストすることができます。以下の例ではすべてのリモートマシンが同じ資格情報(Administrator)を使用できるものとします。

$credential = Get-Credential -Credential Administrator 
$computers = "server1","server2","server3","server4","server5","server6" 
foreach($computer in $computers)
{    
     " $computer ================"    
     $allServices = Get-WMIObject Win32_Service -computer $computer -credential $credential    
     $allServices | where{$_.DisplayName -match "integration"} | Format-List -Property DisplayName
}

Windowsのコマンドラインで履歴を保存

特に開発者ならWindowsでコマンドラインを使用していろいろ仕事をすることが多いと思いますが、コマンドラインって一回閉じちゃうと履歴が全部消えちゃいますよね。Ctrl+Vで貼付けだってできないし、結構不便。そんな痒いところに手が届くソフトがclink。オープンソースで無料のようです。