IT ライブラリーより (pdf 100 冊 ) http://itlib1.sakura.ne.jp/
他の章は下記をクリックして PDF 一覧からお入り下さい IT ライブラリー (pdf 100 冊 ) http://itlib1.sakura.ne.jp/ 目次番号 270 番 Windows Server Enterprise 2008 R2 完全解説 ( 再入門 ) 全 26 冊 2
Windows PowerShell = コマンドラインシェル + スクリプティング言語 +.NET Framework GUI でできることは CUI でも生産性と管理性の向上システム情報の収集システムの監視システム管理の自動化 3
新しい対話型シェルとスクリプティング言語.NET Framework 上で動作数多くの組み込みコマンドレット.NET を活用した新しいスクリプティング言語 オブジェクト パイプライン 現在使っているツールも利用可能現在使っている自動化技術 (COM) も利用可能 次世代のシステム管理アーキテクチャの基礎今後サーバー製品で利用 Windows Server 2008 から標準搭載 4
気軽に始められるまずは Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系標準的な名前付けパターン [ 動詞 ]-[ 名詞 ] ( 例 : get-help, get-command, get-member) オプション指定 Cmdlet param v1 param2 v1,v2 flag 共通のパラメータ -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable, -Verbose -Whatif ( シミュレーション ), -Confirm ( 都度確認 ) 5
コマンドライン 動詞名詞引数名引数の値 PS> get-service name *net* コマンド 引数 結果 プロパティの名前 Status Name DisplayName ------ ---- ----------- Stopped NetLogon NetLogon Running Netman Network Connections プロパティの値 6
コマンドレットのオンラインヘルプを参照 PS C: > Get-Help Get-Service 名前 Get-Service 概要 Gets the services on a local or remote computer. 構文 Get-Service [[-Name] <string[]>] [-ComputerName <string[]>] [-DependentServices] [-Exclude <string[]>] [-Include <string[]>] [-RequiredServices] [<CommonParameters>] 7
コマンドレットのリストを取得 PS C: > Get-Command *-Service CommandType Name Definition ----------- ---- ---------- Cmdlet Get-Service Get-Service [[-Name] <String... Cmdlet New-Service New-Service [-Name] <String>... Cmdlet Restart-Service Restart-Service [-Name] <Str... Cmdlet Resume-Service Resume-Service [-Name] <Stri... Cmdlet Set-Service Set-Service [-Name] <String>... Cmdlet Start-Service Start-Service [-Name] <Strin... Cmdlet Stop-Service Stop-Service [-Name] <String... Cmdlet Suspend-Service Suspend-Service [-Name] <Str... 8
オブジェクトのメンバー ( 構成 ) 一覧 PS C: > Get-Service Get-Member TypeName: System.ServiceProcess.ServiceController Name MemberType Definition ---- ---------- ---------- Name AliasProperty Name = ServiceName RequiredServices AliasProperty RequiredServices = ServicesDependedOn Disposed Event System.EventHandler Disposed(System... Close Method System.Void Close() Continue Method System.Void Continue() CreateObjRef Method System.Runtime.Remoting.ObjRef Creat... Dispose Method System.Void Dispose() Equals Method bool Equals(System.Object obj)... 9
.NET Framework との強力な連携 CLR 上で動作戻り値は常に オブジェクト.NET Framework のクラスを呼び出せる使えば使うほどに効いてくる特長 データへのアクセスを共通化ドライブに割り当てドライブレターだけでなく 文字列を使用可 実運用レベルのスクリプティングパラメータの型 名前の指定 初期化スクリプトへのデジタル署名 サードパーティ コミュニティによるサポートスクリプトやツールが充実 10
文字に見えても 実体は 型 を持った オブジェクト 整数 浮動小数点日付 時間ファイル情報 プロセス情報 文字ではないので 文字列操作が不要オブジェクトのプロパティとメソッドパイプにはオブジェクトが流れる パイプ プロセス 変数が簡単に扱える例 : テキストファイルを読み込んで 変数にセット変数の内容をファイルに保存 11
表示カラム ( プロパティ ) を指定 PS C: > Get-Service Format-Table Status, Name, CanStop Status Name CanStop ------ ---- ------- Stopped AeLookupSvc False Stopped ALG False Stopped AppIDSvc False Running Appinfo True Running AppMgmt True... 12
指定したプロパティの値で並べ替え PS C: > Get-Service Sort-Object Status Status Name DisplayName ------ ---- ----------- Stopped RSoPProv Resultant Set of Policy Provider Stopped sacsvr Special Administration Console Helper Stopped RemoteAccess Routing and Remote Access Stopped RpcLocator Remote Procedure Call (RPC) Locator Stopped SCardSvr Smart Card... 13
出力をファイルや別のコマンドレットに送る PS C: > Get-Service Out-File FilePath E: Services.txt PS C: > Get-Service Out-GridView Out-GridView は V2 の新機能 14
すでに利用しているツールも続けて使いたい PowerShell 内で利用可能コマンド (com, exe) COM オブジェクト ツールが出力するデータを活用 PowerShell でデータを再利用できるように加工 PowerShell で安全なテキスト解析 PowerShell でラップすることで拡張可能.NET Framework のクラスを直接呼び出せるプログラミングの経験を活用 15
まずシェルで対話的に実験 ユーティリティで結果を結合パイプ Format-* コマンドレット 動作確認した一連のコマンドレットをスクリプトに Start-Transcript による記録も便利 変数 パラメータなどを導入して汎用化関数に書き換え 実運用レベルのスクリプトに改良エラー ログの処理コード署名 社内やコミュニティで共有 16
セキュリティのレベルに応じて スクリプトの実行ポリシーを設定 Set-ExecutionPolicy, Get-ExecutionPolicy 設定の変更には管理者権限が必要グループポリシーで設定可能 4 段階の実行ポリシー Restricted: 制限つき ( オペレーターモード ) インストール時の既定対話形式のみスクリプトは実行できない AllSigned: 署名スクリプトは 信頼された発行元による署名が必要 RemoteSigned: リモートの署名 " インターネットゾーン " のスクリプトは信頼された発行元による署名が必要 Unrestricted: 無制限すべてのスクリプトを実行可能リモートのスクリプトについては常に警告 17
WMI: Windows Management Infrastructure Windows の多くのシステム情報にアクセス可能設定の変更も可能 Get-WmiObject で WMI にアクセス可能 WS-Management (WS-Man) システム管理のための Web Service HTTP, HTTPS 経由でリモートアクセスリモートの WMI にアクセス Windows PowerShell V2 のリモーティングも WS-Man で通信 PowerShell リモート WS-Man WMI API WS-Man ローカル HTTP(s) WMI / プロバイダ 18
管理ツールが Windows PowerShell ベースに Exchange Server 2007 System Center Operations Manager 2007 Virtual Machine Manager 2007 Data Protection Manager 2007 SQL Server 2008 Windows Server 2008 R2, Windows 7 他続々対応 GUI は内部で PowerShell コマンドレットを呼んでいる GUI からも CUI からも同じ作業が可能に GUI と CUI の連続性 1 度きりの作業 1 回目の作業は GUI ( ウィザード ) 繰り返し作業 自動化は CUI ( スクリプト ) 19
GUI CUI セットアップ PowerShell エンジン Exchange コマンドレット設定情報へのアクセス WinForm ADO.NET WinForm 管理インターフェイス PowerShell データプロバイダ MAPI Store レジストリ Active Directory Meta base CUI GUI のいずれからも 同じ作業が可能 20
一度目はウィザードで 以降の繰り返しはスクリプトで 実行されるコマンド 21
22
PowerShell 1.0 2006 年 11 月公開 XP, Windows Server 2003, Vista: ダウンロード Windows Server 2008: 機能の追加 PowerShell 2.0 Windows 7, Windows Server 2008 R2 標準装備既定で有効 無効化 削除はできない Server Core では既定で無効その他の OS 向けに CTP3 公開 (2008 年 12 月 ) XP, Windows Server 2003, Vista, Windows Server 2008 23
リモートマシンの PowerShell にアクセス可能に 1 対 1: 対話利用ローカルと同様に リモートマシンでコマンド実行 1 対多 (fan-out): 大規模な自動化複数のマシンに 同じコマンドを同時に投入非同期の利用 ( 結果はばらばらに戻ってくる ) 多対 1 (fan-in): コマンドを受け入れるサーバーになる対話的な利用ホスティングモデル 関連コマンドレット Invoke-Command New-PSSession Enter-PSSession Import-PSSession 24
PSJOB Start, Get, Wait, Receive, Stop, Remove ローカル実行リモート実行結果はローカルに結果もリモートに対話実行 セッションの指定が可能異なるセッションは異なる環境 ジョブは子ジョブを含むことができる 25
スクリプトの実行環境に制限を付けることにより より安全な環境を利用可能例 : PowerShell をアプリケーションから呼び出す場合 限られた操作のみを許可実行ポリシーよりも さらに詳細な制限が設定可能 制限対象コマンドレットと変数の visibility ( 不可視にできる ) 実行可能なスクリプト アプリケーションのホワイトリスト 26
モジュールは普通のスクリプトと同様 違いは拡張子が.psm1 Import-Module で読み込み Export-ModuleMember が利用可能スクリプトに含めることができるもの実行文変数の割り当て関数スナップインのロードその他 PowerShell のコード複数の.psm1 ファイルをモジュールフォルダーに入れておくことができる モジュール内で別のモジュールを読み込むことも可能 27
PowerShell ベースの GUI を より簡単に作成可能にスクリプティング環境 (IDE) の提供 PowerShell ISE (Interated Scripting Environment) 28
サーバーの運用管理に本格的に活用 Active Directory グループポリシー Server Manager IIS リモートデスクトップサービスフェールオーバークラスタリング Best Practices その他 29
Active Directory Get-, New-, Remove-, Set-ADUser Disable-, Enable-, Search-, Unlock-ADAccount Set-ADAccountExpiration, Set-ADAccountPassword Get-, New-, Remove-, Set-ADGroup Add-, Get-, Remove-ADGroupMember グループポリシー Backup-, Get-, New-, Import-,, Rename-GPO Get-GPOReport Server Manager Get-, Add-, Remove-, WindowsFeature Add-WindowsFeature Remove-WindowsFeature IIS IIS: ドライブ New-, Remove-, Restart-, Start-, Stop-WebAppPool Add-, Backup-, Get-,, Set-WebConfiguration 30
31 31
既定で有効クライアントの管理 バッチ処理クライアントから サーバーをリモート管理 Windows トラブルシューティングプラットフォームトラブルシュートのための共通基盤コントロールパネル > アクションセンター > トラブルシューティング企業内でも 独自のトラブルシューティングツールを PowerShell で作成可能 c: windows diagnostics 32
Windows PowerShell はついに運用管理のメインストリームへ 開発者 スクリプト開発者にも応える豊富な機能 Windows Server 2008 R2 の Windows PowerShell をご活用ください! 33 33
他の章は下記をクリックして PDF 一覧からお入り下さい IT ライブラリー (pdf 100 冊 ) http://itlib1.sakura.ne.jp/ 目次番号 270 番 Windows Server Enterprise 2008 R2 完全解説 ( 再入門 ) 全 26 冊 34