Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

はじめてのPowerShell

1 123 vues

Publié le

ビジネス、ITトレーニングのトレノケートの無料セミナー「はじめてのPowerShell」資料

Publié dans : Logiciels
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

はじめてのPowerShell

  1. 1. 初めてのPowerShell トレノケート株式会社 テクニカルトレーニング第1部 横山 哲也
  2. 2. 自己紹介 2  横山 哲也 (トレノケート株式会社) http://www.trainocate.co.jp/  1994年~ ITプロ向けWindows関連教育  2003年~ マイクロソフトMVP  2017 Cloud and Datacenter Management  好きなPowerShellコマンドレット  ForEach-Object  最近の著書・雑誌記事  ひと目でわかるAzure 「基本から学ぶサーバー&ネットワーク構築」改訂新版(著)日経BP  グループポリシー逆引きリファレンス厳選98(監修・共著)日経BP  ソーシャルメディア  ブログ: ヨコヤマ企画 http://yp.g20k.jp/
  3. 3. 概要 3 1. シェルに求められること 2. PowerShellの特徴 3. コマンドレット操作 4. PowerShell基本文法 5. オブジェクト操作のためのコマンドレット 6. スクリプト実行ポリシー 7. PowerShellモジュール
  4. 4. 1. シェルに求められること 4  GUI vs. CUI  対話処理 vs. バッチ処理  従来のシェルとPowerShell
  5. 5. シェルに求められること: GUI vs. CUI 5  GUI(Graphical User Interface)  直感的に分かる  繰り返し処理に向かない  ミスが多い(手が滑った等)  CUI(Character User Interface)  事前学習が必要  繰り返し処理が容易  致命的なミスが少ない (タイプミスはエラー)
  6. 6. シェルに求められること: 対話処理 vs. バッチ処理 6  対話処理  その場で操作できる  どんな操作をしたか記憶にないことがある  バッチ処理  まとめて操作できる  繰り返し処理ができる  自動実行できる  ファイルを作成する必要がある(記録に残しやすい)
  7. 7. シェルに求められること: 従来のシェルとPowerShell 7 Windows Explorer コマンド プロンプト CMD.EXE Windows Scripting Host(WSH) Windows PowerShell UI GUI CUI CUI CUI 対話処理 ○ △ × ○ バッチ処理 × ○ ○ ○ 制御構造 × △ ○ ○ 命令体系 ― 不統一 VBScript JScript(JavaScript) 統一 オブジェクト × × ○ ○ 開発環境 × × Visual Studio Microsoft Office Visual Studio ISE(標準)
  8. 8. 2. PowerShellの特徴 8  .NET Frameworkと統合  .NET Frameworkの全オブジェクトにアクセス可能  COMオブジェクトへのアクセス可能  オブジェクト指向  実行結果はオブジェクトで出力(テキストではない)  統一したコマンド表現  コマンドレット  学習が容易  スクリプト言語として利用可能  スクリプト編集ツール  デバッグ機能  セキュリティを考慮
  9. 9. 3. コマンドレット操作 9  PowerShellの起動  コマンドレットの形式  自動補完  コメント  行継続  変数  エイリアス(別名)  困ったときは(ヘルプ)
  10. 10. コマンドレット操作: PowerShellの起動 10  スタートメニューから  コマンドラインから  PowerShell  PowerShell_ISE
  11. 11. コマンドレット操作: コマンドレットの形式 11  動詞-名詞 [-パラメータ [値]] [-スイッチパラメータ] …  スイッチパラメータを省略できる場合も  動詞は機能、名詞は操作の対象  大小文字は区別しない Get-ChildItem -Path c:¥temp -Recurse 子要素の取得 ファイルパス指定 ファイルパス 再帰指定 Get-ChildItem c:¥temp -Recurse Get-ChildItemは、第1引数に –Path が指定されたと仮定
  12. 12. コマンドレット操作: 自動補完 12  タブキーで自動補完  タブ…次の候補  Shift-タブ…前の候補  自動補完の対象  コマンドレット名  オプションパラメーター  キーワード  ファイルとフォルダー TABGet-Chi TAB コマンド補完 ファイルパス補完 C:¥Us TAB オプション補完 -Rec
  13. 13. コマンドレット操作: コメント 13  #以降の行はコメント扱い # ファイル保守用コマンド (2017/07/25) # by YOKOYAMA Copy-Item C:¥APP¥*.* C:¥BACKUP
  14. 14. コマンドレット操作: 行継続 14  ` (バッククォート)…行継続記号  1行が画面に収まりきらない場合  コードの可読性を向上 Copy-Item C:¥APP¥*.* C:¥BACKUP ` -Recurse ` -Force
  15. 15. コマンドレット操作: 変数 15  変数は $ からはじめる  コマンドレットの結果(オブジェクト)を格納  暗黙の配列指定  複数の値を代入すると配列になる $Files = Get-ChildItem Write-Output $Files[0] Write-Output $Files[1] $Files = Get-ChildItem
  16. 16. コマンドレット操作: エイリアス(別名) 16  フォルダとファイルの一覧表示  Get-ChildItem –Path c:¥windows  エイリアスの表示…Get-Alias  従来のコマンドを使用可能にするため (ただし文法はPowerShellの規則に従う)  例: dirはGet-Child-Itemのエイリアス  ○ dir………………  × dir /s……………  ○ dir –Recurse… Get-ChildItem Get-ChildItem /s Get-ChildItem -Recuse
  17. 17. コマンドレット操作: 困ったときは 17  コマンドレットの一覧表示…Get-Command  ヘルプ…Get-Help (エイリアスはHelp)  Get-Help Get-EventLog  Get-Help Get-EventLog -Detailed…詳細説明  Get-Help Get-EventLog -Examples…使用例の表示
  18. 18. 4. PowerShell基本文法 18  オブジェクト  プロパティとメソッド  変数  PowerShellの演算子  スクリプトブロック  関数  繰り返しと条件分岐
  19. 19. PowerShell基本文法: オブジェクト 19  オブジェクト = データ + 機能(手続き)  PowerShell コマンドレットの実行結果  オブジェクトの種類に応じた型を持つ  型に対応したデータと機能(手続き)を持つ  デフォルト表示文字列を持つ (実行結果の表示などに利用) データ データ データ
  20. 20. PowerShell基本文法: プロパティとメソッド 20  プロパティ(データ)  オブジェクトが保持する内部データへのアクセス窓口  オブジェクト.プロパティ名で指定 (ピリオドで区切る)  メソッド(手続き)  オブジェクトが持つ機能  オブジェクト.メソッド名(引数1, 引数2, …)  オブジェクトとメソッドに依存した0以上の引数 データ データ データ プロパティ メソッド
  21. 21. PowerShell基本文法: プロパティとメソッド(使用例とパイプ処理) 21  日付オブジェクトのプロパティとメソッド 1. 現在日時のオブジェクトを取得 - $currentDate = Get-Date 2. 取得したオブジェクトのメンバを表示 - Get-Member –InputObject $currentDate 3. Yearプロパティから年データを取得 - $currentDate.Year 4. AddDaysメソッドで10日後の日付を計算 - $currentDate.AddDays(10)  パイプ…出力オブジェクトを次のコマンドレットの入力に  $currentDate | Get-Member
  22. 22. PowerShell基本文法: 変数 22  変数名…$で始まり、英数字_(アンダースコア)が続く  オブジェクトを格納  動的型変換  明示的な型指定…[型名]変数名  型名は.NET Frameworkに準拠(エイリアスあり)  配列を代入すると自動的に配列になる  $x = Get-ChildItem …カレントディレクトリのファイルすべて  $x[0]…最初の要素(配列でない場合も可)  $x.Length…要素の数 $x[0] $x[1] $x[2] $x[3] $x[4] $x $x.Lengthは5
  23. 23. PowerShell基本文法: PowerShellの演算子 23  算術演算子…数値に関する演算  +、-、*、/、%  例: $x=40+20  文字列演算子…文字列操作、検索、置き換え  +(連結)、*(文字列反復)、-replace(文字列置換)、 -like(ワイルドカードマッチ)など  例1: $x = "Hello"+"World“  例2: $x = "abcd" –replace "bc","123"  代入演算子…変数への値の代入  =(代入)、+=(追加)、-=(削除)、*=(乗算)、/=(除算)  例1: $a=10  例2: $a+=5 …… $a = $a+5
  24. 24. PowerShell基本文法: PowerShellの演算子(続き) 24  比較演算子…等価、大小関係  -eq(=)、-ne(≠)、-gt(>)、-lt(<)、-ge(≧)、-le(≦)など  論理演算子…論理積、論理和、排他的論理和、否定  -and(論理積)、-or(論理和)、-xor(排他的論理和)、 -not(否定)  ビット演算子…ビット単位の論理演算  -band(ビット単位の論理積)、 -bor(ビット単位の論理和)など  その他  Help About_Operatorsで確認可能
  25. 25. 5. オブジェクト操作のためのコマンドレット 25  ForEach-Object  Where-Object  Sort-Object  Select-Object
  26. 26. オブジェクト操作のためのコマンドレット: ForEach-Object 26  パイプを通して入力された各オブジェクトにアクセス  アクセスしたオブジェクトは $_ 自動変数に格納される Get-ChildItem -Path C:¥Windows¥*.exe | ForEach-Object {$_.Name} オブジェクト $_ $_ $_ $_ 各オブジェクトに アクセス
  27. 27. オブジェクト操作のためのコマンドレット: Where-Object 27  パイプ入力から、指定条件にあるオブジェクトを選択  アクセスしたオブジェクトは $_ 自動変数に格納  比較演算を使用して選択  以下の表記も可 Get-ChildItem -Path C:¥Windows¥* | Where-Object{ $_.Length –ge 1MB } オブジェクト $_ $_ $_ $_ 各オブジェクトに アクセス Get-ChildItem -Path C:¥Windows¥* |? Length –ge 1MB
  28. 28. オブジェクト操作のためのコマンドレット: Sort-Object 28  パイプ入力から、指定プロパティ値に基づき並べ替える  スイッチパラメータ  -Descending…降順に並べ替え(既定は昇順)  -Unique…重複を取り除き、一意なメンバーを返す Get-ChildItem -Path C:¥Windows¥* | Sort-Object -Property Length -Descending オブジェクト 各オブジェクトに アクセス 4 3 2 1
  29. 29. オブジェクト操作のためのコマンドレット: Select-Object 29  パイプ入力から、各オブジェクトの指定プロパティを選択  スイッチパラメータ  -First…オブジェクト配列の先頭からの個数を指定  -Last…オブジェクト配列の末尾からの個数を指定  -Unique…重複したプロパティ値を取り除く Get-ChildItem -Path C:¥Windows¥* | Select-Object Name , Length オブジェクト Name,Length 各オブジェクトに アクセス Name,Length Name,Length
  30. 30. 6. スクリプト実行ポリシー 30  不用意にスクリプトを実行しない仕組み  実行ポリシーの種類  Restricted(既定)  AllSigned  Remote Signed(おすすめ)  Unrestricted  Bypass  スコープ  Process  CurrentUser  LocalMachine(既定)  ポリシーの変更コマンドレット[管理者として実行]  Set-ExecutionPolicy
  31. 31. 7. PowerShellモジュール 31  PowerShellの拡張機能  Import-Moduleコマンドレットで組み込み  Windows Server 2012以降は自動実行(一部例外あり) - 例: Import-Module ServerManager  モジュール名はフォルダー名(大文字小文字の区別なし)  主なモジュール  ServerManager…サーバー管理  ActiveDirectory…Active Directoryドメインサービス  Hyper-V…Hyper-V仮想マシン環境管理  AzureRM…Microsoft Azure管理
  32. 32. PowerShellモジュール: ServerManager モジュール 32  Windows Server用コマンドレット  役割や機能の追加、削除を行う  Import-Module ServerManager  例:  Get-WindowsFeature  Add-WindowsFeature  Remove-WindowsFeature
  33. 33. PowerShellモジュール: Active Directory モジュール 33  Active Directory用コマンドレット  名詞がADで始まる  Get-Command -Noun AD*  Import-Module ActiveDirectory PS C:¥> Get-Command -Noun AD* | Select-Object Name Name ---- Add-ADComputerServiceAccount Add-ADDomainControllerPasswordReplicationPolicy Add-ADFineGrainedPasswordPolicySubject Add-ADGroupMember Add-ADPrincipalGroupMembership Clear-ADAccountExpiration Disable-ADAccount …
  34. 34. PowerShellモジュール: Active Directory モジュール(例) 34  ドメインユーザーの作成  New-ADUser  ドメインユーザー情報の取得  Get-ADUser  ドメインユーザーの設定  Set-ADUser  ドメインユーザーのグループ追加と削除  Add-ADPrincipalGroupMembership  Remove-ADPrincipalGroupMembership  操作マスターの移動(1コマンドで全役割を移動可能)  Move-ADDirectoryServerOperationMasterRole
  35. 35. PowerShellモジュール: Hyper-Vモジュール 35  Hyper-V用コマンドレット セット  名詞がVMで始まる  Get-Command -Noun VM*  Import-Module Hyper-V  例:  New-VM  Start-VM  Stop-VM  Set-VMSwitch  動作中の全仮想マシンをシャットダウン Get-VM |? State -eq “Running“ | ForEach-Object {Stop-VM $_}
  36. 36. PowerShellモジュール: AzureRMモジュール Trainocate Japan, Ltd. All rights reserved. 36  Azure(リソースマネージャー)用コマンドレット セット  参考: クラシックモデルは「Azure」モジュール  名詞がAzureRMで始まる  Get-Command -Noun AzureRM*  Install-Module AzureRM  更新はUpdate-Module AzureRM  例:  Add-AzureRmAccount…Azureへログオン  Select-AzureRmSubscription…サブスクリプションの指定  Start-AzureRmVM…Azure仮想マシンの起動  Stop-AzureRmVM… Azure仮想マシンの停止
  37. 37. まとめ 37 1. シェルに求められること 2. PowerShellの特徴 3. コマンドレット操作 4. PowerShell基本文法 5. オブジェクト操作のためのコマンドレット 6. スクリプト実行ポリシー 7. PowerShellモジュール
  38. 38. トレノケートのサービス紹介 38  PowerShell関連の教育コース  Windows PowerShell コマンド・スクリプト入門 ~Windows Server 2012R2/2016対応~  Windows PowerShell 実践 ~Windows Server 2016対応~  Windows Serverの管理系教育コース  Windows Server 2016 のインストール、 ストレージとコンピュート(#23740)  Windows Server 2016 の ID (#23742)  Windows Server 2016 のネットワーク (#23741)  Windows Server 2016 システム管理基礎 (前編) (後編)  Windows Server 2012 システム管理基礎 (前編) (後編)

×