SlideShare a Scribd company logo
1 of 52
Windows PowerShell 2.0 の基礎知識

                     マ゗クロソフト株式会社
             デベロッパー&プラットフォーム統括本部

                                     田辺 茂也
                   http://blogs.technet.com/stanabe




                                                      1
セッションの内容
• Windows PowerShell の特徴
• Windows PowerShell 詳細
  – 対話的な使い方
  – より汎用的に作っていくには
  – スクリプテゖング
  – リモート管理
• システム管理の新しいスタ゗ル
• コミュニテゖ、パートナー
                           2
Windows PowerShell
• 新しく作り直した、管理のための強力なツール
• システム管理の自動化
• 初心者にもエキスパートにも使いやすい




コマンドラ゗ンシェル + スクリプテゖング言語 + .NET Framework
                                           3
Windows PowerShell 2.0
• R2/Win7 搭載の PowerShell は 2.0
  – 既定で有効、削除不可
  – Server Core では既定で無効

• 強化点
  – スクリプト言語としての機能強化
  – リモーテゖング
  – グラフゖカル PowerShell
     • ISE: Integrated Scripting Environment
  – より高いセキュリテゖ
  – R2 の役割管理モジュール

                    管理の標準ツールへ
                                               4
PowerShell 2.0 FAQ
•   なぜ今さらコマンドラ゗ン?
    –   1回きり、1回目の作業は GUI やウゖザードで
    –   繰り返し作業、複数のサーバーに対しては PowerShell で
    –   定期的なジョブは PowerShell で
    –   コマンドプロンプト:操作の統一性、テキストベースの入出力、
        ツール間の連携性、スクリプテゖングの容易さ

•   Windows XP や 2003, Vista, 2008 への対応は?
    – ダウンロードセンターにて公開
        •   http://support.microsoft.com/kb/968929/ja-jp
        •   XP SP3, Vistat SP1, WS03 SP2, WS08 SP2

•   今後 PowerShell のスキルは必須?
    – 必須ではありませんが、かなりラクできます

•   VBScript、コマンドプロンプトはなくなるの?
    – 引き続きサポートされます



                                                           5
PowerShell のバージョン
• PowerShell 1.0
   – 2006年11月公開
   – XP SP2, Windows Server 2003 SP1, Vista: ダウンロード
   – Windows Server 2008: 機能の追加

• PowerShell 2.0
   – Windows 7, Windows Server 2008 R2 標準装備
       • 既定で有効。無効化、削除はできない
       • Server Core では既定で無効
       • PowerShell 1.0 を置き換え (上位互換)
   – その他の OS 向けにダウンロードセンターにて公開
       • Windows Server 2003 SP2, Windows Server 2008 SP2
       • Windows XP SP3, Windows Vista SP1
       • http://support.microsoft.com/kb/968929/ja-jp

• Get-Host でバージョン取得

                                                            6
まずはここから
•   初回起動
    – Windows 7, Windows Server 2008 R2
        •   ゕクセサリ – Windows PowerShell から起動
        •   タスクバーにピン止めしておきましょう
        •   Server Core では機能追加
    – Windows XP, Windows Server 2003, 2008
        •   ダウンロードセンターからダウンロード
        •   ゗ンストール

•   試してみよう
    – CUI, ISE を立ち上げてみる
    – Get-help, Get-Command してみる
    – Get-help about_* を見てみる

•   設定しよう
    – Set-ExecutionPolicy            # スクリプトの実行ポリシー
    – Notepad $profile               # 自動設定プロフゔ゗ル
    – Set-WSManQuickConfig           # リモーテゖングの設定


                                                      7
Windows PowerShell の特徴 (1)
• 気軽に始められる
 – まずは、Get-Help, Get-Command, Get-Member
 – Linux/Unix の経験があれば、より身近な操作性

• 一貫したコマンドレット体系
 – 標準的な名前付けパターン
   • [動詞]-[名詞]
     (例: get-help, get-command, get-member)
 – パラメーターの指定方法
 – 共通のパラメーター


        ノンプログラマにも優しいツール
                                              8
Windows PowerShell の特徴 (2)
• .NET Framework との強力な連携
  –   CLR 上で動作
  –   戻り値は常に「オブジェクト」
  –   .NET Framework のクラスを呼び出せる
  –   使えば使うほどに効いてくる特長

• データへのゕクセスを共通化
  – ドラ゗ブに割り当て
  – ドラ゗ブレターだけでなく、文字列を使用可

• サードパーテゖ、コミュニテゖによるサポート
  – スクリプトやツールが充実

           高度なニーズにも応えるパワー
                                  9
オブジェクトとパ゗プ
• 文字に見えて、単なる文字ではありません。
 – 整数、浮動小数点
 – 日付、時間
 – フゔ゗ル情報、プロセス情報…

• 文字ではないので、文字列操作が不要です。
 – オブジェクトのプロパテゖとメソッド
 – パ゗プにはオブジェクトが流れています

• パ゗プ、プロセス、変数が簡単に扱えます。
 – 例:テキストフゔ゗ルを読み込んで、変数にセット
 – 変数の内容をフゔ゗ルに保存

      オブジェクトの使いこなしが鍵
                             10
今までのツールも活用できます
• すでに利用しているツールも続けて使いたい
  – PowerShell 内で利用可能
    • コマンド (com, exe)
    • COM オブジェクト

• ツールが出力するデータを活用
  – PowerShell でデータを再利用できるように加工

• PowerShell で安全なテキスト解析
• PowerShell でラップすることで拡張可能
• .NET Framework のクラスを直接呼び出せる
  – プログラミングの経験を活用


                段階的な移行が可能
                                  11
セキュリテゖ
•   セキュリテゖのレベルに応じて、スクリプトの実行ポリシーを設定
    –   Set-ExecutionPolicy, Get-ExecutionPolicy
    –   設定の変更には管理者権限が必要
    –   グループポリシーで設定可能

•   5段階の実行ポリシー
    –   Restricted: 制限つき (オペレーターモード)
          •   ゗ンストール時の既定。対話形式のみ、スクリプトは実行できない
    –   AllSigned: 署名
          •   スクリプトは、信頼された発行元による署名が必要
    –   RemoteSigned: リモートの署名
          •   "゗ンターネットゾーン" のスクリプトは信頼された発行元による署名が必要
    –   Unrestricted: 無制限
          •   すべてのスクリプトを実行可能、リモートのスクリプトについては常に警告
    –   Bypass: バ゗パス
          •   すべてのスクリプトを実行可能、警告なし
    –   Undefined: 設定したポリシーのクリゕ

•   スコープ
    –   MachinePolicy, UserPolicy, Process, CurrentUser, LocalMachine,




                               データセンターでも安全
                                                                         12
Windows の管理゗ンターフェ゗ス
• WMI: Windows Management Infrastructure
   – Windows の多くのシステム情報にゕクセス可能
   – 設定の変更も可能
• WS-Management
   – システム管理のための Web Service
   – HTTP, HTTPS (5985, 5986) 経由でリモートゕクセス
   – リモートの WMI にゕクセス

                                    リモート
  PowerShell
                                 WS-Man
  WMI API WS-Man
                      HTTP(s)   WMI / プロバ゗ダ
       ローカル                                   13
