Windows PowerShell 最新コマンドライン スクリプティング

Slides:



Advertisements
Similar presentations
管理者向け PowerShell で SMO を使う SQLWorld 大阪 #20.
Advertisements

マイクロソフトがホスティングする拡張性に優れたサービス ベース アプリケーション プラットフォーム.
Internet Explorer 障害解析 最初の一歩 - IE のトラブルを理解する -. 概要 Internet Explorer を使用中に発生するトラブルの 種類と、調査のための切り分け方法を紹介します! (以降は IE と略称で表記します) よくあるお問い合わせ Web ページの表示が白画面のまま完了しない.
この部分こそが必 要とされている ! Runtime 自身と Expression が カバーする!
Windows Azure ハンズオン トレーニング Windows Azure Web サイト入門.
IIS 4.0で開発をするコツ Webアプリケーション構築.
2009年 3月 財団法人 学習ソフトウェア情報研究センター マイクロソフト株式会社
実習1:コマンドシェルの使い方.
.NET Framework 4.0 世代の Expression Trees
D2-301 現時点の本資料は 完成版のスライドではありません。
MSON-B2 .NET Framework Web アプリケーション開発
Windows Summit /1/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
SQL Server Always On Technologies の概要
JXTA Shell (3) P2P特論 (ソフトウェア特論) 第6回 /
C# Programming .NET / C# Group 検索ワードでみる C#の困り事とその対策
Webサービスに関する基本用語 Masatoshi Ohishi / NAOJ & Sokendai
JPAを利用した RESTful Webサービスの開発
インターネットで楽しく学ぼう! 「みて、きいて、わかる 画像処理」 「画像」の基礎知識 マイクロソフト株式会社.
3/4/ :37 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Windows PowerShell 最新コマンドライン スクリプティング
Expression Blend 3で始めるSilverlight 3アプリケーション開発
Active Directory って? Windows Server で標準提供されるディレクトリ サービス ・グローバルなデータ ストア
PowerShell ver2について ~ついにWindowsサーバー 管理環境の主流へ~
3/11/2017 1:52 AM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
3/11/2017 7:02 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
コンポーネントの再利用に必要な情報 えムナウ (児玉宏之)
コンポーネントの再利用に必要な情報 えムナウ (児玉宏之)
Microsoft Office InfoPath 2003 概要
山田 由貴子 (北大理・地球惑星科学専攻) 2004年10月29日
Windows Summit /13/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
OSとコマンド OS:コンピュータを使うための基本プログラム コマンド:OS上で使用できる命令 OS本体であるカーネルの内部コマンド
データはお客様に属し、かつ、コントロール可能
HP ProLiant DL980 G7 SQL Server 2008 R2 NUMA 環境 ベンチマークテスト結果報告書
Delphi Day ~Delphi 概要、および新バージョンのご紹介~
Using tiles and notifications タイルと通知の使用
[コース: A1] .NET Framework の基礎
Windows Summit /6/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Windows Summit /8/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Windows Summit /9/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Microsoft Consumer Channels and Central Marketing Group
XSL-FO + MathML MathML表示、PDF生成、SVG生成
Microsoft Partner Network Office 365 社内使用ライセンスの有効化
9.1 DOMの概要 9.2 DOMプログラミングの基礎 9.3 DOMのプログラミング例
第10回 2007年6月29日 応用Java (Java/XML).
識別子の命名支援を目的とした動詞-目的語関係の辞書構築
Expression Blend 3で始めるSilverlight 3アプリケーション開発
Chad Siefert Senior Test Lead Microsoft Corporation
第11回 2007年7月6日 応用Java (Java/XML).
暗黙的に型付けされる構造体の Java言語への導入
Windows Azure 通知ハブ.
Windows PowerShell Cmdlet
Microsoft Visual Studio 2005 Tools for
.NET Framework 3.0 概要 (旧称 : WinFX)
SAP CRM のクライアントとして InfoPath を活用する
Windows Summit /21/2019 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
10-1 SAXの概要 10-2 Saxプログラミングの基礎 10-3 saxのプログラム例
MIX 09 2/23/2019 1:22 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Max Morris Principal Program Manager Microsoft Corporation
Windows Summit /24/2019 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Yochay Kiriaty Senior Technical Evangelist Microsoft® Corporation
~ 第5回 認証のためのプロキシー Web Application Proxy
Craig Rowland Senior Program Manager Microsoft Corporation
Microsoft Consumer Channels and Central Marketing Group
PowerShell ver2について ~ついにWindowsサーバー 管理環境の主流へ~
JXTA Shell (2) P2P特論 (ソフトウェア特論) 第5回 /
Windows Summit 2010 © 2010 Microsoft Corporation.All rights reserved.Microsoft、Windows、Windows Vista およびその他の製品名は、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。
Windows Summit /22/2019 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
第6回放送授業.
Microsoft Office Project Server 2007
Windows Azure メディアサービス
Presentation transcript:

