PowerShell ver2について ~ついにWindowsサーバー 管理環境の主流へ~

Slides:



Advertisements
Similar presentations
1 情報基礎 A 第 9 週 プログラミング入門 VBA の基本文法 1 準備・変数・データの入出力 徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
Advertisements

PowerShell ハンズオン 2012/03/24 第 27 回.NET 勉強会 / ヒーロー島 牟田口大介.
1 安全性の高いセッション管理方 式 の Servlet への導入 東京工業大学 理学部 千葉研究室所属 99-2270-6 松沼 正浩.
Curlの特徴.
SAP 環境における Active Directory 導入のメリット
Jsuiteクーロンサービスtutorial
IIS 4.0で開発をするコツ Webアプリケーション構築.
実習1:コマンドシェルの使い方.
D&UNITE 株式会社 代表取締役 株式会社 T-Planning 取締役 Microsoft MVP for ASP.NET/IIS
.NET Framework 4.0 世代の Expression Trees
PROCESS 14:一般情報(2) InstallShieldLecture
安全なログオン手順 2004/08/26 Port139 伊原 秀明.
Windows PowerShell 最新コマンドライン スクリプティング
JPAを利用した RESTful Webサービスの開発
シェル シェルスクリプト 最低限vi 山下 達也 (北大理・宇宙理学専攻) INEX 第4回/最低限 UNIX(Linux) その3
2014年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
シェル シェルスクリプト 最低限vi 山下 達也 (北大理・宇宙理学専攻) INEX 第4回/最低限 UNIX(Linux) その3
2015年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
東京工科大学 コンピュータサイエンス学部 亀田弘之
プログラミング言語としてのR 情報知能学科 白井 英俊.
Windows PowerShell 最新コマンドライン スクリプティング
3-1 MySQLについて 発表者:藤村元彦 自然言語処理研究室.
ISCCD7.5構築 その2 Middleware 導入
2013年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
Win32APIとMFC H107102 古田雅基 H107048 佐藤一樹 H107126 山下洋平.
プログラミング基礎I(再) 山元進.
PowerShell ver2について ~ついにWindowsサーバー 管理環境の主流へ~
C#によるWindowsFormApplication入門
山田 由貴子 (北大理・地球惑星科学専攻) 2004年10月29日
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
VBA H106077 寺沢友宏.
プログラミング基礎I(再) 山元進.
マルチエージェント・シミュレーション(2)
最適化ソルバーのための Python言語入門
ファイルシステムとコマンド.
MSBuild 色々出来るよ 2011/04/02 お だ.
ML 演習 第 7 回 新井淳也、中村宇佑、前田俊行 2011/05/31.
Cygwin の install.
SAP & SQL Server テクニカルアーキテクチャ概要 マイクロソフト株式会社 SAP/Microsoft コンピテンスセンター
サーバー立ち上げ記 2009/5/23
スクリプト言語を用いたPHITSの連続実行
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
マイクロソフト Access での SQL 演習 第1回 SQL問い合わせ(クエリ)
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
3D散歩ゲーム 08A2043 谷口盛海 種田研究室.
0からわかるF# Part1 中 博俊 F# September 2008 CTP Base.
0からわかるF# Part1 中 博俊 F# September 2008 CTP Base.
図書館職員のための アプリケーション開発講習会
暗黙的に型付けされる構造体の Java言語への導入
Windows PowerShell Cmdlet
0からわかるF# Part1 中 博俊 F# September 2008 CTP Base.
オープンソフトウェア利用促進事業 第3回OSSモデルカリキュラム導入実証
0からわかるF# Part1 中 博俊 F# September 2008 CTP Base.
Jakarta Struts (2) ソフトウェア特論 第11回.
Windows XP  ウィルスバスターインストール方法.
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
0からわかるF# Part1 中 博俊 F# September 2008 CTP Base.
0からわかるF# Part1 中 博俊 F# September 2008 CTP Base.
Java における 先進的リフレクション技術
情報工学科 3年生対象 専門科目 システムプログラミング 第4回 シェルスクリプト 情報工学科 篠埜 功.
SQL Server 2008 および 更新プログラムの一括セットアップ
C#プログラミング実習 第3回.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
プログラミング入門 電卓を作ろう・パートI!!.
標準入出力、変数、演算子、エスケープシーケンス
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
Microsoft Office Project Server 2007
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
Presentation transcript:

PowerShell ver2について ~ついにWindowsサーバー 管理環境の主流へ~ むたぐち(牟田口大介)