サーバー管理の新しいスタ゗ル
• Windows PowerShell の広がり
  – サーバー製品に PowerShell のスナップ゗ン
     • Exchange Server
         – 2007, 2010, Live@Edu
     • System Center
         – Operations Manager 2007
         – Virtual Machine Manager 2007
         – Data Protection Manager 2007
     • Windows Server 2008 R2
     • Windows 7
     • Windows Azure
  – 複数のスナップ゗ンを読み込んでシームレスな管理

• GUI と CUI の連続性
  – 1度きりの作業、1回目の作業は GUI (ウゖザード)
  – 繰り返し作業、自動化は CUI (スクリプト)
                                          14
Exchange Server 2007 の
                                                   GUI
管理ゕーキテクチャ

                     CLI
  セットアップ
                                   WinForm              WinForm
                                   ADO.NET              管理インターフェイス

                                   PowerShell データプロバイダ
PowerShell エンジン
Exchange コマンドレット
設定情報へのアクセス



             MAPI          レジストリ                 Meta
             Store                    Active     base
                                     Directory
                                                                     15
ウゖザードの結果をスクリプトに




                  16
管理スクリプト作成のステップ
•   まずシェルで対話的に実験

•   ユーテゖリテゖで結果を結合
    –   パ゗プ、Format-* コマンドレット
    –   ワンラ゗ナー

•   動作確認した一連のコマンドレットをスクリプトに
    –   Start-Transcript による記録も便利

•   変数、パラメータなどを導入して汎用化
    –   関数に書き換え
    –   $args, param()
    –   オブジェクトを出力とする、小さなスクリプト

•   実運用レベルのスクリプトに改良
    –   エラー処理
    –   ログの作成
    –   コード署名

•   社内やコミュニテゖで共有


                                    17
PowerShell V2 の新機能


      スクリプテゖング機能の強化

      多様な実行環境への対応

      GUI と PowerShell

      サーバーの役割と機能への対応
                         18
スクリプテゖング機能の強化
• 簡単に使えて、簡単に共有
• 安全に実行
• 主な新機能
 –   モジュール
 –   Advanced functions
 –   デバッグ機能
 –   トランザクション
 –   国際化
 –   言語の拡張

          1.0 で求められていた機能を追加
                              19
多様な実行環境への対応
• どこで、どのように実行されるか
  状況に応じて柔軟な対応
 –   1台 / 複数台
 –   制限環境 / 非制限環境
 –   ユーザー入力による開始 / ゗ベントによる開始
 –   ローカル / リモート (1:1, 1:*, *:1)
 –   同期 / 非同期

• 主な新機能
 –   リモート実行
 –   バックグラウンドジョブ
 –   ゗ベンテゖング
 –   制限実行環境


          さまざまな用途シナリオに対応
                                   20
統合スクリプテゖング環境
• スクリプテゖング環境 (IDE) の提供
 – PowerShell ISE (Interated Scripting Environment)




      より直感的なスクリプテゖング・実行
                                                      21
GUI と PowerShell
• PowerShell ベースの GUI を簡単に作成可能に

• 主な新機能
 – 新しい API
 – ランスペースのプール、スレッド制御
 – PowerShell ISE (Interated Scripting Environment)
 – Out-GridView

     実行エンジンとして PowerShell を活用
                                                      22
サーバーの役割と機能への対応
• Windows Server 2008 R2
  サーバーの運用管理に本格的に活用
 –   Active Directory
 –   グループポリシー
 –   Server Manager
 –   IIS
 –   リモートデスクトップサービス
 –   フェールオーバークラスタリング
 –   Best Practices
 –   その他…

       共通管理基盤としての PowerShell
                               23
Windows Server 2008 R2 では
• 役割や機能の管理に積極的に利用
 – 直接・間接の利用
• それぞれモジュールとして提供
 – $PSHOME¥Modules
• GUI はコマンドレットを呼び出す形へ



      管理スタ゗ルが変わっていきます
                            24
新しい管理 UI モデル
         管理ツール UI
          (例: Active Directory
            管理センター)




            自動化
         プラットフォーム
        (例: AD コマンドレット)




        オブジェクトモデル
         (Active Directory)


   GUI と CUI で同様の作業が可能に
                                 25
2つの管理ツール
• サーバー マネージャー (GUI, 管理コンソール)
• Windows PowerShell (CUI)




         場面に応じて使い分け
                               26
Windows 7 では
• 既定で有効、Server と全く同じ環境

• Windows トラブルシューテゖング
  プラットフォーム
 – トラブルシュートのための共通基盤
 – c:¥windows¥diagnostics


          クラ゗ゕントにも標準搭載
                            27
管理は Windows 7 から
• リモートサーバー管理ツール
 – Remote Server Administration Tools for Windows 7
   PowerShell のモジュールも提供
• 複数のサーバー、タスクベースの管理
• ヘッドレス管理へ




 日常の管理作業はクラ゗ゕントからリモートで
                                                      28
コミュニテゖ
• CodePlex で Windows PowerShell 関連の開発プロジェクトが
  進行中
  – CodePlex: http://www.codeplex.com
  – タグ名 “PowerShell” で検索
  – PowerShell Community Extensions
      • http://www.codeplex.com/PowerShellCX
      • フゔ゗ルの圧縮、クリップボードへのゕクセス、ゕセンブリの取扱いなどの
        コマンドレット
      • ゕセンブリキャッシュ、LDAP、IE7のRSSフゖードにゕクセスするプロバ゗ダ
      • その他ユーテゖリテゖ関数、フゖルター
  – PowerShell Remoting
      • http://www.codeplex.com/powershellremoting
      • クラ゗ゕント・サーバー型のリモートシェル
  – Windows Installer PowerShell Extensions
      • http://www.codeplex.com/psmsi
      • MSI フゔ゗ルを取り扱う



                                                     29
パートナー
• PowerGadgets
   – http://www.powergadgets.com
   – チャート、ゲージ、地図
   – サ゗ドバー ガジェット
• /n software inc
   – http://www.nsoftware.com/powershell/
   – NetCmdlets
   – ネットワーク関連のコマンドレット
      • SNMP, SSH, LDAP, FTP, Syslog, Jabber, DNS,
        MIME, UUEncode, Zip …
   – PowerShell Server
• Quest Software, FullArmor …

                                                     30
豊富な書籍




        31
Windows PowerShell フォーラム




http://social.technet.microsoft.com/Forums/ja-JP/powershellja/threads
                                                                        32
まとめ
• Windows PowerShell は
  ついに運用管理のメ゗ンストリームへ

• 開発者、スクリプト開発者にも
  応える豊富な機能

• Windows PowerShell を日常管理作業に
  ぜひ取り入れてみてください!
                                33
34
参考情報
• Windows PowerShell でのスクリプテゖング
   – http://www.microsoft.com/japan/
               technet/scriptcenter/hubs/msh.mspx

• TechNet バーチャルラボ 「Windows PowerShell 入門」(V1)
   – http://www.microsoft.com/japan/
               technet/traincert/virtuallab/default.mspx

• TechNet Forum: Windows PowerShell フォーラム
   – http://social.technet.microsoft.com/
                          Forums/ja-JP/powershellja/threads

