【Management】より高度な PowerShell スクリプティング をバーチャルラボで習得

バーチャルラボはご存知ですよね。 マイクロソフトのサーバーに用意された仮想環境を使用して、実際に手元のコンピュータで動いているかのように製品を触ることができるサービスです。 マイクロソフト TechNet バーチャルラボ 英語版で恐縮なのですが、PowerShell 関連のラボが2件公開されているのでご紹介します。スクリプトの学習なので、あまり英語云々は気にならないです。 Advanced Windows PowerShell Scripting Managing Windows Vista with Windows PowerShell ■Advanced Windows PowerShell Scripting その名の通り、PowerShellのより高度な機能(のきっかけとなる技術)を習得するためのラボで、以下のような演習からなっています。知っていればどうってこと無い内容かもしれませんが、そこにたどり着くまでにあちこちのサンプルを探しまくるよりは、このラボを90分体験して習得してしまったほうが効率的です。超お勧めです。 Exercise 1 Creating Advanced Scripts with Windows PowerShell この演習では、PowerShellを使うに当たって必須の技術であるにもかかわらず、意外と「あれっ?」と思うような事項を学習します。 ー 変数の使い方 ースクリプトブロックの使い方 ーFunctionの使い方 Exercise 2 Using Windows PowerShell with WMI タイトル通り、WMI(この演習ではネットワークカードへのアクセス方法)を使用して、より幅広い情報にアクセスする手法を学びます。1つの例でアクセスの方法さえ覚えてしまえば、あとはその応用でいくらでも幅を広げられます。そのキーとなるのが Win32_ で始まるクラス名であり、その一覧はここ(MSDN)に書かれています。 Exercise 3 Scripting with .NET Objects .NET Framework を直接呼び出す方法について学習します。この演習では、ダイアログボックスを作って表示しています。 Exercise…

0

【Management】PRO(ピー・アール・オー) ってご存知ですか?

仮想マシンを操作するサンプルスクリプトが無いかなぁと思っていたところ、面白いサンプルがあったのでご紹介します。 これは、SCVMM 2008 と OpsMgr 2007 の連携機能である PRO(Performance and Resource Optimization)によって生成されるスクリプトです。 スクリプトはこちら スクリプトの中では、get-vmmserver や get-vmhost、Get-VMHostRating、Move-VM など、仮想マシンを管理するのに有用なコマンドレットが使われていますので、大いに参考になるかとおもいます。 ときに、PROって…ご存じですか?直訳すれば「パフォーマンスとリソースの最適化」です。ちょっとだけ概要をご紹介しておきます。 まずは前提知識として… もうおなじみだと思いますが、仮想マシンを集中管理するのが System Center Virtual Machine Manager 2008 ですね。そして、物理、仮想問わず、ネットワーク上のサーバーやクライアントの監視を行うのが System Center Operations Manager 2007 です。 さて、あるホストに複数の仮想マシンが稼働している状態を考えてください。ホストの全体のCPU使用率が上昇し、この状態が続くと業務に影響が出てしまうかもしれないっ! そんなときに、あなたならどうしますか? 負荷が高いということは資源がよくつかわれているということなので逆に安心する せっかくの機会なのでベンチマークテストを行う Windows 神社で祈ってみる 止めても問題のない仮想マシンを停止する。様子を見て、また起動する。 VMM2008を使用して仮想マシンを別のホストに移動する 心情的には 2.だったりもしますが、そうも言ってられません。現実的には、4. か 5. ですよね。 で、この作業を手で行ってもよいのですが、いつもあなたがその場にいるとは限りません。 じゃ、どうするか?といえば、「自動化」しておけばよいわけです。 幸いにも、SCVMMはPowerShellスクリプトから操作することができますし、OpsMgrはCPUの負荷状況を監視することができます。この2つが組み合わされば、なんか自動化できそうな気がしてきませんか?してきます。 手作りで上記のような自動化の仕組みを作りこむことも可能ですが、VMM2008 + OpsMgr2007(SP1)を組み合わせると、標準機能でコレが実現できてしまいます。コレ=PRO ということです。 PROを使用すると、OpsMgr側で検出したアラートを SCVMM が受け取り、その状況に適したスクリプトが生成され、実行されます。これによって、適切なホストに仮想マシンが移動されたり、仮想マシン自身のリソースの再設定が行われたりします。…

0

PRO で生成されるスクリプト(サンプル)