2008 Windows PowerShell ポケットリファレンス(技術評論社) 牟田口大介の自己紹介 フリーライターおよびフリープログラマー 2006~ チェック式 WSH入門(@IT) 2008 Windows PowerShell ポケットリファレンス(技術評論社) 2009 PowerShellサーバー管理書籍(共著)7月発売予定 他 Microsoft MVP for PowerShell http://winscript.jp/

従来のWindows Server管理手法(GUI) マウスでクリックしてキーボードで入力が基本

従来のWindows Server管理手法(CUI,スクリプト) コマンドプロンプト CUIのシェル。コンソールにコマンドをキーボードから入力して動作を実行。cmd.exe バッチファイル コマンドプロンプトに入力することをあらかじめテキストファイルに書いておき一括実行。*.bat WSH VBScriptやJScriptを使ってテキストファイルにスクリプトを記述。*.vbsなど

従来のWindows Server管理手法の問題点 GUI 繰り返し処理を行うには、何度もクリックやキー入力を手作業で繰り返す必要がある CUI・スクリプト コマンドプロンプト・バッチファイル コマンドの種類が多様化、オプションもまちまちで分かりにくい テキストベースなのでコマンドの連携が困難 構文が貧弱なので複雑なことができない WSH 対話的な実行ができない(シェルとしての機能がない) 単純なことをやるだけでもコード量が長くなる 両者に共通の問題 セキュアではない、リモート実行が困難、開発環境が標準機能としてないetc

Server 2003/XP/Vista用がDL可能 Server 2008では標準搭載(Server Coreでは使用不可) PowerShell v1の登場 2006年にリリース コマンドプロンプトやUNIXシェルのような対話的コンソール、バッチファイルやWSHスクリプト、UNIXシェルスクリプトのような強力なスクリプト実行環境を併せ持つ、Windowsとしては初めての本格的コマンドラインシェルである。 .NET Framework 2.0をベースに動く Server 2003/XP/Vista用がDL可能 数ヶ月前からWindows Updateでもオプションで入るようになりました Server 2008では標準搭載(Server Coreでは使用不可) サーバーマネージャの機能の追加 Exchange Server 2007などサーバー製品群に同梱 ただし特に国内での注目度は低かった(と思う)

Windows Server 2008 R2 / Windows 7の標準機能に そしてPowerShell v2の登場 2009年中に2008,2003,XP,Vista用がRTM予定 現在はCTP3がDL可能 Windows Server 2008 R2 / Windows 7の標準機能に Windows Server 2008 R2 Server Coreでも使用可能に さまざまな新機能

v1と共存できないのでまずはアンインストール .NET Framework 2.0以上をインストール PowerShell v2のインストール v1と共存できないのでまずはアンインストール .NET Framework 2.0以上をインストール ISEとグリッドを使うなら3.5 sp1をインストール バックグラウンドジョブとリモート機能を使うにはWinRM2.0をインストール(現在CTP3) PowerShell ver.2をインストール(現在CTP3) Win 2008 R2 RC, Win 7 RCでは特にインストール作業必要なし

-【パラメータ名】 or -【パラメータ名】 【パラメータ】 出力形式 表、リスト、幅広い表、グリッドnew! 資源へのアクセス方法 統一化されたコマンド~コマンドレット~ ネーミング規約 Verb-Noun パラメータ -【パラメータ名】 or -【パラメータ名】 【パラメータ】 出力形式 表、リスト、幅広い表、グリッドnew! 資源へのアクセス方法 ファイルシステム、レジストリ、環境変数などを統一的に扱える エイリアス コマンドプロンプト風味、UNIXシェル風味、動詞名詞の頭文字

GUIによる開発環境(PowerShell ISE)new! モジュールの使用new! リモート処理およびバックグラウンド処理new! 強力なスクリプト実行環境 オブジェクトベース GUIによる開発環境(PowerShell ISE)new! モジュールの使用new! リモート処理およびバックグラウンド処理new! イベンティングnew! セキュリティ 機能拡張(PSスナップイン、国際化new! 、Advanced Functions new!) 豊富なコマンドラインオプション -windowStyle -file -sta etc プロファイル

PowerShell v2およびISEの動作デモ DEMO

スクリプトファイルをタブルクリックするだけでは実行されない カレントディレクトリにあるスクリプトを単純実行できない セキュリティ デフォルトではスクリプトの実行が不許可 Set-ExecutionPolicy RemoteSignedなどで有効化 Set-AutheticodeSignatureでコード署名を入れられる スクリプトファイルをタブルクリックするだけでは実行されない カレントディレクトリにあるスクリプトを単純実行できない .\script.ps1 特定のexe,コマンドレットのみ実行new! $ExecutionContext.SessionStateの各プロパティ