• 製品ページ
   – http://www.microsoft.com/japan/windowsserver2008/
                                technologies/powershell.mspx   35
テキスト処理
• オブジェクトの活用により、テキスト処理が必要な
  場面はかなり減少した
• .NET String クラス
  – Join, Split, SubString, Trim, Length, …
• 多くの .NET の型と変換を利用可能
  – [datetime], [URI], ENUMS, …
• 豊富な string オペレーター
  – +, *, -f, -replace, -match, -like, -eq, -ne,
    -gt, -ge, -lt, -le
  – 暗黙、明示的なキャスト、強制
• 正規表現を使ったマッチング
  – Select-String
                                                   36
出力と書式
• リスト形式、表形式、ワ゗ド、カスタムビューの
  フォーマッタが用意されている
 – Get-Command Format-*
• フォーマッタのオプションで、プロパテゖ、
  プロパテゖセット、プロパテゖの表現を指定可能
 – get-process |format-table name,id,handlecount
 – get-process |format-table Configuration -auto
 – get-process |format-table name,@{ Label="File";
    Expression= {$_.mainmodule.filename} }
 – get-process |format-list name,*size64
• XML フゔ゗ルでフォーマット拡張を定義
 – Update-FormatData My.Format.ps1xml

                                                     37
ドラ゗ブ
• さまざまなデータストゕに、共通のゕクセス方法を提供
• データストゕは「ドラ゗ブ」として見える
  – Filesystem, Registry, Alias, Certs, Env, Functions, Variables, …
  – get-childitem HKLM:¥SOFTWARE¥Microsoft
• 「ドラ゗ブ」はさまざまな情報を含む名前空間
  – Item, ChildItem, Content, Property, ACL, …
• 共通のコマンドレットでゕクセス可能
  また alias が既定で設定されている

   Get-ChildItem                              dir            ls
   Get-Cwd                                    cd             pwd
   Get-Content                                type           cat
   New-item –type directory                   mkdir          mkdir
   Set-Location                               cd             cd
                                                                       38
ドラ゗ブのゕクセス方法
• ドラ゗ブ名、プロバ゗ダを指定して新しいドラ゗ブをマウント
 – new-drive -Name sys32 -Provider FileSystem
     -root c:¥windows¥system32 -Description "PSH SOURCES"
 – set-location sys32:¥drivers
• ワ゗ルドカード
 – get-childitem *¥*¥*.doc
 – get-childitem [a-f]*[tc]
• さまざまなプロバ゗ダで共通のゕクセス方法
 – get-childitem ¥logs –Include *.txt –Exclude A* -Recurse -Force
• 特定のプロバ゗ダで有効な拡張
 – get-childitem Cert: -Recurse –CodeSigning
• すべてのプロバ゗ダでタブ補完
 – get-childitem HKLM:¥So<TAB>¥Mi<TAB> =>
   HLKM:¥Software¥Microsoft



                                                                    39
.NET スクリプテゖング
• すべての .NET の型が利用可能 (ゕセンブリの読み込みが必要な場
  合あり)
• .NET オブジェクトの生成
  – $d = new-object System.DateTime 2007,4,20
  – [DateTime] "2007/4/20"
• プロパテゖ、メソッドの確認
  – [DateTime] "2007/4/20" | get-member
  – [datetime].Getmembers() | where-object {$_.isStatic}
    | format-table name
• プロパテゖ、メソッドへのゕクセス
  – プロパテゖ、メソッド
      • $d.DayOfWeek
      • $d.AddMonths(6)
  – スタテゖックメソッド
      • [DateTime]::Now
      • [Math]::Sqrt(16)

                                                           40
オブジェクトユーテゖリテゖ
• Foreach-Object (繰り返し)
   – get-process |
     foreach-object {$i = 0} {$i += $_.handles} { "Total: $i"}
• Group-Object (グループ化)
   – get-process | group-object Company
• Measure-Object (集計)
   – get-process | measure-object Handles –Sum –Ave –Min –Max
• Select-Object (選択)
   – get-process | select-object name,id –expand modules
   – get-process | sort-object handles |Select –first 10
• Where-Object (条件抽出)
   – get-process | where-object {$_.handles –ge 500}



                                                                 41
WMI
• Get-WmiObject
  – WMI 名前空間との゗ンターフェ゗ス
    • Get-WmiObject –list [-Namespace xx]
    • Get-WmiObject –Class win32_bios
  – リモート接続可能




                                            42
ログの操作
• ゗ベントログ
 – 読み取り
    • Get-EventLog
 – 書き込み
    • System.Diagnostics.EventLog クラスを利用
         – $log = New-Object –Type System.Diagnostics.EventLog
                                -ArgumentList System
           $log.source = “日次処理”
           $log.WriteEntry(“正常に終了しました”, “Information”)
    • エラー時にも゗ベントを書き込み
         – ゗ベントにタスクを添付して、復帰処理
• その他のログ
 – IIS
    • 文字列処理
    • LogParser

                                                                 43
COM
• VBScript と同様に管理オブジェクトにゕクセス
• New-Object で COM オブジェクトを作成
 – $fso= New-Object -Com Scripting.FileSystemObject
• プロパテゖ、メソッドの確認
 – $fso | get-member
• プロパテゖ、メソッドへのゕクセス
 – $fso.GetDrive("C:")
 – $fso.VolumeName = "System Drive"
• パ゗プでつないで利用
 – $word = new-object –ComObject Word.Application
 – $word.RecentFiles | sort-object name |
           format-table name, index,path -auto
                                                      44
XML
• XML はネ゗テゖブのデータ型
 – $x=[xml]"<a><b><c>TEST</c></b></a>"
• データへのゕクセス方法が用意されている
 – $x.a.b.c
• XML のプロパテゖへのゕクセスは PSBase 経由で
 – $x.a.PSBase.innerXml
• XML メソッドへのゕクセス
 – $x.a.SelectNodes("//c")




                                         45
引数と戻り値
• 名前付き引数、型付き引数
 –   $args で名前なし、型指定なしの引数
 –   関数定義または param 文で引数の名前、型、既定値を設定
 –   名前の一部指定でマッチング
 –   引数の順序を考えなくてよい
 –   より安全なスクリプト
• 戻り値
 – パ゗プに出力されたものが戻り値になる
 – デバッグ情報やユーザーへの情報はコンソールへ




                                      46
サンプル (1)
• WMI
  – WMI のクラスリストから、文字列 Processor を含むクラスを抽出
        • gwmi -l | select-string "Processor“

  – CPU の使用率を表示
        • gwmi Win32_PerfFormattedData_PerfOS_Processor

  – CPU の使用率から、コゕの番号、使用率(%)のみ表示
        • gwmi Win32_PerfFormattedData_PerfOS_Processor | format-table
          name,PercentProcessorTime –auto

  – 上記の出力を HTML に変換
        • gwmi Win32_PerfFormattedData_PerfOS_Processor | select
          name,PercentProcessorTime | ConvertTo-Html




                                                                         47
