Download presentation
Presentation is loading. Please wait.
1
PowerShell ハンズオン 2012/03/24 第 27 回.NET 勉強会 / ヒーロー島 牟田口大介
2
POWERSHELL ハンズオ ンの準備、諸注意
3
講師自己紹介 牟田口大介 ライターやってます ◦ 2008 Windows PowerShell ポケットリファレンス(技 術評論社) ◦ 2009 PowerShell による Windows サーバ管理術(ソフト バンククリエイティブ、共著) ◦ 2010 ~ PowerShell 的システム管理入門( @IT ) http://www.atmarkit.co.jp/fwin2k/operation/pshsys01/pshsy s01_01.html http://www.atmarkit.co.jp/fwin2k/operation/pshsys01/pshsy s01_01.html Microsoft MVP for PowerShell ◦ 昨年 7 回目の受賞をさせていただきました http://winscript.jp/ http://twitter.com/mutaguchi http://www.facebook.com/daisuke.mutaguchi
4
アジェンダ PowerShell ハンズオンの準備、諸注意 第一部:コンソールを使ってみよう 休憩 第二部:スクリプトを書いてみよう 第三部: PowerShell リモート体験 ◦ ↑ 時間があれば … 本日のまとめと後処理
5
本日の目標 PowerShell コンソールの使い方を理解 する 簡単な PowerShell スクリプトを作成し て実行する方法を理解する PowerShell リモートの概念を理解し、 バックグラウンド処理とリモート処理 の仕方を理解する(時間があれば)
6
ハンズオンの諸注意 PowerShell はシステム管理シェルで、その名 の通り強力です。よって、オペレーションミ スでファイルや設定などを壊してしまう可能 性があります。 PowerShell は UAC をオンにした上で昇格せず に起動してください。(指示があるときを除 く) Get-* 以外のコマンドレットを実行する際は 以下の共通パラメータを使い確認を ◦ -whatIf ( 実行した場合何が起こるか表示 ) ◦ -confirm ( 実行する前に実行確認表示 ) 分からないことがあればいつでも聞いてくだ さい!!
7
準備 PowerShell のインストールは済んでい ますか? (XP,Vista の方! ) ◦ 「スタート」 - 「すべてのプログラム」 - 「アクセサリ」 - 「 Windows PowerShell 」 ◦ まだの方はインストールをお願いします。 検索:「 Windows PowerShell 2.0 」 ◦ PowerShell ISE が起動しない方は休憩後の スクリプト演習までに.NET Framework 3.5 Service Pack 1 のインストールをお願いし ます。 検索:「.NET Framework 3.5 sp1 」
8
コンソールを使ってみよう 第一部
9
コンソールを使ってみよう 起動 ◦ スタートメニュー ◦ Win7 ならタスクバーにピン留め ◦ ファイル名を指定して実行 → powershell.exe まずはコマンドプロンプト感覚でフォル ダの中身を見てみましょう ◦ cd :カレントディレクトリ移動 ◦ dir :カレントディレクトリのファイル一覧表 示 ◦ タブ補完でフォルダ名補完
10
コマンドレットの基本 cd,dir などはコマンドレットです。 これらはエイリアス(別名)です。正式 名称は「動詞 - 名詞」です。 ◦ cd : Set-Location ◦ dir : Get-ChildItem パラメータの指定 ◦ cd FolderName Set-Location -path ".\FolderName" パラメータ名、パラメータ値は省略可能なものがあ る コマンドレット名、パラメータ名もタブ 補完できます。
11
コマンドレットを調べる コマンドレット情報取得 ◦ Get-Command ◦ Get-Command -noun Location ◦ Get-Command *wmi* -type cmdlet ヘルプを引く ◦ Get-Help Set-Location ◦ Set-Location -? ◦ Get-Help Set-Location -detailed ◦ Get-Help -category helpfile ◦ help Set-Location ◦ HTML ヘルプもあります。
12
ファイルシステムの操作 -whatIf と -confirm パラメータで実行確認を! フォルダ作成(作業用フォルダ) ◦ New-Item -type Directory PS ハンズオン カレントフォルダをエクスプローラで開く ◦ Invoke-Item. テキストファイル作成 ◦ Set-Content test.txt -Value てすと! テキストファイルの表示 ◦ Get-Content test.txt ファイルコピー ◦ Copy-Item test.txt test2.txt ファイルリネーム ◦ Rename-Item test2.txt backup.txt ファイル削除 ◦ Remove-Item *.txt
13
レジストリドライブ レジストリドライブを表示する ◦ Get-PSDrive cd HKCU: dir Get-ItemProperty.\Console ファイルシステム以外のリソースに対 しても共通のコマンドレットが使える
14
選択と列挙 コマンドレットが返すオブジェクト配列をパ イプラインを通して後続コマンドレットに。 プロパティとメソッド列挙: Get-Member ◦ dir|Get-Member フィルタ: Where-Object ◦ dir|Where {$_.Extension -eq ".txt"} 選択: Select-Object ◦ dir|Select Name, CreationTime,Extension 列挙: ForEach-Object ◦ dir|ForEach {Write-Host $_.FullName}
15
結果の整形、出力形式、出力先 変更 出力フォーマット変更 ◦ 表: Format-Table ◦ リスト: Format-List ◦ 一覧: Format-Wide 出力テキスト形式変更 ◦ CSV : ConvertTo-CSV ◦ HTML : ConvertTo-HTML ◦ XML : ConvertTo-XML 出力先変更 ◦ ウィンドウ: Out-GridView ◦ ファイル プレーンテキスト: Out-File CSV : Export-CSV XML : Export-CliXml ◦ 文字列化: Out-String
16
各種システム情報を取得 プロセス取得: Get-Process サービス取得: Get-Service イベントログ取得: Get-EventLog ◦ イベントログの種類: Get-EventLog -list Windows イベントログ: Get-WinEvent 必要な情報をフィルタ、選択したり、 出力形式を変更したりしてみよう!
17
システム情報取得・設定 (WMI) WMI を利用するコマンドレット ◦ Get-WmiObject -list ◦ Get-WmiObject Win32_OperatingSystem ◦ Invoke-WmiMethod ◦ Get-HotFix ◦ Restart-Computer
18
第一部のまとめ コンソールにコマンドレットを入力す るとシステム情報の取得や設定ができ る。 色々なリソースを PS ドライブとして扱 え、共通のコマンドレットが使用でき る。 コマンドレットが返すオブジェクト配 列はフィルタや列挙ができる。 コマンドレットの出力先や形式を変更 できる。
19
スクリプトを書いてみよう 第二部
20
ISE でスクリプトを書いてみよう スタートメニュー or タスクバーから起 動 基本はコンソールに入力していたコマ ンドを改行区切りで記述していくだ け! スクリプトペインにスクリプトを書き、 コマンドペインでそれを呼び出し、結 果ペインに結果が表示される。
21
スクリプトを実行してみよう ExecutionPolicy 設定 ◦ Set-ExecutionPolicy RemoteSigned 実行 ◦ ISE で ◦ powershell.exe で ◦ ショートカット作成 ◦ タスクスケジューラ ◦ プロファイル
22
PowerShell 構文 変数 ◦ $ 変数名 文字列 ◦ " 文字列 " か ' 文字列 ' コメント ◦ # コメント行 演算子 ◦ 算術: + - 比較: -eq -lt -le -gt -ge 論理: -or -and 配列 ◦ $a=@(1,2,3 ) ◦ $a[0] if( 条件 ){} foreach($item in $items){} 関数 ◦ function Get-Text{param($text)Write-Host $text}
23
.NET の呼び出し インスタンス作成 ◦ $client=New-Object System.Net.WebClient スタティックメンバ呼び出し ◦ スタティックメンバの調査 [System.Environment]|Get-Member -static ◦ [System.Environment]::OSVersion ◦ [Math]::Sqrt(4)
24
POWERSHELL リモート 体験 第三部
25
リモート準備 PS リモートを有効に(要管理者権限) ◦ Enable-PSRemoting PS リモート接続先を指定(要管理者権 限) ◦ Set-Item WSMan:\localhost\Client\TrustedHosts -value *
26
バックグラウンドジョブ実行 ジョブの開始 ◦ Start-Job { スクリプト } ジョブの結果を受け取る ◦ Get-Job|Wait-Job|Receive-Job
27
リモートコンピュータでコマン ド実行 リモート実行(ここではローカル PC に対してテスト。要管理者権限) ◦ Invoke-Command { スクリプト } - ComputerName コンピュータ名 ローカル PC ならコンピュータ名は「. 」
28
リモートセッション 固定接続セッションをリモートコン ピュータに対して作成(ここではロー カルに対して。要管理者権限) ◦ $session=New-PSSession. Invoke-Command { スクリプト } -Session $session 対話型セッションの開始 ◦ Enter-PSSession $session
29
本日のまとめと後処理
30
設定を元に戻す ExecutionPolicy ◦ Set-ExecutionPolicy restricted PS リモート ◦ Disable-PSRemoting PS リモートの接続先 ◦ Set-Item WSMan:\localhost\Client\TrustedHosts -value ""
31
本日のまとめ PowerShell を用いると Windows システ ム管理が行えます。 コンソールで対話的に実行することも、 スクリプト化して繰り返し処理、自動 処理、定期実行処理なども可能です。 リモート機能を使うとサーバーや PC の管理を遠隔で行えます。複数コン ピュータで同じ処理を同時に行うこと も。
32
Have a happy PowerShell Life! お疲れ様でした!
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.