Windows PowerShell 最新コマンドライン スクリプティング マイクロソフト株式会社 IT Pro エバンジェリスト 田辺 茂也 http://blogs.technet.com/stanabe

アジェンダ 資料の内容 PowerShell は強力な自動化ツールです 17/3/2 5時43分 アジェンダ 資料の内容 PowerShell のご紹介 PowerShell を自動化ツールとしてどのように使うことができるか PowerShell の拡張方法 PowerShell は強力な自動化ツールです PowerShell により、複雑な作業を柔軟に取り扱うことができます ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

PowerShell 次世代の Windows スクリプティング環境 BASH / KSH のようなシェル 17/3/2 5時43分 PowerShell 次世代の Windows スクリプティング環境 BASH / KSH のようなシェル Perl / Ruby のようなプログラミング TCL のような埋め込み AS400 CL / VMS DCL のような生産指向 ファイルシステムのように、 簡単にデータストアにアクセス ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Unix 風の動作モデル 4 種類の profile ファイルを起動時に実行 スクリプトの起動方法 別プロセスでコマンド実行可能 17/3/2 5時43分 Unix 風の動作モデル 4 種類の profile ファイルを起動時に実行 全ユーザー、各ユーザー PowerShell、特定のシェル スクリプトの起動方法 新規プロセス – powershell foo.ps1 既存プロセスの新規スコープ - Foo.ps1 既存プロセスのカレントスコープ - . Foo.ps1 別プロセスでコマンド実行可能 Get-process Powershell {Get-process} ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

探検のためのツール Get-Help Get-Command Get-Member コマンドレットや言語のドキュメントを表示 17/3/2 5時43分 探検のためのツール Get-Help コマンドレットや言語のドキュメントを表示 Get-Command コマンドレット、スクリプト、Alias、関数、 フィルター、ネイティブコマンドの 情報を表示 Get-Member オブジェクトに関する情報を表示 ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

テキスト処理 ファイルや、テキストを返す既存のコマンドの 出力を操作 .NET String クラス 多くの .NET の型と変換を利用可能 17/3/2 5時43分 テキスト処理 ファイルや、テキストを返す既存のコマンドの 出力を操作 .NET String クラス Join, Split, SubString, Trim, Length, … 多くの .NET の型と変換を利用可能 [datetime], [URI], ENUMS, etc 豊富な string オペレーター +,*, -f, -replace, -match, -like, -eq, -ne, gt, -ge, -lt, -le 暗黙、明示的なキャスト、強制 豊富なユーティリティ Match-String, foreach, group, select, sort, where ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

COM VBScript から利用可能なものと同じ 管理オブジェクトにアクセス New-Object で COM オブジェクトにバインド 17/3/2 5時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 name |format-table name, index,path -auto ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

ドライブ さまざまなデータストアに、共通のアクセス方法を提供 データストアは「ドライブ」として見える 17/3/2 5時43分 ドライブ さまざまなデータストアに、共通のアクセス方法を提供 データストアは「ドライブ」として見える Filesystem, Registry, Alias, Certs, Env, Functions, Variables, etc > dir HKLM:\SOFTWARE\Microsoft 「ドライブ」はさまざまな情報を含む名前空間 Item, ChildItem, Content, Property, ACL, etc. 新しいナビゲーションや対話モデル、または alias により アクセスできる Get-ChildItem dir ls Get-Cwd cd pwd Get-Content type cat New-item –type directory mkdir Set-Location ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