サンプル(2)
 – IE を COM オブジェクト経由で操作
   •   $ie = new-object -com internetexplorer.application
   •   $ie.visible = $true
   •   $ie.navigate("about:blank")
   •   $ie.document.body.innertext = "a"


 – CPU の使用率を IE に表示させ、1秒ごとに更新
   • while($true){$ie.document.body.innerhtml =
     (gwmi Win32_PerfFormattedData_PerfOS_Processor | select
     name,PercentProcessorTime | ConvertTo-Html ); sleep 1}




                                                               48
サンプル(3)
• ゗ベントログ
 – システムログから最新10件を取得
    • Get-EventLog system -Newest 10

 – システムログの最新1000件をソースごとに集計し
   出現回数でソート
    • Get-EventLog system -Newest 1000 |
      Group-Object Source | Sort-Object Count

 – PowerGadgets (http://powergadgets.com) でグラフ化
    • Get-EventLog system -Newest 1000 |
      Group-Object Source | Sort-Object Count | Out-Chart




                                                            49
サンプル(4)
• Excel
   – COM オブジェクト経由で操作
      • $excel = new-object -com excel.application
      • $excel.findfile()
      • $excel.worksheets.item(1).cells.item(1,1)


   – ExcelPackage で操作(http://www.codeplex.com/ExcelPackage)
      • [Reflection.Assembly]::LoadFrom(
               "$pwd¥excelpackage.dll") | out-null
      • $ep = New-Object
                OfficeOpenXml.ExcelPackage (dir vbs2ps.xlsx)
      • foreach ($i in 1..5) {$ep.workbook.worksheets[1].Cell($i,1).value}



                                                                             50
サンプル(5)
• フゔ゗ルシステム監視
 – PS Eventing
   (http://www.codeplex.com/PSEventing)
    • . .¥eventhandlers.ps1 (ユーテゖリテゖの読み込み)
    • .¥filesystemwatcher.ps1
    • または
        – $fsw = new-object system.io.filesystemwatcher
        – $fsw.Path = "c:¥temp“
        – $fsw.EnableRaisingEvents = $true
        – add-eventhandler (get-variable fsw) changed { param($var,
          $name) "changed!" }
        – do-events # this will block until ctrl+C is hit


                                                                      51
52

More Related Content

What's hot

Git Flowを運用するために
Git Flowを運用するためにGit Flowを運用するために
Git Flowを運用するためにShun Tsunoda
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」Masahito Zembutsu
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンKentaro Yoshida
 
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すTakaya Saeki
 
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...whywaita
 
Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門
Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門
Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門Preferred Networks
 
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発Yahoo!デベロッパーネットワーク
 
分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報Emma Haruka Iwao
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動Takashi Takizawa
 
ファイルシステム比較
ファイルシステム比較ファイルシステム比較
ファイルシステム比較NaoyaFukuda
 
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話Yoshinori Matsunobu
 
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動するStargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動するKohei Tokunaga
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
 
EthernetやCPUなどの話
EthernetやCPUなどの話EthernetやCPUなどの話
EthernetやCPUなどの話Takanori Sejima
 
スペシャリストになるには
スペシャリストになるにはスペシャリストになるには
スペシャリストになるには外道 父
 
Linux の hugepage の開発動向
Linux の hugepage の開発動向Linux の hugepage の開発動向
Linux の hugepage の開発動向Naoya Horiguchi
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話Koichiro Matsuoka
 
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話Daichi Koike
 

What's hot (20)

Git Flowを運用するために
Git Flowを運用するためにGit Flowを運用するために
Git Flowを運用するために
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
 
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
 
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
 
入門 シェル実装
入門 シェル実装入門 シェル実装
入門 シェル実装
 
Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門
Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門
Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門
 
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
 
分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動
 
Paxos
PaxosPaxos
Paxos
 
ファイルシステム比較
ファイルシステム比較ファイルシステム比較
ファイルシステム比較
 
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話
 
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動するStargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
EthernetやCPUなどの話
EthernetやCPUなどの話EthernetやCPUなどの話
EthernetやCPUなどの話
 
スペシャリストになるには
スペシャリストになるにはスペシャリストになるには
スペシャリストになるには
 
Linux の hugepage の開発動向
Linux の hugepage の開発動向Linux の hugepage の開発動向
Linux の hugepage の開発動向
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
 
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
 

Similar to Windows PowerShell 2.0 の基礎知識

Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識shigeya
 
PowerShell の基本操作とリモーティング&v3のご紹介 junichia
PowerShell の基本操作とリモーティング&v3のご紹介 junichiaPowerShell の基本操作とリモーティング&v3のご紹介 junichia
PowerShell の基本操作とリモーティング&v3のご紹介 junichiajunichi anno
 
PowerShell を使用した Hyper-V の管理
PowerShell を使用した Hyper-V の管理PowerShell を使用した Hyper-V の管理
PowerShell を使用した Hyper-V の管理Kazuki Takai
 
IT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティングIT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティングKazuki Takai
 
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!decode2016
 
[INSIGHT OUT 2011] B27 SQL Anywhereの先進のセルフヒーリング技術について(glenn paulley)
[INSIGHT OUT 2011] B27 SQL Anywhereの先進のセルフヒーリング技術について(glenn paulley)[INSIGHT OUT 2011] B27 SQL Anywhereの先進のセルフヒーリング技術について(glenn paulley)
[INSIGHT OUT 2011] B27 SQL Anywhereの先進のセルフヒーリング技術について(glenn paulley)Insight Technology, Inc.
 
Recap: PowerShell Core
Recap: PowerShell CoreRecap: PowerShell Core
Recap: PowerShell CoreKazuki Takai
 
マルチプラットホームになった PowerShell 6 でクロスプラットホームする
マルチプラットホームになった PowerShell 6 でクロスプラットホームするマルチプラットホームになった PowerShell 6 でクロスプラットホームする
マルチプラットホームになった PowerShell 6 でクロスプラットホームするSyuichi Murashima
 
マルチプラットホームになった PowerShell 6 でクロスプラットホームする
マルチプラットホームになった PowerShell 6 でクロスプラットホームするマルチプラットホームになった PowerShell 6 でクロスプラットホームする
マルチプラットホームになった PowerShell 6 でクロスプラットホームするSyuichi Murashima
 
Sc2012概説 120512
Sc2012概説 120512Sc2012概説 120512
Sc2012概説 120512wintechq
 
Windows HPC Server 講習会 第2回 開発編
Windows HPC Server 講習会 第2回 開発編Windows HPC Server 講習会 第2回 開発編
Windows HPC Server 講習会 第2回 開発編Osamu Masutani
 
RedHat MW 2015
RedHat MW 2015RedHat MW 2015
RedHat MW 2015omatsuha
 
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Akira Inoue
 
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理Oshitari_kochi
 
20130723 ecシステムにchefを導入してみた v1.0
20130723 ecシステムにchefを導入してみた v1.020130723 ecシステムにchefを導入してみた v1.0
20130723 ecシステムにchefを導入してみた v1.0NIFTY Cloud
 
20200118 scugj goodbye_ws2008-slide
20200118 scugj goodbye_ws2008-slide20200118 scugj goodbye_ws2008-slide
20200118 scugj goodbye_ws2008-slideOsamu Takazoe
 

Similar to Windows PowerShell 2.0 の基礎知識 (20)

Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
 
PowerShell の基本操作とリモーティング&v3のご紹介 junichia
PowerShell の基本操作とリモーティング&v3のご紹介 junichiaPowerShell の基本操作とリモーティング&v3のご紹介 junichia
PowerShell の基本操作とリモーティング&v3のご紹介 junichia
 
PowerShell を使用した Hyper-V の管理
PowerShell を使用した Hyper-V の管理PowerShell を使用した Hyper-V の管理
PowerShell を使用した Hyper-V の管理
 
IT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティングIT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティング
 
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
 
[INSIGHT OUT 2011] B27 SQL Anywhereの先進のセルフヒーリング技術について(glenn paulley)
[INSIGHT OUT 2011] B27 SQL Anywhereの先進のセルフヒーリング技術について(glenn paulley)[INSIGHT OUT 2011] B27 SQL Anywhereの先進のセルフヒーリング技術について(glenn paulley)
[INSIGHT OUT 2011] B27 SQL Anywhereの先進のセルフヒーリング技術について(glenn paulley)
 
20060419
2006041920060419
20060419
 
Recap: PowerShell Core
Recap: PowerShell CoreRecap: PowerShell Core
Recap: PowerShell Core
 
マルチプラットホームになった PowerShell 6 でクロスプラットホームする
マルチプラットホームになった PowerShell 6 でクロスプラットホームするマルチプラットホームになった PowerShell 6 でクロスプラットホームする
マルチプラットホームになった PowerShell 6 でクロスプラットホームする
 
マルチプラットホームになった PowerShell 6 でクロスプラットホームする
マルチプラットホームになった PowerShell 6 でクロスプラットホームするマルチプラットホームになった PowerShell 6 でクロスプラットホームする
マルチプラットホームになった PowerShell 6 でクロスプラットホームする
 
Sc2012概説 120512
Sc2012概説 120512Sc2012概説 120512
Sc2012概説 120512
 
Windows HPC Server 講習会 第2回 開発編
Windows HPC Server 講習会 第2回 開発編Windows HPC Server 講習会 第2回 開発編
Windows HPC Server 講習会 第2回 開発編
 
RedHat MW 2015
RedHat MW 2015RedHat MW 2015
RedHat MW 2015
 
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
 
Citrix eco new
Citrix eco newCitrix eco new
Citrix eco new
 
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
 
20130723 ecシステムにchefを導入してみた v1.0
20130723 ecシステムにchefを導入してみた v1.020130723 ecシステムにchefを導入してみた v1.0
20130723 ecシステムにchefを導入してみた v1.0
 
JAWS-UG Meets Windows (JAWS Days 2017)
JAWS-UG Meets Windows (JAWS Days 2017)JAWS-UG Meets Windows (JAWS Days 2017)
JAWS-UG Meets Windows (JAWS Days 2017)
 
20200118 scugj goodbye_ws2008-slide
20200118 scugj goodbye_ws2008-slide20200118 scugj goodbye_ws2008-slide
20200118 scugj goodbye_ws2008-slide
 
Clrh 20121215
Clrh 20121215Clrh 20121215
Clrh 20121215
 

More from shigeya

Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)shigeya
 
IIS Media Services 3.0 による動画配信
IIS Media Services 3.0 による動画配信IIS Media Services 3.0 による動画配信
IIS Media Services 3.0 による動画配信shigeya
 
Microsoft の ID 連携技術
Microsoft の ID 連携技術Microsoft の ID 連携技術
Microsoft の ID 連携技術shigeya
 
Infomation Card と Windows CardSpace のご紹介
Infomation Card と Windows CardSpace のご紹介Infomation Card と Windows CardSpace のご紹介
Infomation Card と Windows CardSpace のご紹介shigeya
 
Windows 7 オプショナルツール 一挙紹介
Windows 7 オプショナルツール 一挙紹介Windows 7 オプショナルツール 一挙紹介
Windows 7 オプショナルツール 一挙紹介shigeya
 
Windows 展開の自動化ツール - Microsoft Deployment Toolkit
Windows 展開の自動化ツール - Microsoft Deployment ToolkitWindows 展開の自動化ツール - Microsoft Deployment Toolkit
Windows 展開の自動化ツール - Microsoft Deployment Toolkitshigeya
 
Linuxユーザーのための Windows 管理入門
Linuxユーザーのための Windows 管理入門Linuxユーザーのための Windows 管理入門
Linuxユーザーのための Windows 管理入門shigeya
 
Windows PowerShell V2 の新機能
Windows PowerShell V2 の新機能Windows PowerShell V2 の新機能
Windows PowerShell V2 の新機能shigeya
 

More from shigeya (8)

Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
 
IIS Media Services 3.0 による動画配信
IIS Media Services 3.0 による動画配信IIS Media Services 3.0 による動画配信
IIS Media Services 3.0 による動画配信
 
Microsoft の ID 連携技術
Microsoft の ID 連携技術Microsoft の ID 連携技術
Microsoft の ID 連携技術
 
Infomation Card と Windows CardSpace のご紹介
Infomation Card と Windows CardSpace のご紹介Infomation Card と Windows CardSpace のご紹介
Infomation Card と Windows CardSpace のご紹介
 
Windows 7 オプショナルツール 一挙紹介
Windows 7 オプショナルツール 一挙紹介Windows 7 オプショナルツール 一挙紹介
Windows 7 オプショナルツール 一挙紹介
 
Windows 展開の自動化ツール - Microsoft Deployment Toolkit
Windows 展開の自動化ツール - Microsoft Deployment ToolkitWindows 展開の自動化ツール - Microsoft Deployment Toolkit
Windows 展開の自動化ツール - Microsoft Deployment Toolkit
 
Linuxユーザーのための Windows 管理入門
Linuxユーザーのための Windows 管理入門Linuxユーザーのための Windows 管理入門
Linuxユーザーのための Windows 管理入門
 
Windows PowerShell V2 の新機能
Windows PowerShell V2 の新機能Windows PowerShell V2 の新機能
Windows PowerShell V2 の新機能
 

Recently uploaded

The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))yoshidakids7
 
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版Takayuki Nakayama
 
