PowerShell パイプラインの使用
演習 1:データの選択、並べ替え、表示
タスク 1: 現在の日付を表示する
- LON-CL1 で、[スタート] を選択して、「powersh」と入力します。
- 検索結果で、Windows PowerShell を右クリックするか、そのコンテキスト メニューをアクティブにしてから、[管理者として実行] を選択します。
-
**[管理者:Windows PowerShell]** ウィンドウで、次のコマンドを入力し、Enter キーを押します。
help *date*
注: Get-Date コマンドに注目してください。
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-Date | Get-Member
注: DayOfYear プロパティに注目してください。
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-Date | Select-Object –Property DayOfYear
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-Date | Select-Object -Property DayOfYear | fl
タスク 2: インストールされている修正プログラムに関する情報を表示する
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-Command *hotfix*
注: Get-Hotfix コマンドに注目してください。
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-Hotfix | Get-Member
注: Hotfix オブジェクトのプロパティが表示されます。 必要に応じて、Get-Hotfix を実行し、通常はそれらのプロパティに表示される値の一部を確認します。
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-Hotfix | Select-Object –Property HotFixID,InstalledOn,InstalledBy
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-Hotfix | Select-Object –Property HotFixID,@{n='HotFixAge';e={(New-TimeSpan -Start $PSItem.InstalledOn).Days}},InstalledBy
タスク 3: DHCP サーバーから使用可能なスコープのリストを表示する
-
コンソールで、次のコマンドを入力して Enter キーを押します。
help *scope*
注: Get-DHCPServerv4Scope コマンドに注目してください。
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Help Get-DHCPServerv4Scope –ShowWindow
注: 使用可能なパラメーターに注目してください。
- [Get-DHCPServerv4Scope] ウィンドウを閉じます。
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-DHCPServerv4Scope –ComputerName LON-DC1
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-DHCPServerv4Scope –ComputerName LON-DC1 | Select-Object –Property ScopeId,SubnetMask,Name | fl
タスク 4: 有効な Windows ファイアウォール規則の並べ替えられたリストを表示する
-
コンソールで、次のコマンドを入力して Enter キーを押します。
help *rule*
注: Get-NetFirewallRule コマンドに注目してください。
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-NetFirewallRule
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Help Get-NetFirewallRule –ShowWindow
- [Get-NetFirewallRule ヘルプ] ウィンドウを閉じます。
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-NetFirewallRule –Enabled True
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-NetFirewallRule –Enabled True | Format-Table -wrap
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-NetFirewallRule –Enabled True | Select-Object –Property DisplayName,Profile,Direction,Action | Sort-Object –Property Profile, DisplayName | ft -GroupBy Profile
タスク 5: ネットワーク近隣ノードの並べ替えられたリストを表示する
-
コンソールで、次のコマンドを入力して Enter キーを押します。
help *neighbor*
注: Get-NetNeighbor コマンドに注目してください。
-
コンソールで、次のコマンドを入力して Enter キーを押します。
help Get-NetNeighbor –ShowWindow
- [Get-NetNeighbor ヘルプ] ウィンドウを閉じます。
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-NetNeighbor
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-NetNeighbor | Sort-Object –Property State
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-NetNeighbor | Sort-Object –Property State | Select-Object –Property IPAddress,State | Format-Wide -GroupBy State -AutoSize
タスク 6: DNS 名前解決キャッシュからの情報を表示する
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Test-NetConnection LON-DC1
-
コンソールで、次のコマンドを入力して Enter キーを押します。
help *cache*
注: Get-DnsClientCache コマンドに注目してください。
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-DnsClientCache
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-DnsClientCache | Select Name,Type,TimeToLive | Sort Name | Format-List
注: 型データからは、期待した内容 (A や CNAME など) が返されないことに注目してください。 代わりに、生の数値データが返されます。 各数値はレコードの型に直接マップされます。マップ (1= A、5 = CNAME など) がわかっている場合は、それらの型をフィルター処理できます。 このモジュールの後半では、さらにフィルターを追加して、数値とそれに対応するレコードの型を決定する方法について学習します。 状態データなど、他の返されるデータでも同じような状況になることがわかります。
-
開いているすべてのウィンドウを閉じます。
演習 1 の結果
この演習を完了すると、環境からの管理情報を含むカスタム レポートがいくつか生成されているはずです。
演習 2: オブジェクトのフィルター処理
タスク 1: Active Directory の Users コンテナー内のすべてのユーザーのリストを表示する
- LON-CL1 で、[スタート] を選択してから、「PowerShell」と入力します。
- 検索結果で、Windows PowerShell を右クリックするか、そのコンテキスト メニューをアクティブにしてから、[管理者として実行] を選択します。
-
**[管理者:Windows PowerShell]** ウィンドウで、次のコマンドを入力し、Enter キーを押します。
help *user*
注: Get-ADUser コマンドに注目してください。
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-Help Get-ADUser –ShowWindow
注: -Filter パラメーターが必須であることに注目してください。 コマンドの例を確認します。
- [Get-ADUser ヘルプ] ウィンドウを閉じます。
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-ADUser –Filter * | ft
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-ADUser –Filter * -SearchBase "cn=Users,dc=Adatum,dc=com" | ft
タスク 2: イベント ID 4624 のセキュリティ イベント ログ エントリを表示するレポートを作成する
-
**[管理者:Windows PowerShell]** ウィンドウで、次のコマンドを入力し、Enter キーを押します。
Get-EventLog -LogName Security |
Where EventID -eq 4624 | Measure-Object | fw
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-EventLog -LogName Security | Where EventID -eq 4624 | Select TimeWritten,EventID,Message
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-EventLog -LogName Security | Where EventID -eq 4624 | Select TimeWritten,EventID,Message -Last 10 | fl
タスク 3: コンピューターにインストールされている暗号化証明書のリストを表示する
-
**[管理者:Windows PowerShell]** ウィンドウで、次のコマンドを入力し、Enter キーを押します。
Get-ChildItem -Path CERT: -Recurse
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-ChildItem -Path CERT: -Recurse | Get-Member
-
コンソール ウィンドウで、次のコマンドを入力して Enter キーを押します。
Get-ChildItem -Path CERT: -Recurse | Where HasPrivateKey -eq $False | Select-Object -Property FriendlyName,Issuer | fl
または:
Get-ChildItem -Path CERT: -Recurse | Where { $PSItem.HasPrivateKey -eq $False } | Select-Object -Property FriendlyName,Issuer | fl
-
コンソール ウィンドウで、次のコマンドを入力して Enter キーを押します。
Get-ChildItem -Path CERT: -Recurse | Where { $PSItem.HasPrivateKey -eq $False -and $PSItem.NotAfter -gt (Get-Date) -and $PSItem.NotBefore -lt (Get-Date) } | Select-Object -Property NotBefore,NotAfter, FriendlyName,Issuer | ft -wrap
タスク 4: 領域が不足しているディスク ボリュームのレポートを作成する
-
**[管理者:Windows PowerShell]** ウィンドウで、次のコマンドを入力し、Enter キーを押します。
Get-Volume
注: コマンド名がわからない場合は、Help *ボリューム* を実行して検出できます。
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-Volume | Get-Member
注: SizeRemaining プロパティに注目してください。
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-Volume | Where-Object { $PSItem.SizeRemaining -gt 0 } | fl
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-Volume | Where-Object { $PSItem.SizeRemaining -gt 0 -and $PSItem.SizeRemaining / $PSItem.Size -lt .99 }| Select-Object DriveLetter, @{n='Size';e={'{0:N2}' -f ($PSItem.Size/1MB)}}
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-Volume | Where-Object { $PSItem.SizeRemaining -gt 0 -and $PSItem.SizeRemaining / $PSItem.Size -lt .1 }
注: コンピューターの各ボリュームの空き領域が 10% を超える場合、このコマンドではラボ コンピューターに出力が生成されない可能性があります。
タスク 5: 指定されたコントロール パネル項目を表示するレポートを作成する
-
**[管理者:Windows PowerShell]** ウィンドウで、次のコマンドを入力し、Enter キーを押します。
help *control*
注: Get-ControlPanelItem コマンドに注目してください。
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-ControlPanelItem
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-ControlPanelItem –Category 'System and Security' | Sort Name
注: Where-Object を使用する必要がないことに注目してください。
-
コンソールで、次のコマンドを入力して Enter キーを押します。
Get-ControlPanelItem -Category 'System and Security' | Where-Object -FilterScript {-not ($PSItem.Category -notlike '*System and Security*')} | Sort Name
演習 2 の結果
この演習を完了すると、フィルター処理を使用して、指定されたデータと要素のみを含む管理情報のリストを生成したことになります。