Memo/Windows/PowerShell

http://dexlab.net/pukiwiki/index.php?Memo/Windows/PowerShell
 

PowerShell?

Windows_PowerShell - wikipedia
Windows PowerShell? は、マイクロソフトが開発した拡張可能なコマンドラインインターフェース (CLI) シェルおよびスクリプト言語である。オブジェクト指向に基づいて設計されており、.NET Framework 2.0 を基盤としている。

ヘルプの表示

  • 初回最新のヘルプがダウンロードされる
    1. Get-Help

find風の結果を得る

  • find -ls:
    1. gci -r

サービス一覧を取得

  • スタートアップの種類は紛らわしい
    • 自動:OS起動時に起動
    • 手動:ポートに要求があれば自動起動
    • 無効:起動を禁止
  • スタートアップ種類が手動(ポートにリクエストがあったら自動起動)で、起動しているサービス一覧
    1. powershell
    2. Get-Service | where StartType -eq Manual | where Status -eq Running
    3.  
    4. Status   Name               DisplayName
    5. ------   ----               -----------
    6. Running  Appinfo            Application Information
    7. Running  AppMgmt            Application Management
    8. ...

zipファイルを展開せずにファイル名やファイルサイズで検索

  • 7z.exe を利用
  • hoge.jpg を検索
    1. powershell
    2. > get-childitem . -include *.zip -recurse | foreach ($_) { .\7z.exe l $_.name | Select-String "hoge.jpg" }

WMIからHDD SMART情報を取得

  • fileget-smart.ps1
    1. powershell ./get-smart.ps1
    2.  
    3. ########
    4. Active: True
    5. InstanceName: IDE\DiskWDC_WD10EALX-759BA1_____________________19.01H19\4&1d873d54&0&0.0.0_0
    6. Length: 512
    7. bAttrID wStatusFlags bAttrValue bWorstValue bRawValue[6]
    8.    1  47   0 200 200   0   0   0   0   0   0
    9.    3  39   0 177 174  54  16   0   0   0   0
    10.    4  50   0 100 100 239   1   0   0   0   0
    11.    5  51   0 200 200   0   0   0   0   0   0
    12.    7  46   0 200 200   0   0   0   0   0   0
    13.    9  50   0  95  95 154  16   0   0   0   0
    14.   10  50   0 100 100   0   0   0   0   0   0
    15.   11  50   0 100 100   0   0   0   0   0   0
    16.   12  50   0 100 100 237   1   0   0   0   0
    17.  192  50   0 200 200  19   0   0   0   0   0
    18.  193  50   0 200 200 219   1   0   0   0   0
    19.  194  34   0 108 103  39   0   0   0   0   0
    20.  196  50   0 200 200   0   0   0   0   0   0
    21.  197  50   0 200 200   0   0   0   0   0   0
    22.  198  48   0 100 253   0   0   0   0   0   0
    23.  199  50   0 200 200   0   0   0   0   0   0
    24.  200   8   0 100 253   0   0   0   0   0   0
    25.  240  50   0  95  95  13  16   0   0   0   0
    26.  241  50   0 200 200  92 134 168  41   2   0
    27.  242  50   0 200 200   4 174  82 249   1   0

PowerShell?の終了コードをcmd.exeに渡す

PowerShell?内で「exit 2」としても、「echo %ERRORLEVEL%」は全て"1"になる。
以下のようにすれば取得できるようだ

  1. powershell -NoProfile -command ".\test.ps1;exit $LASTEXITCODE"
  2. echo %ERRORLEVEL%

PowerShell?を実行可能にする

デフォルトでは実行不可になっている。

  • ローカルに保存されているスクリプトは実行可能、インターネット上のスクリプトは実行不可
    1. powershell Set-ExecutionPolicy RemoteSigned

添付ファイル: fileget-smart.ps1 386件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-01-27 (金) 23:59:07 (571d)