PowerShell

SQL Server 2008へSQLをたたいて結果を得る。

SQL Server2008をインストールすると、専用のスナップインがインストールされて利用できるようになる。このスナップインに含まれる Invoke-Sqlcmdを使うとSQLコマンドを直接たたくことできる。sqlcmdというコマンドもあるのだが、これはどうもデフォルトでは…

コネクション数をモニターする。

一秒おきにコネクション数と時刻を書き出しながら、コンソールにも出力する。リアルタイムで監視ながら記録もしたい、というケースがあったので書いてみた。 while($true){ $count = netstat -an | select-string 443 | measure-object -line $now = get-dat…

findに相当するコマンド(2) でかいファイルを探す

ls(Get-ChildItem)に-Rオプションを渡して、後続のwhere-object('?'でもOK)で条件を付けてマッチしたファイルの情報を表示すればOK PS> ls -Recurse | ?{ $_.Length -gt 100000000} | Select-Object Name,length

findに相当するコマンド

Get-ChildItemが該当する(エイリアスはls)。たとえば、ファイル名が*.classでないものの一覧を作るには > ls -Recurse -exclude "*.class" | ? {! $_.Mode.Contains("d") } | Select-Object Nameとする。真ん中でディレクトリを排除して、select-objectでフ…

grepして、正規表現で抽出

とあるシステムから出力されたログファイルに含まれる、とある数値をひっぱりだしてグラフ化してみることにした。UNIXなら、grep して、perlなりawkなりsedなりを使い正規表現でパターンマッチに、必要なところだけを抽出するところ。だが、Windows環境なの…

うろおぼえのサービス名でgrepして、当該サービスを再起動する

開発系に限らず、いちいちスタートメニュー→管理ツール→サービス→当該のサービスを目grepして、再起動へのリンクを踏むのは面倒くさい。PowerShellだと結構楽ができる。 PS C:\Documents and Settings\Administrator> Get-Service | Where-Object {$_.Displa…

プロセス名でgrepして、プロセスを殺す

UNIXでも結構ありそうなシチュエーション。UNIXだと、 > ps aux | grep mokemokeなり > ps -ef | grep mokemokeしてプロセスIDを調べてから > kill 000とする*1。PowerShellだとこうする PS C:\> Get-Process -name notepad Handles NPM(K) PM(K) WS(K) VM(M…

PowerShellの中身

UNIXユーザーが、PowerShellを使う時には、PowerShellがUNIXの発想を取り入れた別のユーザーインターフェイスとツール群であることを覚えておく必要がある。たとえば grep に対応するコマンドレットが select-string であるので、「プロセス番号が4のプロセ…

ポートをLISTENしているプロセスを探す

手元のマシンから、見慣れないポート番号で LISTEN しているプロセスがいたので、PowerShellで調べてみることにした。普通UNIXマシンの場合だと、 lsof を使っている。さしあたって、 PowerShell でやってみることにする。元々 Windows マシンの場合、Window…

UNIXのエンジニア、PowerShellに触る

UNIXエンジニアが、PowerShellを触るにあたって、UNIXで使うようなイデオムをいくつかピックアップしてみる。なお、リリース版のPowerShell 1.0を念頭に置いてます。 コマンドエディット系の対応操作 現状のPowerShellには、「コントロールキー+何か」での…