Presentation is loading. Please wait.

Presentation is loading. Please wait.

PowerShell ハンズオン 2012/03/24 第 27 回.NET 勉強会 / ヒーロー島 牟田口大介.

Similar presentations


Presentation on theme: "PowerShell ハンズオン 2012/03/24 第 27 回.NET 勉強会 / ヒーロー島 牟田口大介."— Presentation transcript:

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! お疲れ様でした!


Download ppt "PowerShell ハンズオン 2012/03/24 第 27 回.NET 勉強会 / ヒーロー島 牟田口大介."

Similar presentations


Ads by Google