ITライブラリーより(pdf 100冊) · 2018-10-03 · 気軽に始められる...
Transcript of ITライブラリーより(pdf 100冊) · 2018-10-03 · 気軽に始められる...
ITライブラリーより (pdf 100冊)http://itlib1.sakura.ne.jp/
2
他の章は下記をクリックして
PDF一覧からお入り下さい。
ITライブラリー (pdf 100冊)http://itlib1.sakura.ne.jp/
目次番号 270番 Windows Server Enterprise 2008 R2
完全解説 (再入門 ) 全26冊
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
Status Name DisplayName
------ ---- -----------
Stopped NetLogon NetLogon
Running Netman Network Connections
プロパティの名前
プロパティの値
PS> get-service –name “*net*”
動詞 名詞 引数名 引数の値
コマンド 引数
コマンドライン
結果
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 = ServiceNameRequiredServices AliasProperty RequiredServices = ServicesDependedOnDisposed 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 FalseStopped ALG FalseStopped AppIDSvc FalseRunning Appinfo TrueRunning AppMgmt True...
12
指定したプロパティの値で並べ替え
PS C:¥> Get-Service | Sort-Object Status
Status Name DisplayName------ ---- -----------Stopped RSoPProv Resultant Set of Policy ProviderStopped sacsvr Special Administration Console HelperStopped RemoteAccess Routing and Remote AccessStopped RpcLocator Remote Procedure Call (RPC) LocatorStopped 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 InfrastructureWindows の多くのシステム情報にアクセス可能
設定の変更も可能
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
18
管理ツールがWindows PowerShell ベースにExchange Server 2007
System CenterOperations 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
PowerShell エンジン
Exchange コマンドレット
設定情報へのアクセス
Active
Directory
レジストリ Meta
base
MAPI
Store
管理インターフェイス
WinForm
ADO.NET
PowerShell データプロバイダ
WinForm
CUI
GUI
セットアップ
CUI、GUI のいずれからも、同じ作業が可能 20
一度目はウィザードで、以降の繰り返しはスクリプトで。
実行されるコマンド
21
22
PowerShell 1.02006年11月公開
XP, Windows Server 2003, Vista: ダウンロード
Windows Server 2008: 機能の追加
PowerShell 2.0Windows 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
IISIIS: ドライブ
New-, Remove-, Restart-, Start-, Stop-WebAppPool
Add-, Backup-, Get-, …, Set-WebConfiguration30
31 31
既定で有効クライアントの管理、バッチ処理
クライアントから、サーバーをリモート管理
Windows トラブルシューティングプラットフォームトラブルシュートのための共通基盤コントロールパネル > アクションセンター
> トラブルシューティング
企業内でも、独自のトラブルシューティングツールを PowerShell で作成可能
c:¥windows¥diagnostics
32
Windows PowerShell はついに運用管理のメインストリームへ
開発者、スクリプト開発者にも応える豊富な機能
Windows Server 2008 R2 のWindows PowerShell をご活用ください!
33 33
34
他の章は下記をクリックして
PDF一覧からお入り下さい。
ITライブラリー (pdf 100冊)http://itlib1.sakura.ne.jp/
目次番号 270番 Windows Server Enterprise 2008 R2
完全解説 (再入門 ) 全26冊