"SQL"という文字列を含むすべてのインストール済みサービスの名前(名前のみ)を表示しようとしています。文字列パターンに一致するすべてのサービス名を表示
Get-WmiObject Win32_Service
これは、すべてのサービスを表示しますが、たとえば、私は、だから私はこれを試してみてください
- にSQLAgent $ SQL2008_R2
- SQLBrowser
- SQLWRITER
を見たいですリストとして。
Exit Code : 0
Name : ProtectedStorage
ProcessId : 664
StartMode : Manual
State : Running
Status : OK
Exit Code : 1077
Name : QWAVE
ProcessId : 0
StartMode : Manual
State : Stopped
Status : OK
(etc...)
これはいいですが、名前を確認したいだけです。だから私は、入力します。
Get-WmiObject Win32_Service | select-object Name
そして私は、私が期待するものを手に入れる:
sppuinotfy
SQLAgent$SQL2008_RT
SQLBrowser
SQLWriter
SSDPSRV
(etc ..)
すべてが良いです。私はSQLに関連するものだけを含めるように名前をフィルタリングする次のステップを踏みます:
Get-WmiObject Win32_Service | select-object Name | select-string -pattern 'SQL'
そして今は混乱します。ここに私の出力があります:
@{Name=BcmSqlStartupSvc}
@{Name=MSOLAP$SQL2008_R2}
@{Name=MSSQL$SQL2008_R2}
(etc ...)
なぜ私はこの名前の代わりに出力を得ていますか? 名前だけを入力するにはどうすればよいですか?
Get-WmiObject Win32_Service | Select-Object -ExpandProperty Name |
Select-String -pattern 'SQL'
編集を:
ありがとうございました。私の次の学習課題の違いを理解することである 『』を選択し、オブジェクトを-ExpandProperty名前をと "select-object {$ _。Name}" –