関数などをモジュール化可能new! *.psm1ファイル C:\Windows\System32\WindowsPowerShell\v1.0\Modules\Mymodule\MyModule.psm1 function Get-AllItem { Get-ChildItem -recurse } Export-ModuleMember Get-AllItem Import-Module MyModule

.NETオブジェクトのイベントを補足することが可能new! イベンティング .NETオブジェクトのイベントを補足することが可能new! $timer = New-Object Timers.Timer $timer.Interval = 10000 Register-ObjectEvent -inputObject $timer -eventName Elapsed -sourceIdentifier Test -Action {イベント発生時に実行するコード} $timer.Enabled = $true Unregister-Event * WMIのイベント補足はRegister-WmiEvent http://blogs.msdn.com/powershell/archive/2008/06/11/powershell-eventing-quickstart.aspx

Advanced Functions 旧称Script Cmdlets。PowerShellスクリプトを用いてコマンドレット(のようなもの)を作成可能new! 1ファイル1コマンドレットの場合: param( [Parameter(Position=0,Mandatory=$true,ValueFromPipeline=$true)] [Int]$Value ) process { return [math]::pow($Value,2) } .\Get-Square.ps1 -Value 5 や 1,2,3|.\Get-Square のように呼ぶ。 関数として書く場合(プロファイルなどに記述): function Get-Square { [CmdletBinding()] param([Parameter(Position=0, Mandatory=$true, ValueFromPipeline=$true)] [Int]$Value ) process {return [math]::pow($Value,2)} } ヘルプトピックスを含められる http://blogs.msdn.com/powershell/archive/2008/12/23/advanced-functions-and-test-leapyear-ps1.aspx

リモート処理/バックグラウンド処理 WinRM2.0を用いたリモート処理およびバックグラウンド処理が可能new! ローカルバックグラウンド(非同期)処理 処理の実行:Start-Job {<実行する命令文>} 結果の取得:Receive-Job <Get-Jobで得られたジョブID> リモート処理 実行先のサーバー上でwinrm quickconfig を実行しておく 同期実行:Invoke-Command @(サーバー名1,サーバー名2,サーバー名3) {<実行する命令文>} 非同期実行:Invoke-Command サーバー名1 {<実行する命令文>} -asJob 非同期実行空間の作成: New-Pssession サーバー名1 実行空間での実行:Invoke-Command {<実行する命令文>} -Session (Get-PSSession -Id <Get-PSSessionで得られるセッションID>) ファンイン(リモートのPSを直接操作):Enter-PSSession –Id 1 プロンプトが変化:[win-3d9dezlgcmt]: PS C:\Users\Administrator.TEST> http://technet.microsoft.com/ja-jp/magazine/2008.08.windowspowershell.aspx

リモート実行のデモ DEMO

マルチラインコメント <#~#> クロージャ $closure = {…}.GetNewClosure() サブ式の省略 v1→v2の文法の拡張 try~catch~finally マルチラインコメント <#~#> クロージャ $closure = {…}.GetNewClosure() サブ式の省略 $result = $( if ($true) { 42 } ) $result = if ($true) { 42 } $sequence = foreach ($i in 0..15) { [math]::pow(2, $i) } 新しい演算子-splitと-join

新しいコマンドレット(129個→236個) 既存のコマンドレットの機能拡張 Add-Type: classの代わり v1→v2 コマンドレットの追加と機能拡張 新しいコマンドレット(129個→236個) Add-Type: classの代わり *-Computer, *-EventLog, *-PSSession/Invoke-Command, *-Job, *-Event, *-Transaction, etc 既存のコマンドレットの機能拡張 Select-String: -Encoding, -NotMatch, -AllMatchesパラメータ追加 Get-Member: -Viewパラメータ追加(PS拡張メンバのみ表示など)

そのためPowerShellを覚えておくとWindows Serverを楽に動かせるようになります。 まとめ これからのWindows Serverおよびサーバー製品群はPowerShellベースの管理になります。GUIもPowerShellを裏で動かすようになります。 そのためPowerShellを覚えておくとWindows Serverを楽に動かせるようになります。 サーバーだけでなくクライアントで使うのもよいです。クライアントで開発、サーバーでリモート実行というシナリオも。