ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる...

Post on 22-Jul-2020

1 views 0 download

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冊