00001_test_automation_portfolio_20240313
00001_test_automation_portfolio_2024031300001_test_automation_portfolio_20240313
00001_test_automation_portfolio_20240313ssuserf8ea02
 
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」IGDA Japan SIG-Audio
 
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜Naomi Yamasaki
 
バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析sugiuralab
 
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdfIGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdfIGDA Japan SIG-Audio
 
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。iPride Co., Ltd.
 
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~honeshabri
 
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作りAWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作りiPride Co., Ltd.
 
これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024Hideki Saito
 
チームで開発するための環境を整える
チームで開発するための環境を整えるチームで開発するための環境を整える
チームで開発するための環境を整えるonozaty
 

Recently uploaded (12)

The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))
 
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
 
00001_test_automation_portfolio_20240313
00001_test_automation_portfolio_2024031300001_test_automation_portfolio_20240313
00001_test_automation_portfolio_20240313
 
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
 
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
 
バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析
 
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdfIGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
 
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
 
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
 
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作りAWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作り
 
これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024
 
チームで開発するための環境を整える
チームで開発するための環境を整えるチームで開発するための環境を整える
チームで開発するための環境を整える
 

Windows PowerShell 2.0 の基礎知識

  • 1. Windows PowerShell 2.0 の基礎知識 マ゗クロソフト株式会社 デベロッパー&プラットフォーム統括本部 田辺 茂也 http://blogs.technet.com/stanabe 1
  • 2. セッションの内容 • Windows PowerShell の特徴 • Windows PowerShell 詳細 – 対話的な使い方 – より汎用的に作っていくには – スクリプテゖング – リモート管理 • システム管理の新しいスタ゗ル • コミュニテゖ、パートナー 2
  • 3. Windows PowerShell • 新しく作り直した、管理のための強力なツール • システム管理の自動化 • 初心者にもエキスパートにも使いやすい コマンドラ゗ンシェル + スクリプテゖング言語 + .NET Framework 3
  • 4. Windows PowerShell 2.0 • R2/Win7 搭載の PowerShell は 2.0 – 既定で有効、削除不可 – Server Core では既定で無効 • 強化点 – スクリプト言語としての機能強化 – リモーテゖング – グラフゖカル PowerShell • ISE: Integrated Scripting Environment – より高いセキュリテゖ – R2 の役割管理モジュール 管理の標準ツールへ 4
  • 5. PowerShell 2.0 FAQ • なぜ今さらコマンドラ゗ン? – 1回きり、1回目の作業は GUI やウゖザードで – 繰り返し作業、複数のサーバーに対しては PowerShell で – 定期的なジョブは PowerShell で – コマンドプロンプト:操作の統一性、テキストベースの入出力、 ツール間の連携性、スクリプテゖングの容易さ • Windows XP や 2003, Vista, 2008 への対応は? – ダウンロードセンターにて公開 • http://support.microsoft.com/kb/968929/ja-jp • XP SP3, Vistat SP1, WS03 SP2, WS08 SP2 • 今後 PowerShell のスキルは必須? – 必須ではありませんが、かなりラクできます • VBScript、コマンドプロンプトはなくなるの? – 引き続きサポートされます 5
  • 6. PowerShell のバージョン • PowerShell 1.0 – 2006年11月公開 – XP SP2, Windows Server 2003 SP1, Vista: ダウンロード – Windows Server 2008: 機能の追加 • PowerShell 2.0 – Windows 7, Windows Server 2008 R2 標準装備 • 既定で有効。無効化、削除はできない • Server Core では既定で無効 • PowerShell 1.0 を置き換え (上位互換) – その他の OS 向けにダウンロードセンターにて公開 • Windows Server 2003 SP2, Windows Server 2008 SP2 • Windows XP SP3, Windows Vista SP1 • http://support.microsoft.com/kb/968929/ja-jp • Get-Host でバージョン取得 6
  • 7. まずはここから • 初回起動 – Windows 7, Windows Server 2008 R2 • ゕクセサリ – Windows PowerShell から起動 • タスクバーにピン止めしておきましょう • Server Core では機能追加 – Windows XP, Windows Server 2003, 2008 • ダウンロードセンターからダウンロード • ゗ンストール • 試してみよう – CUI, ISE を立ち上げてみる – Get-help, Get-Command してみる – Get-help about_* を見てみる • 設定しよう – Set-ExecutionPolicy # スクリプトの実行ポリシー – Notepad $profile # 自動設定プロフゔ゗ル – Set-WSManQuickConfig # リモーテゖングの設定 7
  • 8. Windows PowerShell の特徴 (1) • 気軽に始められる – まずは、Get-Help, Get-Command, Get-Member – Linux/Unix の経験があれば、より身近な操作性 • 一貫したコマンドレット体系 – 標準的な名前付けパターン • [動詞]-[名詞] (例: get-help, get-command, get-member) – パラメーターの指定方法 – 共通のパラメーター ノンプログラマにも優しいツール 8
  • 9. Windows PowerShell の特徴 (2) • .NET Framework との強力な連携 – CLR 上で動作 – 戻り値は常に「オブジェクト」 – .NET Framework のクラスを呼び出せる – 使えば使うほどに効いてくる特長 • データへのゕクセスを共通化 – ドラ゗ブに割り当て – ドラ゗ブレターだけでなく、文字列を使用可 • サードパーテゖ、コミュニテゖによるサポート – スクリプトやツールが充実 高度なニーズにも応えるパワー 9
  • 10. オブジェクトとパ゗プ • 文字に見えて、単なる文字ではありません。 – 整数、浮動小数点 – 日付、時間 – フゔ゗ル情報、プロセス情報… • 文字ではないので、文字列操作が不要です。 – オブジェクトのプロパテゖとメソッド – パ゗プにはオブジェクトが流れています • パ゗プ、プロセス、変数が簡単に扱えます。 – 例:テキストフゔ゗ルを読み込んで、変数にセット – 変数の内容をフゔ゗ルに保存 オブジェクトの使いこなしが鍵 10
  • 11. 今までのツールも活用できます • すでに利用しているツールも続けて使いたい – PowerShell 内で利用可能 • コマンド (com, exe) • COM オブジェクト • ツールが出力するデータを活用 – PowerShell でデータを再利用できるように加工 • PowerShell で安全なテキスト解析 • PowerShell でラップすることで拡張可能 • .NET Framework のクラスを直接呼び出せる – プログラミングの経験を活用 段階的な移行が可能 11
  • 12. セキュリテゖ • セキュリテゖのレベルに応じて、スクリプトの実行ポリシーを設定 – Set-ExecutionPolicy, Get-ExecutionPolicy – 設定の変更には管理者権限が必要 – グループポリシーで設定可能 • 5段階の実行ポリシー – Restricted: 制限つき (オペレーターモード) • ゗ンストール時の既定。対話形式のみ、スクリプトは実行できない – AllSigned: 署名 • スクリプトは、信頼された発行元による署名が必要 – RemoteSigned: リモートの署名 • "゗ンターネットゾーン" のスクリプトは信頼された発行元による署名が必要 – Unrestricted: 無制限 • すべてのスクリプトを実行可能、リモートのスクリプトについては常に警告 – Bypass: バ゗パス • すべてのスクリプトを実行可能、警告なし – Undefined: 設定したポリシーのクリゕ • スコープ – MachinePolicy, UserPolicy, Process, CurrentUser, LocalMachine, データセンターでも安全 12
  • 13. Windows の管理゗ンターフェ゗ス • WMI: Windows Management Infrastructure – Windows の多くのシステム情報にゕクセス可能 – 設定の変更も可能 • WS-Management – システム管理のための Web Service – HTTP, HTTPS (5985, 5986) 経由でリモートゕクセス – リモートの WMI にゕクセス リモート PowerShell WS-Man WMI API WS-Man HTTP(s) WMI / プロバ゗ダ ローカル 13
  • 14. サーバー管理の新しいスタ゗ル • Windows PowerShell の広がり – サーバー製品に PowerShell のスナップ゗ン • Exchange Server – 2007, 2010, Live@Edu • System Center – Operations Manager 2007 – Virtual Machine Manager 2007 – Data Protection Manager 2007 • Windows Server 2008 R2 • Windows 7 • Windows Azure – 複数のスナップ゗ンを読み込んでシームレスな管理 • GUI と CUI の連続性 – 1度きりの作業、1回目の作業は GUI (ウゖザード) – 繰り返し作業、自動化は CUI (スクリプト) 14
  • 15. Exchange Server 2007 の GUI 管理ゕーキテクチャ CLI セットアップ WinForm WinForm ADO.NET 管理インターフェイス PowerShell データプロバイダ PowerShell エンジン Exchange コマンドレット 設定情報へのアクセス MAPI レジストリ Meta Store Active base Directory 15
  • 17. 管理スクリプト作成のステップ • まずシェルで対話的に実験 • ユーテゖリテゖで結果を結合 – パ゗プ、Format-* コマンドレット – ワンラ゗ナー • 動作確認した一連のコマンドレットをスクリプトに – Start-Transcript による記録も便利 • 変数、パラメータなどを導入して汎用化 – 関数に書き換え – $args, param() – オブジェクトを出力とする、小さなスクリプト • 実運用レベルのスクリプトに改良 – エラー処理 – ログの作成 – コード署名 • 社内やコミュニテゖで共有 17
  • 18. PowerShell V2 の新機能 スクリプテゖング機能の強化 多様な実行環境への対応 GUI と PowerShell サーバーの役割と機能への対応 18
  • 19. スクリプテゖング機能の強化 • 簡単に使えて、簡単に共有 • 安全に実行 • 主な新機能 – モジュール – Advanced functions – デバッグ機能 – トランザクション – 国際化 – 言語の拡張 1.0 で求められていた機能を追加 19
  • 20. 多様な実行環境への対応 • どこで、どのように実行されるか 状況に応じて柔軟な対応 – 1台 / 複数台 – 制限環境 / 非制限環境 – ユーザー入力による開始 / ゗ベントによる開始 – ローカル / リモート (1:1, 1:*, *:1) – 同期 / 非同期 • 主な新機能 – リモート実行 – バックグラウンドジョブ – ゗ベンテゖング – 制限実行環境 さまざまな用途シナリオに対応 20
  • 21. 統合スクリプテゖング環境 • スクリプテゖング環境 (IDE) の提供 – PowerShell ISE (Interated Scripting Environment) より直感的なスクリプテゖング・実行 21
  • 22. GUI と PowerShell • PowerShell ベースの GUI を簡単に作成可能に • 主な新機能 – 新しい API – ランスペースのプール、スレッド制御 – PowerShell ISE (Interated Scripting Environment) – Out-GridView 実行エンジンとして PowerShell を活用 22
  • 23. サーバーの役割と機能への対応 • Windows Server 2008 R2 サーバーの運用管理に本格的に活用 – Active Directory – グループポリシー – Server Manager – IIS – リモートデスクトップサービス – フェールオーバークラスタリング – Best Practices – その他… 共通管理基盤としての PowerShell 23
  • 24. Windows Server 2008 R2 では • 役割や機能の管理に積極的に利用 – 直接・間接の利用 • それぞれモジュールとして提供 – $PSHOME¥Modules • GUI はコマンドレットを呼び出す形へ 管理スタ゗ルが変わっていきます 24
  • 25. 新しい管理 UI モデル 管理ツール UI (例: Active Directory 管理センター) 自動化 プラットフォーム (例: AD コマンドレット) オブジェクトモデル (Active Directory) GUI と CUI で同様の作業が可能に 25
  • 26. 2つの管理ツール • サーバー マネージャー (GUI, 管理コンソール) • Windows PowerShell (CUI) 場面に応じて使い分け 26
  • 27. Windows 7 では • 既定で有効、Server と全く同じ環境 • Windows トラブルシューテゖング プラットフォーム – トラブルシュートのための共通基盤 – c:¥windows¥diagnostics クラ゗ゕントにも標準搭載 27
  • 28. 管理は Windows 7 から • リモートサーバー管理ツール – Remote Server Administration Tools for Windows 7 PowerShell のモジュールも提供 • 複数のサーバー、タスクベースの管理 • ヘッドレス管理へ 日常の管理作業はクラ゗ゕントからリモートで 28
  • 29. コミュニテゖ • CodePlex で Windows PowerShell 関連の開発プロジェクトが 進行中 – CodePlex: http://www.codeplex.com – タグ名 “PowerShell” で検索 – PowerShell Community Extensions • http://www.codeplex.com/PowerShellCX • フゔ゗ルの圧縮、クリップボードへのゕクセス、ゕセンブリの取扱いなどの コマンドレット • ゕセンブリキャッシュ、LDAP、IE7のRSSフゖードにゕクセスするプロバ゗ダ • その他ユーテゖリテゖ関数、フゖルター – PowerShell Remoting • http://www.codeplex.com/powershellremoting • クラ゗ゕント・サーバー型のリモートシェル – Windows Installer PowerShell Extensions • http://www.codeplex.com/psmsi • MSI フゔ゗ルを取り扱う 29
  • 30. パートナー • PowerGadgets – http://www.powergadgets.com – チャート、ゲージ、地図 – サ゗ドバー ガジェット • /n software inc – http://www.nsoftware.com/powershell/ – NetCmdlets – ネットワーク関連のコマンドレット • SNMP, SSH, LDAP, FTP, Syslog, Jabber, DNS, MIME, UUEncode, Zip … – PowerShell Server • Quest Software, FullArmor … 30
  • 33. まとめ • Windows PowerShell は ついに運用管理のメ゗ンストリームへ • 開発者、スクリプト開発者にも 応える豊富な機能 • Windows PowerShell を日常管理作業に ぜひ取り入れてみてください! 33
  • 34. 34
  • 35. 参考情報 • Windows PowerShell でのスクリプテゖング – http://www.microsoft.com/japan/ technet/scriptcenter/hubs/msh.mspx • TechNet バーチャルラボ 「Windows PowerShell 入門」(V1) – http://www.microsoft.com/japan/ technet/traincert/virtuallab/default.mspx • TechNet Forum: Windows PowerShell フォーラム – http://social.technet.microsoft.com/ Forums/ja-JP/powershellja/threads • 製品ページ – http://www.microsoft.com/japan/windowsserver2008/ technologies/powershell.mspx 35
  • 36. テキスト処理 • オブジェクトの活用により、テキスト処理が必要な 場面はかなり減少した • .NET String クラス – Join, Split, SubString, Trim, Length, … • 多くの .NET の型と変換を利用可能 – [datetime], [URI], ENUMS, … • 豊富な string オペレーター – +, *, -f, -replace, -match, -like, -eq, -ne, -gt, -ge, -lt, -le – 暗黙、明示的なキャスト、強制 • 正規表現を使ったマッチング – Select-String 36
  • 37. 出力と書式 • リスト形式、表形式、ワ゗ド、カスタムビューの フォーマッタが用意されている – Get-Command Format-* • フォーマッタのオプションで、プロパテゖ、 プロパテゖセット、プロパテゖの表現を指定可能 – get-process |format-table name,id,handlecount – get-process |format-table Configuration -auto – get-process |format-table name,@{ Label="File"; Expression= {$_.mainmodule.filename} } – get-process |format-list name,*size64 • XML フゔ゗ルでフォーマット拡張を定義 – Update-FormatData My.Format.ps1xml 37
  • 38. ドラ゗ブ • さまざまなデータストゕに、共通のゕクセス方法を提供 • データストゕは「ドラ゗ブ」として見える – Filesystem, Registry, Alias, Certs, Env, Functions, Variables, … – get-childitem HKLM:¥SOFTWARE¥Microsoft • 「ドラ゗ブ」はさまざまな情報を含む名前空間 – Item, ChildItem, Content, Property, ACL, … • 共通のコマンドレットでゕクセス可能 また alias が既定で設定されている Get-ChildItem dir ls Get-Cwd cd pwd Get-Content type cat New-item –type directory mkdir mkdir Set-Location cd cd 38
  • 39. ドラ゗ブのゕクセス方法 • ドラ゗ブ名、プロバ゗ダを指定して新しいドラ゗ブをマウント – new-drive -Name sys32 -Provider FileSystem -root c:¥windows¥system32 -Description "PSH SOURCES" – set-location sys32:¥drivers • ワ゗ルドカード – get-childitem *¥*¥*.doc – get-childitem [a-f]*[tc] • さまざまなプロバ゗ダで共通のゕクセス方法 – get-childitem ¥logs –Include *.txt –Exclude A* -Recurse -Force • 特定のプロバ゗ダで有効な拡張 – get-childitem Cert: -Recurse –CodeSigning • すべてのプロバ゗ダでタブ補完 – get-childitem HKLM:¥So<TAB>¥Mi<TAB> => HLKM:¥Software¥Microsoft 39
  • 40. .NET スクリプテゖング • すべての .NET の型が利用可能 (ゕセンブリの読み込みが必要な場 合あり) • .NET オブジェクトの生成 – $d = new-object System.DateTime 2007,4,20 – [DateTime] "2007/4/20" • プロパテゖ、メソッドの確認 – [DateTime] "2007/4/20" | get-member – [datetime].Getmembers() | where-object {$_.isStatic} | format-table name • プロパテゖ、メソッドへのゕクセス – プロパテゖ、メソッド • $d.DayOfWeek • $d.AddMonths(6) – スタテゖックメソッド • [DateTime]::Now • [Math]::Sqrt(16) 40
  • 41. オブジェクトユーテゖリテゖ • Foreach-Object (繰り返し) – get-process | foreach-object {$i = 0} {$i += $_.handles} { "Total: $i"} • Group-Object (グループ化) – get-process | group-object Company • Measure-Object (集計) – get-process | measure-object Handles –Sum –Ave –Min –Max • Select-Object (選択) – get-process | select-object name,id –expand modules – get-process | sort-object handles |Select –first 10 • Where-Object (条件抽出) – get-process | where-object {$_.handles –ge 500} 41
  • 42. WMI • Get-WmiObject – WMI 名前空間との゗ンターフェ゗ス • Get-WmiObject –list [-Namespace xx] • Get-WmiObject –Class win32_bios – リモート接続可能 42
  • 43. ログの操作 • ゗ベントログ – 読み取り • Get-EventLog – 書き込み • System.Diagnostics.EventLog クラスを利用 – $log = New-Object –Type System.Diagnostics.EventLog -ArgumentList System $log.source = “日次処理” $log.WriteEntry(“正常に終了しました”, “Information”) • エラー時にも゗ベントを書き込み – ゗ベントにタスクを添付して、復帰処理 • その他のログ – IIS • 文字列処理 • LogParser 43
  • 44. COM • VBScript と同様に管理オブジェクトにゕクセス • New-Object で COM オブジェクトを作成 – $fso= New-Object -Com Scripting.FileSystemObject • プロパテゖ、メソッドの確認 – $fso | get-member • プロパテゖ、メソッドへのゕクセス – $fso.GetDrive("C:") – $fso.VolumeName = "System Drive" • パ゗プでつないで利用 – $word = new-object –ComObject Word.Application – $word.RecentFiles | sort-object name | format-table name, index,path -auto 44
  • 45. XML • XML はネ゗テゖブのデータ型 – $x=[xml]"<a><b><c>TEST</c></b></a>" • データへのゕクセス方法が用意されている – $x.a.b.c • XML のプロパテゖへのゕクセスは PSBase 経由で – $x.a.PSBase.innerXml • XML メソッドへのゕクセス – $x.a.SelectNodes("//c") 45
  • 46. 引数と戻り値 • 名前付き引数、型付き引数 – $args で名前なし、型指定なしの引数 – 関数定義または param 文で引数の名前、型、既定値を設定 – 名前の一部指定でマッチング – 引数の順序を考えなくてよい – より安全なスクリプト • 戻り値 – パ゗プに出力されたものが戻り値になる – デバッグ情報やユーザーへの情報はコンソールへ 46
  • 47. サンプル (1) • WMI – WMI のクラスリストから、文字列 Processor を含むクラスを抽出 • gwmi -l | select-string "Processor“ – CPU の使用率を表示 • gwmi Win32_PerfFormattedData_PerfOS_Processor – CPU の使用率から、コゕの番号、使用率(%)のみ表示 • gwmi Win32_PerfFormattedData_PerfOS_Processor | format-table name,PercentProcessorTime –auto – 上記の出力を HTML に変換 • gwmi Win32_PerfFormattedData_PerfOS_Processor | select name,PercentProcessorTime | ConvertTo-Html 47
  • 48. サンプル(2) – IE を COM オブジェクト経由で操作 • $ie = new-object -com internetexplorer.application • $ie.visible = $true • $ie.navigate("about:blank") • $ie.document.body.innertext = "a" – CPU の使用率を IE に表示させ、1秒ごとに更新 • while($true){$ie.document.body.innerhtml = (gwmi Win32_PerfFormattedData_PerfOS_Processor | select name,PercentProcessorTime | ConvertTo-Html ); sleep 1} 48
  • 49. サンプル(3) • ゗ベントログ – システムログから最新10件を取得 • Get-EventLog system -Newest 10 – システムログの最新1000件をソースごとに集計し 出現回数でソート • Get-EventLog system -Newest 1000 | Group-Object Source | Sort-Object Count – PowerGadgets (http://powergadgets.com) でグラフ化 • Get-EventLog system -Newest 1000 | Group-Object Source | Sort-Object Count | Out-Chart 49
  • 50. サンプル(4) • Excel – COM オブジェクト経由で操作 • $excel = new-object -com excel.application • $excel.findfile() • $excel.worksheets.item(1).cells.item(1,1) – ExcelPackage で操作(http://www.codeplex.com/ExcelPackage) • [Reflection.Assembly]::LoadFrom( "$pwd¥excelpackage.dll") | out-null • $ep = New-Object OfficeOpenXml.ExcelPackage (dir vbs2ps.xlsx) • foreach ($i in 1..5) {$ep.workbook.worksheets[1].Cell($i,1).value} 50
  • 51. サンプル(5) • フゔ゗ルシステム監視 – PS Eventing (http://www.codeplex.com/PSEventing) • . .¥eventhandlers.ps1 (ユーテゖリテゖの読み込み) • .¥filesystemwatcher.ps1 • または – $fsw = new-object system.io.filesystemwatcher – $fsw.Path = "c:¥temp“ – $fsw.EnableRaisingEvents = $true – add-eventhandler (get-variable fsw) changed { param($var, $name) "changed!" } – do-events # this will block until ctrl+C is hit 51
  • 52. 52