ITライブラリーより (pdf 100冊)
他の章は下記をクリックして
PDF一覧からお入り下さい。
ITライブラリー (pdf 100冊)
http://itlib1.sakura.ne.jp/
目次番号 270番 Windows Server Enterprise 2008 R2 完全解説 (再入門 )
全26冊
Windows PowerShell
= コマンドラインシェル
+ スクリプティング言語
+ .NET Framework
GUI でできることは CUI でも
生産性と管理性の向上
システム情報の収集
システムの監視
システム管理の自動化
新しい対話型シェルとスクリプティング言語
.NET Framework 上で動作
数多くの組み込みコマンドレット
.NET を活用した新しいスクリプティング言語
「オブジェクト・パイプライン」現在使っているツールも利用可能
現在使っている自動化技術 (COM) も利用可能
次世代のシステム管理アーキテクチャの基礎
今後サーバー製品で利用
Windows Server 2008 から標準搭載
気軽に始められる
まずは、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
Status Name DisplayName --- ---- ---Stopped NetLogon NetLogon
Running Netman Network Connections
プロパティの名前
プロパティの値
PS> get-service –name “*net*”
動詞 名詞 引数名 引数の値
コマンド 引数
コマンドライン
コマンドレットのオンラインヘルプを参照
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[]>]
コマンドレットのリストを取得
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...
オブジェクトのメンバー (構成) 一覧
PS C:¥> Get-Service | Get-Member
TypeName: System.ServiceProcess.ServiceController Name MemberType Definition
---- ---
---Name AliasProperty ---Name = Service---Name
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()
.NET Framework との強力な連携 CLR 上で動作 戻り値は常に「オブジェクト」 .NET Framework のクラスを呼び出せる 使えば使うほどに効いてくる特長 データへのアクセスを共通化 ドライブに割り当て ドライブレターだけでなく、文字列を使用可 実運用レベルのスクリプティング パラメータの型、名前の指定、初期化 スクリプトへのデジタル署名 サードパーティ、コミュニティによるサポート スクリプトやツールが充実
文字に見えても、実体は「型」を持った「オブジェクト」
整数、浮動小数点 日付、時間 ファイル情報、プロセス情報…文字ではないので、文字列操作が不要
オブジェクトのプロパティとメソッド パイプにはオブジェクトが流れるパイプ、プロセス、変数が簡単に扱える
例:テキストファイルを読み込んで、変数にセット 変数の内容をファイルに保存表示カラム (プロパティ) を指定
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 ...
指定したプロパティの値で並べ替え
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
出力をファイルや別のコマンドレットに送る
PS C:¥> Get-Service | Out-File –FilePath E:¥Services.txt PS C:¥> Get-Service | Out-GridView
すでに利用しているツールも続けて使いたい
PowerShell 内で利用可能
コマンド (com, exe) COM オブジェクトツールが出力するデータを活用
PowerShell でデータを再利用できるように加工
PowerShell で安全なテキスト解析
PowerShell でラップすることで拡張可能
.NET Framework のクラスを直接呼び出せる
まずシェルで対話的に実験 ユーティリティで結果を結合 パイプ、Format-* コマンドレット 動作確認した一連のコマンドレットをスクリプトに Start-Transcript による記録も便利 変数、パラメータなどを導入して汎用化 関数に書き換え 実運用レベルのスクリプトに改良 エラー・ログの処理 コード署名 社内やコミュニティで共有
セキュリティのレベルに応じて、スクリプトの実行ポリシーを設定 Set-ExecutionPolicy, Get-ExecutionPolicy 設定の変更には管理者権限が必要 グループポリシーで設定可能 4段階の実行ポリシー Restricted: 制限つき (オペレーターモード) インストール時の既定 対話形式のみ スクリプトは実行できない AllSigned: 署名 スクリプトは、信頼された発行元による署名が必要 RemoteSigned: リモートの署名 "インターネットゾーン" のスクリプトは信頼された発行元による署名が必要 Unrestricted: 無制限
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
WS-Man
WMI /
プロバイダ HTTP(s) リモートWMI API
管理ツールが Windows PowerShell ベースに
Exchange Server 2007System 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 からも同じ作業が可能に
PowerShell エンジン Exchange コマンドレット 設定情報へのアクセス Active Directory レジストリ Meta base MAPI Store 管理インターフェイス WinForm ADO.NET PowerShell データプロバイダ WinForm CUI GUI セットアップ
一度目はウィザードで、以降の繰り返しはスクリプトで。
実行される
コマンド
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リモートマシンの PowerShell にアクセス可能に
1 対 1: 対話利用 ローカルと同様に、リモートマシンでコマンド実行 1 対多 (fan-out): 大規模な自動化 複数のマシンに、同じコマンドを同時に投入 非同期の利用 (結果はばらばらに戻ってくる) 多対 1 (fan-in): コマンドを受け入れるサーバーになる 対話的な利用 ホスティングモデル関連コマンドレット
Invoke-Command New-PSSession Enter-PSSession Import-PSSessionPSJOB – Start, Get, Wait, Receive, Stop, Remove
ローカル実行
リモート実行
結果はローカルに 結果もリモートに 対話実行セッションの指定が可能
異なるセッションは異なる環境
ジョブは子ジョブを含むことができる
スクリプトの実行環境に制限を付けることにより、
より安全な環境を利用可能
例: PowerShell をアプリケーションから呼び出す場合、
限られた操作のみを許可
実行ポリシーよりも、さらに詳細な制限が設定可能
制限対象
コマンドレットと変数の “visibility” (不可視にできる)
実行可能なスクリプト、アプリケーションの
ホワイトリスト
モジュールは普通のスクリプトと同様。違いは
拡張子が .psm1 Import-Module で読み込み Export-ModuleMember が利用可能スクリプトに含めることができるもの
実行文 変数の割り当て 関数 スナップインのロード その他 PowerShell のコード複数の .psm1 ファイルをモジュールフォルダーに入れてお
くことができる。
PowerShell ベースの GUI を、より簡単に作成可能に
スクリプティング環境 (IDE) の提供
サーバーの運用管理に本格的に活用
Active Directory
グループポリシー
Server Manager
IIS
リモートデスクトップサービス
フェールオーバークラスタリング
Best Practices
その他…
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: ドライブ
既定で有効
クライアントの管理、バッチ処理
クライアントから、サーバーをリモート管理
Windows トラブルシューティング
プラットフォーム
トラブルシュートのための共通基盤
コントロールパネル > アクションセンター > トラブルシューティング 企業内でも、独自のトラブルシューティング ツールを PowerShell で作成可能c:¥windows¥diagnostics
Windows PowerShell は
ついに運用管理のメインストリームへ
開発者、スクリプト開発者にも
応える豊富な機能
Windows Server 2008 R2 の
Windows PowerShell をご活用ください!
他の章は下記をクリックして
PDF一覧からお入り下さい。
ITライブラリー (pdf 100冊)
http://itlib1.sakura.ne.jp/
目次番号 270番 Windows Server Enterprise 2008 R2 完全解説 (再入門 )