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

35
ITライブラリーより pdf 100冊) http://itlib1.sakura.ne.jp/

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

Page 1: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

ITライブラリーより (pdf 100冊)http://itlib1.sakura.ne.jp/

Page 2: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

2

他の章は下記をクリックして

PDF一覧からお入り下さい。

ITライブラリー (pdf 100冊)http://itlib1.sakura.ne.jp/

目次番号 270番 Windows Server Enterprise 2008 R2

完全解説 (再入門 ) 全26冊

Page 3: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

Windows PowerShell= コマンドラインシェル

+スクリプティング言語+ .NET Framework

GUI でできることは CUI でも

生産性と管理性の向上システム情報の収集

システムの監視

システム管理の自動化

3

Page 4: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

新しい対話型シェルとスクリプティング言語.NET Framework 上で動作

数多くの組み込みコマンドレット

.NET を活用した新しいスクリプティング言語「オブジェクト・パイプライン」

現在使っているツールも利用可能

現在使っている自動化技術 (COM) も利用可能

次世代のシステム管理アーキテクチャの基礎今後サーバー製品で利用

Windows Server 2008 から標準搭載

4

Page 5: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

気軽に始められるまずは、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

Page 6: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

Status Name DisplayName

------ ---- -----------

Stopped NetLogon NetLogon

Running Netman Network Connections

プロパティの名前

プロパティの値

PS> get-service –name “*net*”

動詞 名詞 引数名 引数の値

コマンド 引数

コマンドライン

結果

6

Page 7: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

コマンドレットのオンラインヘルプを参照

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

Page 8: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

コマンドレットのリストを取得

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

Page 9: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

オブジェクトのメンバー (構成) 一覧

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

Page 10: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

.NET Framework との強力な連携CLR 上で動作

戻り値は常に「オブジェクト」

.NET Framework のクラスを呼び出せる

使えば使うほどに効いてくる特長

データへのアクセスを共通化ドライブに割り当て

ドライブレターだけでなく、文字列を使用可

実運用レベルのスクリプティングパラメータの型、名前の指定、初期化

スクリプトへのデジタル署名

サードパーティ、コミュニティによるサポートスクリプトやツールが充実

10

Page 11: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

文字に見えても、実体は「型」を持った「オブジェクト」整数、浮動小数点

日付、時間

ファイル情報、プロセス情報…

文字ではないので、文字列操作が不要オブジェクトのプロパティとメソッド

パイプにはオブジェクトが流れる

パイプ、プロセス、変数が簡単に扱える例:テキストファイルを読み込んで、変数にセット

変数の内容をファイルに保存

11

Page 12: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

表示カラム (プロパティ) を指定

PS C:¥> Get-Service | Format-Table Status, Name, CanStop

Status Name CanStop------ ---- -------

Stopped AeLookupSvc FalseStopped ALG FalseStopped AppIDSvc FalseRunning Appinfo TrueRunning AppMgmt True...

12

Page 13: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

指定したプロパティの値で並べ替え

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

Page 14: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

出力をファイルや別のコマンドレットに送る

PS C:¥> Get-Service | Out-File –FilePath E:¥Services.txt

PS C:¥> Get-Service | Out-GridView

※ Out-GridView は V2 の新機能

14

Page 15: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

すでに利用しているツールも続けて使いたいPowerShell 内で利用可能コマンド (com, exe)

COM オブジェクト

ツールが出力するデータを活用PowerShell でデータを再利用できるように加工

PowerShell で安全なテキスト解析

PowerShell でラップすることで拡張可能

.NET Framework のクラスを直接呼び出せるプログラミングの経験を活用

15

Page 16: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

まずシェルで対話的に実験

ユーティリティで結果を結合パイプ、Format-* コマンドレット

動作確認した一連のコマンドレットをスクリプトにStart-Transcriptによる記録も便利

変数、パラメータなどを導入して汎用化関数に書き換え

実運用レベルのスクリプトに改良エラー・ログの処理

コード署名

社内やコミュニティで共有

16

Page 17: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

セキュリティのレベルに応じて、スクリプトの実行ポリシーを設定

Set-ExecutionPolicy, Get-ExecutionPolicy

設定の変更には管理者権限が必要