$hostName = ‘JUNICHIA03.example64.jp’; $serverName = ‘SCVMM.example64.jp’; $ProtipId = ’23B785AC-2C4C-4C8A-A7DB-2E54A5E9A475′;  $vmErrorCode = ‘1’;  function new-array { $args }   function FailGenericError { Set-PROTip -PROTipId $args[0] -LastError $args[1] -TipStatus Failed; }   function FailHostNotFound { $params = new-array ‘{2D6FA041-3A11-C4A4-0870-43D3DA2A350E}’ $args[1];  Set-PROTip -PROTipId $args[0] -LastErrorOpsMgrString $params -TipStatus Failed; }   function FailNoVMFound {  switch($args[1]) {   1 { $params = new-array ‘{7909730C-BD3A-9639-75A4-C2CAB421E365}’…

1

【ライトニングトーク ネタ】パフォーマンスを見る

#表示がおかしかったので修正しました。失礼しました。  12月2日に福岡で開催されたTFセミナーでは、お申し込みされた方が少なく、PASSJの河端さんだけでした。そこで、わたくし安納と、Developper Evangelist の大野もLTに参戦いたしました。 私はと言えば、5分におさまりきらず、最後は無理やりまとめてしまいました。が、実はちょっとだけやり残してしまいました。そこで、この場をお借りして、LTトークを行います。5分で読んでください。 <LT開始> みなさんこんにちは、マイクロソフトの安納です。今回は、「パフォーマンスを見る」方法についてご紹介します。 みなさんは、普段、どのような方法でパフォーマンスを見ているでしょう? もっとも手軽なツールが、タスクマネージャーですね。CPUとメモリの状態を手っ取り早く把握するにはこれで十分です。 次に挙げられるのがリソースモニターです。これはWindows Vistaから実装された機能で、CPUやメモリだけでなく、ディスクやネットワークのパフォーマンスを見るのにも活用できます。タスクマネージャーと違い、グラフを見ながら個々のプロセスを確認することができるところがすぐれています。リソースモニターはパフォーマンスモニタの一部として実装されており、コマンドプロンプトから起動する際には perfmon /res と入力します。 さて、次は、すこしなじみのない方法かもしれません。 WMICコマンドです。WMIはご存じでしょうか?Windows Management Instrumentationの略で、Windows Management サービス という名称で実装されています。VBScript や PowerShell をはじめとして、さまざまなプログラム言語からWMIをコールすることで、OSの状態やハードウェアの情報、レジストリ、ユーザーアカウント、などなどなど、とにかく多くの情報を収集することができるだけでなく、情報の設定も可能です。 WMIを使用してパフォーマンス情報を取得することもできます。スライドに示したのは、システムのプロセス情報を取得した例です。「NODE」は参照したいコンピュータ名、「PROCESS」はプロセスに関する情報を取得することを示しています。PROCESS の部分を他のエイリアスに変更することで、その他の情報を取得することができます。どのようなエイリアスが用意されているかは WMIC /? でヘルプを参照してみてください。「List Brief」は表示形式を指定しており、「概要の表示」を意味しています。 スライドにはWMICコマンドの実行結果例を示しています。タスクマネージャと同様の情報が出力されていることがお分かりいただけるでしょう。 パフォーマンスを参照する場合、全ページのように1回限りの情報ではあまり意味がありません。繰り返し表示して、カウンターの推移を見たいと思うのが人情ってものです。 WMICには、さまざまなスイッチが用意されており、繰り返し表示するには「/Every」を使用します。 また特定の情報に絞って取得したい場合には、「get WorkingSetSize」のように取得したい属性名を指定したり、Where句によって特定のプロセスを指定することができます。 ここに示したコマンド例を実際に実行すると、次のようになります。 この例では、1秒ごとに、Explorer.exe の使用メモリ、CPUの使用時間を取得しています。画面に表示するだけでなく、c:\tmp\perf.txtにも保存されています。 WMICの面白ところは、パフォーマンスカウンタのクラスを直接指定することで、パフォーマンスモニタと同じレベルの細かな情報を取得することができるところです。 今回は詳しくお話する時間がありませんので、「WMI Win32 Classes」で検索してみてください。MSDNライブラリ内の情報がヒットします。   さて、1つ大御所が抜けていますね。そうです、パフォーマンスモニターです。パフォーマンスといえばパフォーマンスモニター。これを知らずしてパフォーマンスを語ることはできません。 なので詳しい使い方等の説明は省きますが、Windows VistaやWindows Server 2008によってカウンタの数も増え、より使い勝手が良くなりました。特定のカウンタのグラフを太字にして目立たせるなんてこともできます。 もう無いだろう…と思ってますか?いえいえ、もう1つご紹介したい機能があります。それは、Internet Explorer に System Monitor Control を読み込んで使用する方法です。…

0