2014年10月21日火曜日

[PowerShell] インストールプログラムの検索


インストールされている、.NET Frameworkのバージョンを表示

PS C:\Users\test> gwmi win32_product -filter "Name='Microsoft .NET Framework 4
.5.1'" | Select-Object Name, Version
Name                                    Version
----                                    -------
Microsoft .NET Framework 4.5.1          4.5.50938


ワイルドカードを使用すると・・・


PS C:\Users\test> gwmi win32_product -filter "Name like '%.NET Framework%'"| S
elect-Object Name, Version
Name                                    Version
----                                    -------
Microsoft .NET Framework 4.5.1 (JPN)    4.5.50938
Microsoft .NET Framework 4.5.1          4.5.50938


WMIクエリとなるため、 like パーセント(%) としてワイルドカード検索します

検索できるプログラムは、Windows インストーラーに対応している必要があります





Win32_Product で表示されない場合は、Win32_SoftwareFeature

PS C:\Users\test> gwmi win32_softwarefeature -filter "Name like '%KB2979%'"| S
elect-Object Name, Version
Name                                    Version
----                                    -------
KB2979578v2                             4.5.50938




ちなみに、Get-WMIObject -filter では、アスタリスク (*) が使用できません。

http://technet.microsoft.com/ja-jp/library/hh849824(v=wps.620).aspx


2014年4月8日火曜日

[PowerShell] help


PowerShellを使用していて、if について調べたくなったとき

PS C:\Users\test>help if
Name                              Category  Synopsis
----                              --------  --------
New-ModuleManifest                Cmdlet    新しいモジュール マニフェストを作成
します。
Test-ModuleManifest               Cmdlet    モジュール マニフェスト ファイルにモ
ジュールの内容が正確に記述...
Get-PfxCertificate                Cmdlet    コンピューターの .pfx 証明書ファイル
に関する情報を取得します。
about_If                          HelpFile  1 つ以上の条件テストの結果に基づいて
ステートメント リストを実... 
PS C:\Users\test>help about_if 
トピック
    about_If
簡易説明
    1 つ以上の条件テストの結果に基づいてステートメント リストを実行するための言
語コマンドについて説明します。


2014年2月26日水曜日

[PowerShell] イベントログ


・WMIを利用してイベントログを取得

Get-WmiObject Win32_NTLogEvent -filter "LogFile='System' and Type='エラー'"

  システムのエラーログが表示される



・-filter オプション
Get-WmiObject Win32_NTLogEvent -filter "LogFile='System' and EventCode=11"

  システムのイベントID11のログが全て表示される

  文字列は、シングルクォーテーションでくくる ('')
  数字は、そのまま



・ログのメッセージのみ出力
Get-WmiObject Win32_NTLogEvent -filter "LogFile='System' and EventCode=11" | Select-Object Message



2014年1月20日月曜日

[PowerShell] Ping , Test-Connection


Pingについて
  • PowerShell上で、pingコマンドを実行すると ping.exe が呼び出される
PS C:\Users\test>ping
 使用法: ping [-t] [-a] [-n 要求数] [-l サイズ] [-f] [-i TTL] [-v TOS]
           [-r ホップ数] [-s ホップ数] [[-j ホスト一覧] | [-k ホスト一覧]]
           [-w タイムアウト] [-R] [-S ソースアドレス] [-4] [-6] ターゲット名


特に問題ないが、Test-Connection コマンドレットの、 -quiet オプションを使って

Boolean 型で受け取ると、処理が分かりやすい


  • PowerShell上で、Test-Connection -quiet を使用
PS C:\Users\test> test-connection -count 1 -quiet -computername $ENV:computername
True
  • 結果を見たい場合
PS C:\Users\test> test-connection -count 1 -computername $ENV:computername 
Source        Destination     IPV4Address      IPV6Address
------        -----------     -----------      -----------
test      test       192.168.x.x       xxxx:xxxx




参考:
http://technet.microsoft.com/ja-jp/library/hh849808(v=wps.620).aspx