|
ここでは、Scripting PowerShell Group-Object Cmdlet のサンプルを紹介します。
- Get-Process | Group-Object company | Sort-Object count -descending
次の事例を実行してみよう。
# http://www.computerperformance.co.uk/powershell/powershell_group_object.htm
# PowerShell Group Example
Clear-Host
# Get-Process | Group-Object company
# Compared with:
Get-Process | Group-Object company | Sort-Object count -descending
稼働中のプロセスを取得して、company で、グルーピングして、count で、降順に並び変えて、表示します。
それでは、実行してみましょう。下記のような結果が得られます。
Count Name Group
----- ---- -----
58 Microsoft Corporation {System.Diagnostics.Process (ApplicationFrameHost), Syst...
9 {System.Diagnostics.Process (csrss), System.Diagnostics....
5 SEIKO EPSON CORPORATION {System.Diagnostics.Process (E_FATINJJ), System.Diagnost...
2 {System.Diagnostics.Process (Microsoft.Photos), System.D...
2 Apple Inc. {System.Diagnostics.Process (AppleMobileDeviceService), ...
2 Oracle Corporation {System.Diagnostics.Process (jusched), System.Diagnostic...
2 AMD {System.Diagnostics.Process (atieclxx), System.Diagnosti...
2 Adobe Systems Incorpor... {System.Diagnostics.Process (armsvc), System.Diagnostics...
1 RealVNC Ltd {System.Diagnostics.Process (vncviewer)}
1 ShenZhen Enode Techolo... {System.Diagnostics.Process (weather)}
1 arvato digital service... {System.Diagnostics.Process (PsiService_2)}
1 Google Inc. {System.Diagnostics.Process (GoogleUpdate)}
1 c 2015 Microsoft Corpo... {System.Diagnostics.Process (BingSvc)}
上記を実行すると
PowerShell 7.15 でも、正常(同様)に、実行されます。
PowerShell 7.4.6 でも、同様です。
[ 目次 ]
- Get-Process | group company | Sort count -descending
次の事例を実行してみよう。
# Get-Process | Group-Object company | Sort-Object count -descending
Get-Process | group company | Sort count -descending
この事例は、前項と同じ処理を、group と Sort のように、エイリアスを使用しています。
それでは、実行してみましょう。下記のような結果が得られます。
Count Name Group
----- ---- -----
58 Microsoft Corporation {System.Diagnostics.Process (ApplicationFrameHost), Syst...
9 {System.Diagnostics.Process (csrss), System.Diagnostics....
5 SEIKO EPSON CORPORATION {System.Diagnostics.Process (E_FATINJJ), System.Diagnost...
2 {System.Diagnostics.Process (Microsoft.Photos), System.D...
2 Apple Inc. {System.Diagnostics.Process (AppleMobileDeviceService), ...
2 Oracle Corporation {System.Diagnostics.Process (jusched), System.Diagnostic...
2 AMD {System.Diagnostics.Process (atieclxx), System.Diagnosti...
2 Adobe Systems Incorpor... {System.Diagnostics.Process (armsvc), System.Diagnostics...
1 RealVNC Ltd {System.Diagnostics.Process (vncviewer)}
1 ShenZhen Enode Techolo... {System.Diagnostics.Process (weather)}
1 arvato digital service... {System.Diagnostics.Process (PsiService_2)}
1 Google Inc. {System.Diagnostics.Process (GoogleUpdate)}
1 c 2015 Microsoft Corpo... {System.Diagnostics.Process (BingSvc)}
上記を実行すると
PowerShell 7.15 でも、正常(同様)に、実行されます。
PowerShell 7.4.6 でも、同様です。
[ 目次 ]
- Format-Table Name, Company -GroupBy Company -auto
次の事例を実行してみよう。
# PowerShell -GroupBy Example
# Clear-Host
Get-Process | Sort-Object company |
Format-Table Name, Company -GroupBy Company -auto
稼働中のプロセスを取得して、company で、並び変えて、更にグルーピングして、Name, Company のテーブルに整形して、表示します。
それでは、実行してみましょう。下記のような結果が得られます。
:
Name Company
---- -------
smss
wininit
services
csrss
csrss
MsMpEng
NisSrv
svchost
System
Idle
Company:
Name Company
---- -------
Microsoft.Photos
WeatherService
Company: c 2015 Microsoft Corporation
Name Company
---- -------
BingSvc c 2015 Microsoft Corporation
<省略>
上記を実行すると
PowerShell 7.15 でも、正常(同様)に、実行されます。
PowerShell 7.4.6 でも、同様です。
[ 目次 ]
- Get-Service | Group-Object status | Format-List
次の事例を実行してみよう。
# Preliminary Group Example
# Clear-Host
# Get-Service | Group-Object status
#Compared with
Get-Service | Group-Object status | Format-List
登録されているサービスを取得して、status で、グルーピングして、表示します。
それでは、実行してみましょう。下記のような結果が得られます。
Name : Running
Count : 94
Group : {AdobeARMservice, AMD External Events Utility, AppHostSvc, Appinfo...}
Values : {Running}
Name : Stopped
Count : 143
Group : {AdobeFlashPlayerUpdateSvc, AJRouter, ALG, AppIDSvc...}
Values : {Stopped}
上記を実行すると
PowerShell 7.15 でも、正常(同様)に、実行されます。
PowerShell 7.4.6 でも、同様です。
[ 目次 ]
- Get-Service | Sort-Object status, name | Format-Table -GroupBy status
次の事例を実行してみよう。
# Sort and Group on Two Criteria
Get-Service | Sort-Object status, name | Format-Table -GroupBy status
登録されているサービスを取得して、status と name で、並べ変えて、status で、グルーピングして、表示します。
それでは、実行してみましょう。下記のような結果が得られます。
Status: Stopped
Status Name DisplayName
------ ---- -----------
Stopped AdobeFlashPlaye... Adobe Flash Player Update Service
Stopped AJRouter AllJoyn Router Service
Stopped ALG Application Layer Gateway Service
Stopped AppIDSvc Application Identity
Stopped AppMgmt Application Management
Stopped AppReadiness App Readiness
<省略>
Status: Running
Status Name DisplayName
------ ---- -----------
Running AdobeARMservice Adobe Acrobat Update Service
Running AMD External Ev... AMD External Events Utility
Running AppHostSvc Application Host Helper Service
Running Appinfo Application Information
Running Apple Mobile De... Apple Mobile Device
Running AudioEndpointBu... Windows Audio Endpoint Builder
Running Audiosrv Windows Audio
Running BFE Base Filtering Engine
<省略>
上記を実行すると
PowerShell 7.15 でも、正常(同様)に、実行されます。
PowerShell 7.4.6 でも、同様です。
[ 目次 ]
- Get-Service | sort status, name | Ft -GroupBy status Name, DisplayName, Status -auto
次の事例を実行してみよう。
# Compared with
Clear-Host
Get-Service | sort status, name | Ft -GroupBy status Name, DisplayName, Status -auto
登録されているサービスを取得して、status と name で、並べ変えて、status で、グルーピングして、Name, DisplayName, Status のテーブルに整形して、表示します。
それでは、実行してみましょう。下記のような結果が得られます。
Status: Stopped
Name DisplayName Status
---- ----------- ------
AdobeFlashPlayerUpdateSvc Adobe Flash Player Update Service Stopped
AJRouter AllJoyn Router Service Stopped
ALG Application Layer Gateway Service Stopped
AppIDSvc Application Identity Stopped
AppMgmt Application Management Stopped
AppReadiness App Readiness Stopped
AppXSvc AppX Deployment Service (AppXSVC) Stopped
aspnet_state ASP.NET State Service Stopped
<省略>
Status: Running
Name DisplayName Status
---- ----------- ------
AdobeARMservice Adobe Acrobat Update Service Running
AMD External Events Utility AMD External Events Utility Running
AppHostSvc Application Host Helper Service Running
Appinfo Application Information Running
Apple Mobile Device Apple Mobile Device Running
AudioEndpointBuilder Windows Audio Endpoint Builder Running
Audiosrv Windows Audio Running
BFE Base Filtering Engine Running
BITS Background Intelligent Transfer Service Running
<省略>
上記を実行すると
PowerShell 7.15 でも、正常(同様)に、実行されます。
PowerShell 7.4.6 でも、同様です。
[ 目次 ]
- Get-Service | Group-Object status | select -ExpandProperty group
次の事例を実行してみよう。
Get-Service | Group-Object status | select -ExpandProperty group
登録されているサービスを取得して、status で、グルーピングして、-ExpandProperty group で、選択したテーブルに整形して、表示します。
それでは、実行してみましょう。下記のような結果が得られます。
Status Name DisplayName
------ ---- -----------
Running AdobeARMservice Adobe Acrobat Update Service
Running AMD External Ev... AMD External Events Utility
Running AppHostSvc Application Host Helper Service
Running Appinfo Application Information
Running Apple Mobile De... Apple Mobile Device
Running AudioEndpointBu... Windows Audio Endpoint Builder
Running Audiosrv Windows Audio
<省略>
Running WinRM Windows Remote Management (WS-Manag...
Running wscsvc Security Center
Running WSearch Windows Search
Running wudfsvc Windows Driver Foundation - User-mo...
Stopped AdobeFlashPlaye... Adobe Flash Player Update Service
Stopped AJRouter AllJoyn Router Service
Stopped ALG Application Layer Gateway Service
Stopped AppIDSvc Application Identity
Stopped AppMgmt Application Management
<省略>
上記を実行すると
PowerShell 7.15 でも、正常(同様)に、実行されます。
PowerShell 7.4.6 でも、同様です。
[ 目次 ]
- Group-Object eventid | Sort-Object Count -descending | Format-Table Count, Name -autosize
次の事例を実行してみよう。
# PowerShell Group-Object and Sort
Clear-Host
Get-Eventlog system -newest 3000 |
Group-Object eventid | Sort-Object Count -descending | Format-Table Count, Name -autosize
system の最新 3000 個のイベントログを取得して、eventid で、グルーピングして、Count で、降順に並べ替えて、Count, Name のテーブルに整形して、表示します。
それでは、実行してみましょう。下記のような結果が得られます。
Count Name
----- ----
255 7031
229 16
226 12
206 10016
192 414
141 1
130 62464
99 44
<省略>
上記を実行すると
PowerShell 7.15 では、エラーです。何故か Object が無い??
Get-Eventlog: The term 'Get-Eventlog' is not recognized as a name
of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.
PowerShell 7.4.6 でも、同様です。
[ 目次 ]
- Where {$_.EntryType -eq "Error"} | Format-Table -GroupBy eventid
次の事例を実行してみよう。
# PowerShell Sort-Object then -GroupBy
Clear-Host
Get-Eventlog system -newest 500 | Sort-Object eventid |
Where {$_.EntryType -eq "Error"} | Format-Table -GroupBy eventid
system の最新 500 個のイベントログを取得して、eventid で、昇順に並べ替えて、.EntryType が "Error" であるものを、テーブルに整形して、表示します。
それでは、実行してみましょう。下記のような結果が得られます。
EventID: 6008
Index Time EntryType Source InstanceID Message
----- ---- --------- ------ ---------- -------
15873 8 01 08:13 Error EventLog 2147489656 以前のシステム シャットダウン ( ?2016...
15524 7 25 20:09 Error EventLog 2147489656 以前のシステム シャットダウン ( ?2016...
EventID: 7000
Index Time EntryType Source InstanceID Message
----- ---- --------- ------ ---------- -------
15601 7 25 20:10 Error Service Control M... 3221232472 Net.Msmq Listener Adapter サービスを...
15598 7 25 20:10 Error Service Control M... 3221232472 NetPipeActivator サービスを、次のエラ...
EventID: 7001
Index Time EntryType Source InstanceID Message
----- ---- --------- ------ ---------- -------
15583 7 25 20:09 Error Service Control M... 3221232473 NetTcpActivator サービスは、次のエラ...
15926 8 01 08:13 Error Service Control M... 3221232473 NetTcpActivator サービスは、次のエラ...
<省略>
上記を実行すると
PowerShell 7.15 では、エラーです。何故か Object が無い??
Get-Eventlog: The term 'Get-Eventlog' is not recognized as a name
of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.
PowerShell 7.4.6 でも、同様です。
[ 目次 ]
- Get-Help Group-Object -full
次の事例を実行してみよう。
# Group-Object Parameters
Clear-Host
Get-Help Group-Object -full
Group-Object のヘルプを表示します。
それでは、実行してみましょう。下記のような結果が得られます。
" > パイプ問題(?)" 関連で、下記のファイルを差し替えました。
表示内容は、037_PS_GroupObject_10.txt に保存しました。
上記を実行すると
PowerShell 7.15 でも、正常(同様)に、実行されます。
PowerShell 7.4.6 でも、同様です。
ただし、英語です。
[ 目次 ]
- Get-Command -Noun object
次の事例を実行してみよう。
# Clear-Host
Get-Command -Noun object
object 関連コマンドを表示します。
それでは、実行してみましょう。下記のような結果が得られます。
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Compare-Object 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet ForEach-Object 3.0.0.0 Microsoft.PowerShell.Core
Cmdlet Group-Object 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Measure-Object 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet New-Object 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Select-Object 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Sort-Object 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Tee-Object 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Where-Object 3.0.0.0 Microsoft.PowerShell.Core
上記を実行すると
PowerShell 7.15 でも、正常(同様)に、実行されます。
PowerShell 7.4.6 でも、同様です。
|