Weitere ähnliche Inhalte Ähnlich wie はじめてのPowerShell (20) Mehr von Trainocate Japan, Ltd. (20) はじめてのPowerShell2. 自己紹介
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/
5. シェルに求められること: GUI vs. CUI
5
GUI(Graphical User Interface)
直感的に分かる
繰り返し処理に向かない
ミスが多い(手が滑った等)
CUI(Character User Interface)
事前学習が必要
繰り返し処理が容易
致命的なミスが少ない
(タイプミスはエラー)
6. シェルに求められること: 対話処理 vs. バッチ処理
6
対話処理
その場で操作できる
どんな操作をしたか記憶にないことがある
バッチ処理
まとめて操作できる
繰り返し処理ができる
自動実行できる
ファイルを作成する必要がある(記録に残しやすい)
8. 2. PowerShellの特徴
8
.NET Frameworkと統合
.NET Frameworkの全オブジェクトにアクセス可能
COMオブジェクトへのアクセス可能
オブジェクト指向
実行結果はオブジェクトで出力(テキストではない)
統一したコマンド表現
コマンドレット
学習が容易
スクリプト言語として利用可能
スクリプト編集ツール
デバッグ機能
セキュリティを考慮
11. コマンドレット操作: コマンドレットの形式
11
動詞-名詞 [-パラメータ [値]] [-スイッチパラメータ] …
スイッチパラメータを省略できる場合も
動詞は機能、名詞は操作の対象
大小文字は区別しない
Get-ChildItem -Path c:¥temp -Recurse
子要素の取得 ファイルパス指定 ファイルパス 再帰指定
Get-ChildItem c:¥temp -Recurse
Get-ChildItemは、第1引数に –Path が指定されたと仮定
12. コマンドレット操作: 自動補完
12
タブキーで自動補完
タブ…次の候補
Shift-タブ…前の候補
自動補完の対象
コマンドレット名
オプションパラメーター
キーワード
ファイルとフォルダー
TABGet-Chi TAB
コマンド補完 ファイルパス補完
C:¥Us TAB
オプション補完
-Rec
14. コマンドレット操作: 行継続
14
` (バッククォート)…行継続記号
1行が画面に収まりきらない場合
コードの可読性を向上
Copy-Item C:¥APP¥*.* C:¥BACKUP `
-Recurse `
-Force
15. コマンドレット操作: 変数
15
変数は $ からはじめる
コマンドレットの結果(オブジェクト)を格納
暗黙の配列指定
複数の値を代入すると配列になる
$Files = Get-ChildItem
Write-Output $Files[0]
Write-Output $Files[1]
$Files = Get-ChildItem
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
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. 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
30. 6. スクリプト実行ポリシー
30
不用意にスクリプトを実行しない仕組み
実行ポリシーの種類
Restricted(既定)
AllSigned
Remote Signed(おすすめ)
Unrestricted
Bypass
スコープ
Process
CurrentUser
LocalMachine(既定)
ポリシーの変更コマンドレット[管理者として実行]
Set-ExecutionPolicy
31. 7. PowerShellモジュール
31
PowerShellの拡張機能
Import-Moduleコマンドレットで組み込み
Windows Server 2012以降は自動実行(一部例外あり)
- 例: Import-Module ServerManager
モジュール名はフォルダー名(大文字小文字の区別なし)
主なモジュール
ServerManager…サーバー管理
ActiveDirectory…Active Directoryドメインサービス
Hyper-V…Hyper-V仮想マシン環境管理
AzureRM…Microsoft Azure管理
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. PowerShellモジュール: Active Directory モジュール(例)
34
ドメインユーザーの作成
New-ADUser
ドメインユーザー情報の取得
Get-ADUser
ドメインユーザーの設定
Set-ADUser
ドメインユーザーのグループ追加と削除
Add-ADPrincipalGroupMembership
Remove-ADPrincipalGroupMembership
操作マスターの移動(1コマンドで全役割を移動可能)
Move-ADDirectoryServerOperationMasterRole
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仮想マシンの停止
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 システム管理基礎 (前編) (後編)