PowerShell from Japan!! Blog
PowerShell 情報発信ブログ
PowerShell 情報発信ブログ
11月 25th
こちらではご無沙汰しております、牟田口です。
また告知のみで恐縮ですが、PowerShell Advent Calendar 2011というイベントを12/1から開催します。
会場はこちらです:PowerShell Advent Calendar 2011 : ATND
Advent Calendarは12/1から25日間、ある特定技術分野に関する記事を、参加者がリレー形式で毎日自分のブログにアップしていきつつクリスマスを迎えるイベントです。技術系のコミュニティでこの2,3年の間に活発に行われるようになってきています。今年はPowerShellのAdvent Calendarをやってみようと思い立ちました。
現在参加者を募集中です。PowerShell from Japan!!のオーサーの皆様はもちろんのこと、それ以外の読者の方々の参加も、ぜひお待ちしております。
PowerShellに関するTipsやコードなど、あるいは業務でどのように活用しているか、PowerShellを使ってみての感想、などなど、PowerShellがお題であれば何でも結構です。
参加表明の際に空いている希望の日時を指定することも可能ですので、ぜひふるってご参加いただけると嬉しいです。PowerShellユーザーの皆様の現場の声、ぜひ拝聴したいです。よろしくお願いします。
11月 17th
前回の記事では、サイトの開始状態を確認する方法について説明しました。
今回は、サイトを開始/停止する方法について紹介します。
.NET FrameworkのServerManagerクラスを利用する方法は、これまでに紹介したとおり、下記手順にて行います。
[void][System.Reflection.Assembly]::LoadFrom("C:\Windows\System32\inetsrv\Microsoft.Web.Administration.dll")
$IIS = New-Object Microsoft.Web.Administration.ServerManager
変数$IISにはSitesというプロパティがあり、IISを開始するStartメソッドとIISを停止するStopメソッドが備わっています。
Sitesプロパティは、コレクションであり、IISで管理しているサイトを参照することができます。
このことを利用して、サイトを開始するには
$IIS.Sites[0].Start()
サイトを停止するには
$IIS.Sites[0].Stop()
のように記述します。
前回の記事で紹介した Sitesプロパティが持つStateメソッドを利用すれば、サイトが停止されている状態なら開始をする、サイトが開始されている状態なら停止する、といったように状態を確認した上で開始と停止を行うことができます。
下記はサイトの状態を確認して、開始するコード例です。
if ( $IIS.Sites[0].State -eq "Stopped" )
{
$IIS.Sites[0].Start()
}
11月 16th
下記コードで、ServerMangerクラスを使用しIISを操作できることは、前回説明したとおりです。
[void][System.Reflection.Assembly]::LoadFrom("C:\Windows\System32\inetsrv\Microsoft.Web.Administration.dll")
$IIS = New-Object Microsoft.Web.Administration.ServerManager
Foreach ( $site in $IIS.Sites )
{
$site.Name
}
上記で取得した $siteにはStateというプロパティがあります。
このプロパティには、サイトが開始されているかどうかの情報が格納されており、下記例のようにして開始状態を取得することが可能になります。
[void][System.Reflection.Assembly]::LoadFrom("C:\Windows\System32\inetsrv\Microsoft.Web.Administration.dll")
$IIS = New-Object Microsoft.Web.Administration.ServerManager
Foreach ( $site in $IIS.Sites )
{
( $site.Name + ":" + $site.State )
}
サイトの開始状態が確認することができれば、サイトを停止する/サイトを開始するといった操作に利用することができるので、是非活用してみてください。
11月 14th
IISのアセンブリは、C:\Windows\System32\inetsrv ディレクトリにあるMicrosoft.Web.Administration.dll です。
まずは、Microsoft.Web.Administration.dllを[System.Reflection.Assembly]::LoadFromメソッドで読み込みます。
[void][System.Reflection.Assembly]::LoadFrom("C:\Windows\System32\inetsrv\Microsoft.Web.Administration.dll")
[System.Reflection.Assembly]::LoadFromメソッドについては、過去記事「.NETアセンブリをロードするには(PowerShell 入門)」を参照ください。
次に、New-Objectコマンドレットを使用してServerManagerのインスタンスを作成します。
$IIS = New-Object Microsoft.Web.Administration.ServerManager
以上でSeverManagerクラス内のメソッドなどを利用できるようになります。
最後に、サイトの一覧を取得する例を紹介します。
サイトはSitesプロパティ(コレクション)に格納されており、Foreachで取り出すことができます。
サイト名はNameプロパティで取得することができます。
Foreach ( $site in $IIS.Sites )
{
$site.Name
}
11月 2nd
Win32_NetworkAdapterConfigurationクラスについては
http://msdn.microsoft.com/en-us/library/windows/desktop/aa394217(v=vs.85).aspx
が参考になるでしょう。
代表的なプロパティは下記の通りです。
| プロパティ | 説明 |
|---|---|
| Description | 説明(ネットワークアダプタ名) |
| DefaultIPGateway | デフォルトゲートウェイ |
| DHCPEnabled | DHCPが有効かどうか(Trueで有効) |
| DHCPServer | DHCPサーバーのIPアドレス |
| DNSHostName | ホスト名 |
| IPAddress | IPアドレス |
| IPSubnet | サブネットマスク |
| MACAddress | MACアドレス |
| WINSPrimaryServer | プライマリWINSサーバーのIPアドレス |
下記コマンドを実行すると、ネットワーク情報が表示されます。
Get-WmiObject Win32_NetworkAdapterConfiguration
下記は、DHCPが有効である情報のみを取得する例です。