ドライブのアクセス方法 名前を指定して新しいドライブをマウント ワイルドカード 豊富な共通のアクセス方法 特定のドライブで有効な拡張 17/3/2 5時43分 ドライブのアクセス方法 名前を指定して新しいドライブをマウント New-Drive -Name sys32 -Provider FileSystem -root c:\windows\system32 -Description “PSH SOURCES“ cd sys32:\drivers ワイルドカード Dir *\*\*.doc Dir [a-f]*[tc] 豊富な共通のアクセス方法 Dir \logs –Include *.txt –Exclude A* -Recurse -Force 特定のドライブで有効な拡張 Dir Cert: -Recurse –CodeSigning すべてのドライブでタブ補完 Dir HKLM:\So<TAB>\Mi<TAB> => HLKM:\Software\Microsoft ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Cmdlet (コマンドレット) 標準的なスクリプティング方法 標準的な命名パターン 共通の文法 共通のパラメータ 17/3/2 5時43分 Cmdlet (コマンドレット) 標準的なスクリプティング方法 標準的な命名パターン 動詞-名詞(目的語) 共通の文法 Cmdlet –param v1 –param2 v1,v2 –flag 共通のパラメータ -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable, -Verbose -Whatif, -Confirm (副作用がある場合) 戻り値は文字列ではなくオブジェクト ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

.Net スクリプティング あらゆる .NET の型が利用可能 .NET オブジェクトの生成 プロパティ、メソッドの確認 17/3/2 5時43分 .Net スクリプティング あらゆる .NET の型が利用可能 .NET オブジェクトの生成 $d=New-Object System.DateTime 2005,4,20 [DateTime] "4-20-2005“ プロパティ、メソッドの確認 [DateTime] "4-20-2005“ |Get-Member [datetime].Getmembers() |where {$_.isStatic} |ft name プロパティ、メソッドへのアクセス インスタンス $d.DayOfWeek $d.AddMonths(6) スタティック [DateTime]::Now [DateTime]::IsLeapYear(2005) メソッドは型が最も近いものが選ばれる キャストでオーバーライド [DateTime]::IsLeapYear([INT]$x) ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

