Get-help about_automatic_variables | more
デスクトップフォルダやマイドキュメントフォルダに簡単にアクセスする
DOSコマンド substを使って"subst P: 'C:\Documents and Settings\hoge\デスクトップ'"とすると指定のディレクトリをPドライブとして使用できる。このコマンドを$PROFILEに書いておけば便利。
WMIでコンピュータの情報を取得する
mshより飛躍的に楽になっている。詳しくはPowerShell Week 3日目のスライド35のあたりから書いてある。
get-wmiobject Win32_NetworkAdapter | select-object MACAddressイベントログを確認する
get-eventlog -logname application -newest 5出力をHTMLに変換
ps | convertto-html | tee -file ps.htmlコマンドの出力が長い場合に右端で折り返して表示する
Get-Command | Format-Table -wrap | moreCPU使用率1%以上のプロセスをCPU使用率順に並べてHTMLで出力
ps | sort cpu -descending | where {$_.cpu -gt 1} | ConvertTo-Html | tee -file heavyprocess.htmlExcelをCOMオブジェクトを使って呼び出す
ps | where {$_.CPU -gt 1} | select processname,cpu | sort cpu -descending
$objE = new-object -comobject Excel.Application
$objE.Visible = $true
$objWB = $objE.Workbooks.add()
$objWS = $objWB.Worksheets.Item(1)
$objWS.Cells.Item(2,2) = "Feel the Power"
$objE.Quit
レジストリにキーを追加する
FAQにサンプルがのっているが、その通りやっても上手くいかなかったので調査中。
COMを使ってIEを呼び出す
$tmp_myweb = "http://localhost:4664"
$ie = New-Object -ComObject InternetExplorer.Application
# IEプロセス起動。
$ie.Visible = $true
# IEが見えるようになる
$ie.Navigate($tmp_myweb)
# $tmp_mywebが表示される。
$ie.Document.Body.InnerText
.net frameworkのWebClientクラスを呼び出して、Webページをダウンロードする
$tmp_myweb = "http://localhost:4664"
$web = new-object System.Net.WebClient
$page = $web.downloadstring($tmp_myweb)
このあたりでメソッドやプロパティの名前が分からない場合は"$web | get-member"して確認するとよい
ファイル選択のためのウィンドウを開く$objShell = New-Object -com "Shell.Application"
$objFolder = $objShell.BrowseForFolder(0,"Pick ME!",0)
ファイルや変数の中身を比較する
diff(Compare-Object)を使う。直接ファイルを比較できないっぽい?
$processes_before = get-processカラフルに出力
notepad # notepadを起動する
$processes_after = get-process
compare-object -referenceobject $processes_before -differenceobject $processes_after
Write-Host -ForegroundColor red -BackgroundColor yellow "Red Hot Alert!!!"