グループポリシーで設定可能

4段階の実行ポリシーRestricted: 制限つき (オペレーターモード)

インストール時の既定

対話形式のみ

スクリプトは実行できない

AllSigned: 署名スクリプトは、信頼された発行元による署名が必要

RemoteSigned: リモートの署名"インターネットゾーン" のスクリプトは信頼された発行元による署名が必要

Unrestricted: 無制限すべてのスクリプトを実行可能

リモートのスクリプトについては常に警告

17

Page 18: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

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

Page 19: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

管理ツールが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

Page 20: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

PowerShell エンジン

Exchange コマンドレット

設定情報へのアクセス

Active

Directory

レジストリ Meta

base

MAPI

Store

管理インターフェイス

WinForm

ADO.NET

PowerShell データプロバイダ

WinForm

CUI

GUI

セットアップ

CUI、GUI のいずれからも、同じ作業が可能 20

Page 21: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

一度目はウィザードで、以降の繰り返しはスクリプトで。

実行されるコマンド

21

Page 22: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

22

Page 23: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

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

Page 24: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

リモートマシンの PowerShell にアクセス可能に1 対 1: 対話利用ローカルと同様に、リモートマシンでコマンド実行

1対多 (fan-out): 大規模な自動化複数のマシンに、同じコマンドを同時に投入

非同期の利用 (結果はばらばらに戻ってくる)

多対 1 (fan-in): コマンドを受け入れるサーバーになる対話的な利用

ホスティングモデル

関連コマンドレットInvoke-Command

New-PSSession

Enter-PSSession

Import-PSSession

24

Page 25: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

PSJOB – Start, Get, Wait, Receive, Stop, Removeローカル実行

リモート実行結果はローカルに

結果もリモートに

対話実行

セッションの指定が可能異なるセッションは異なる環境

ジョブは子ジョブを含むことができる

25

Page 26: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

スクリプトの実行環境に制限を付けることにより、より安全な環境を利用可能例: PowerShell をアプリケーションから呼び出す場合、限られた操作のみを許可

実行ポリシーよりも、さらに詳細な制限が設定可能

制限対象コマンドレットと変数の “visibility” (不可視にできる)

実行可能なスクリプト、アプリケーションのホワイトリスト

26

Page 27: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

モジュールは普通のスクリプトと同様。違いは拡張子が .psm1

Import-Module で読み込み

Export-ModuleMember が利用可能

スクリプトに含めることができるもの実行文

変数の割り当て

関数

スナップインのロード

その他 PowerShell のコード

複数の .psm1 ファイルをモジュールフォルダーに入れておくことができる。

モジュール内で別のモジュールを読み込むことも可能

27

Page 28: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

PowerShell ベースの GUI を、より簡単に作成可能に

スクリプティング環境 (IDE) の提供PowerShell ISE (Interated Scripting Environment)

28

Page 29: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

サーバーの運用管理に本格的に活用Active Directory

グループポリシー

Server Manager

IIS

リモートデスクトップサービス

フェールオーバークラスタリング

Best Practices

その他…

29

Page 30: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

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

Page 31: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

31 31

Page 32: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

既定で有効クライアントの管理、バッチ処理

クライアントから、サーバーをリモート管理

Windows トラブルシューティングプラットフォームトラブルシュートのための共通基盤コントロールパネル > アクションセンター

> トラブルシューティング

企業内でも、独自のトラブルシューティングツールを PowerShell で作成可能

c:¥windows¥diagnostics

32

Page 33: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

Windows PowerShell はついに運用管理のメインストリームへ

開発者、スクリプト開発者にも応える豊富な機能

Windows Server 2008 R2 のWindows PowerShell をご活用ください!

33 33

Page 34: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン

34

他の章は下記をクリックして

PDF一覧からお入り下さい。

ITライブラリー (pdf 100冊)http://itlib1.sakura.ne.jp/

目次番号 270番 Windows Server Enterprise 2008 R2

完全解説 (再入門 ) 全26冊

Page 35: ITライブラリーより(pdf 100冊)  · 2018-10-03 · 気軽に始められる まずは、Get-Help, Get-Command, Get-Member 一貫したコマンドレット体系 標準的な名前付けパターン