例: Get-netstat.ps1 $lines = netstat.exe -ano -p TCP $ps = get-process foreach ( $line in $lines ) { $obj = new-object System.Management.Automation.PSObject $obj.psobject.typenames[0] = "Netstat" switch -regex ($line) { ("^ TCP") { $values = $line.trim().split(" ", [StringSplitOptions]::RemoveEmptyEntries) $obj | add-member noteproperty "proto" $values[0] $laddr, $lport = $values[1].split(':') $obj | add-member noteproperty "laddr" $laddr $obj | add-member noteproperty "lport" ([int]$lport) $faddr, $fport = $values[2].split(':') $obj | add-member noteproperty "faddr" $faddr $obj | add-member noteproperty "fport" ([int]$fport) $obj | add-member noteproperty "state" $values[3] $obj | add-member noteproperty "pid" ([int]$values[4]) $pname = ($ps | where {$_.id -eq $values[4]}).name $obj | add-member noteproperty "pname" $pname $obj } ("^ UDP") { # TCPを参考に実装してみてください

オブジェクトユーティリティ Foreach {} Group Measure Select Where 17/3/2 5時43分 オブジェクトユーティリティ Foreach {} gps |foreach {$i = 0} {$i += $_.handles} { “Total Handles: $i”} Group > gps |group Company Measure > gps |Measure Handles –Sum –Ave –Min –Max Select > gps |Select name,id –expand modules > gps |Sort handles |Select –first 10 Where > gps |where {$_.handles –ge 500} ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

WMI Get-WmiObject WMI 名前空間とのインターフェイス 17/3/2 5時43分 WMI Get-WmiObject WMI 名前空間とのインターフェイス Get-WmiObject –list [-Namespace xx] Get-WmiObject –Class xx –Namespace xx –Property xxx – Filter xxx –ComputerName xxx –Credential xxx ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

XML XML はネイティブのデータ型 データへのアクセス方法が用意されている XML のプロパティへのアクセスは PSBase 経由で 17/3/2 5時43分 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”) ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Extensible Type System 17/3/2 5時43分 Extensible Type System 型の拡張は XML ファイル内に定義 My.Types.ps1xml 型名は PSTypeNames で定義 $x.PSTypeNames 拡張可能なもの Aliases, Notes, Properties, Methods, PropertySets, serialization info 型を更新するコマンド > Update-TypeData My.Types.ps1xml ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

出力と書式 リスト形式、表形式、ワイド、カスタムビューの フォーマッターが用意されている 17/3/2 5時43分 出力と書式 リスト形式、表形式、ワイド、カスタムビューの フォーマッターが用意されている > Get-Command Format-* フォーマッターのオプションで、プロパティ、 プロパティセット、プロパティの表現を指定可能 > gps |format-table name,id,handlecount > gps |format-table Configuration -auto > gps |format-table name,@{ Label="File"; Expression= {$_.mainmodule.filename} } > gps |format-list name,*size64 XML ファイルでフォーマット拡張を定義 > Update-FormatData My.Format.ps1xml ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

エラー処理・デバッグ 例外の取り扱い トレース、デバッグ trap throw $error (ErrorRecord) set-psdebug [-Trace 0..2] [-Step] [-Off]

シェルの拡張 シングルシェル ミニシェル スナップイン プロバイダ ファイルシステムと同様にアクセスできる 独自のプロバイダを作成可能

セキュリティ セキュリティのレベルでモード設定可能 制限つき (オペレーターモード) 署名 リモートの署名 無制限 対話形式のみ 17/3/2 5時43分 セキュリティ セキュリティのレベルでモード設定可能 制限つき (オペレーターモード) 対話形式のみ スクリプトは実行できない 署名 スクリプトは、信頼された発行元による 署名が必要 リモートの署名 “インターネットゾーン” のスクリプトは 信頼された発行元による署名が必要 無制限 すべてのスクリプトを実行可能 リモートのスクリプトについては常に警告 ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

ロードマップ PowerShell Jscript (.NET) PowerShell シナリオ 現在 将来 GUI シェル MMC 17/3/2 5時43分 ロードマップ シナリオ 現在 将来 GUI シェル MMC MMC とスナップイン PowerShell コマンドシェル CMD SH CSH KSH PowerShell コマンド スクリプティング CMD スクリプト COM スクリプティング WSH VBScript Jscript Jscript (.NET) PowerShell ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

PowerShell と開発者 開発者が用意するもの PowerShell により PowerShell が提供するもの 17/3/2 5時43分 PowerShell と開発者 開発者が用意するもの 管理用オブジェクトに対する .NET のインターフェイス シンプルなコマンドレット・プロバイダーで、高いユーザビリティを提供 PowerShell により コマンドレット → コマンドラインツール プロバイダー → ドライブのように容易にアクセス PowerShell が提供するもの 対話型シェル 強力な言語サポート コマンドライン ・ COM ・ .NET スクリプティング 共通のパーサー、引数のバリデータ ユーティリティー ・ フォーマッター ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

管理ツールのアーキテクチャ例 管理機能をコマンドレットとして 実装し、コマンドラインと管理コンソールから同等にアクセスできるようにする 17/3/2 5時43分 管理ツールのアーキテクチャ例 PowerShell Shell MMC スナップイン 他の ホスト 管理機能をコマンドレットとして 実装し、コマンドラインと管理コンソールから同等にアクセスできるようにする スクリプト & コマンドパーサー Extended Type System セッション管理 コマンドレット 名前空間 プロバイダー PowerShell エンジン アプリ ケーション ファイルシステム レジストリなど Active Directory ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

17/3/2 5時43分 スタイル GUI Cmd VS ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

例: Exchange Server 2007

まとめ PowerShell はシステム管理のために必要な あらゆるデータタイプとデータソースに 共通のアクセス方法を提供するツールです 17/3/2 5時43分 まとめ PowerShell はシステム管理のために必要な あらゆるデータタイプとデータソースに 共通のアクセス方法を提供するツールです 2006年中にダウンロード提供開始予定 RC2 を提供中: http://www.microsoft.com/downloads PowerShell で検索 PowerShell 本体とドキュメントパックがあります ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

技術情報リソース ダウンロード: http://www.microsoft.com/download で PowerShell を検索(PowerShell 本体、ドキュメント) Script Center: http://www.microsoft.com/technet/scriptcenter /scripts/msh/default.mspx?mfr=true ニュースグループ: microsoft.public.windows.server.scripting Channel 9: http://channel9.msdn.com/tags/PowerShell Team Blog: http://blogs.msdn.com/PowerShell/default.aspx Wiki: http://channel9.msdn.com/wiki/default.aspx /Channel9.WindowsPowerShellQuickStart

© 2006 Microsoft Corporation. All rights reserved. 17/3/2 5時43分 © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.