PowerShell

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

古いファイルと拡張子を指定して削除


長い行の改行


PowerShellでtcp疎通確認


Windowsのバージョン取得


stdout, stderrのリダイレクト


returnの罠


変数のダンプ


try catch中の行番号の表示

try{
}
catch {
    $e = $_.Exception
    $line = $_.InvocationInfo.ScriptLineNumber
    Write-Host -ForegroundColor Red "caught exception: $e at $line"
}

相対パスを絶対パスへ変換 

echo (Convert-Path ".\example.log")
C:\tmp\example.log

設定ファイルや関数を別ファイルにして読み込む


Get-Date: 日付と時刻

# localtime
Get-Date
20204216:45:32

# UTC
(Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:sszzz")
2020-04-02T08:03:27+09:00

# iso-8601
Get-Date -Format "o"
2020-04-02T16:56:30.9156570+09:00

# 文字列へ
(Get-Date).ToString()
2020/04/02 16:50:00

# 任意の書式へ
 (Get-Date).ToString("yyyy-MM-ddTHH:mm:sszzz")
2020-04-02T17:01:17+09:00

Test-Path: ファイル、ディレクトリ、レジストリの存在チェック


Write系コマンドレット


ファイルサイズ、ディレクトリのファイル数

# ファイルの場合は、ファイルサイズ
(Get-ChildItem .\example.ps1).Length
987

# ディレクトリの場合は、ファイル数
(Get-ChildItem c:\tmp).Length
6

UTF8 BOMなしへ変換


エラーの無視

$ErrorActionPreference = "silentlycontinue"
# エラーを無視したいコマンド
$ErrorActionPreference = "continue"

圧縮/展開


入門


イベントログをcsv形式で出力

Powershellだと安定しなかったので、NXLog等のツールで外部に送信するのが良さそう

記事:

似たような関数があるが、使えるオプションが違う


PowerShellバージョンの確認


7


WSL(linux)のコマンドの呼び出し

wsl.exe経由で呼び出せる。


テレメトリ(利用者の情報を収集)の無効化:


Out-GridView: コマンド結果をテーブル形式の別ウィンドウで表示

Get-Process | Out-GridView

環境変数


ヘルプの表示


find風の結果を得る


サービス一覧を取得


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


WMIからHDD SMART情報を取得


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

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

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

PowerShellを実行可能にする

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


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

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-08-15 (木) 13:30:18