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.

20170721 初めてのPowerShell

588 vues

Publié le

2017年7月21日グローバルナレッジネットワークセミナー<初めてのPowerShell>資料

Publié dans : Technologie
  • Soyez le premier à commenter

20170721 初めてのPowerShell

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

×