読者です 読者をやめる 読者になる 読者になる

kkamegawa's weblog

Visual Studio,TFS,ALM関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

PowerShell

もうすぐWindows Updateでくるか?

今日WSUSの同期でPowerShell 1.0がダウンロードされました。Windows Updateではまだのようですが、おそらく近いうちにくるでしょう。そういえばまだ自動更新の対象になっていなかったんですね、これ。 とはいえ、日本語環境にはMUI版と日本語ローカライズ版…

使いどころ

1GBちょっとあるテキストファイルをもらったけれど、実際に必要なのは末尾の1,2万行。んじゃPowerShellで作るかと思ったら甘かった。行数をカウントするだけでも数分以上(結局2600万行くらい)。実際にやってみると10数分放置しても切り出しが終わらない(^^;…

解決編:OracleClientでデータバインドができない

id:kkamegawa:20080819:p1 の続き kikuchiK wrote: バグの理由の最たるものは typo > :Column > ”Colum” ありがとうございます…おはずかしい。これは私のtypoで、実は別の原因でした。 $cmd.CommandText = "select * from Table where Column = :Column" $Or…

Oracleに対してホスト変数がバインドできない

テストデータを作るのにPowerShell便利でとても助かっています。今日はデータベースのデータをもとにしてSQLをくみたてて実行してみようとしてはまりました…。 $cmd.CommandText = "select * from Table where Column = :Column" $OracleType = [OracleClien…

とにかくなれるために

id:kikuchiK wrote robocopy の /XD オプションなんて邪道!という事ですね。わかります。 そういうものもありました。すっかり忘れてます…。PowerShellでとにかく何でもやってみようということで、手段が目的と化しています(^^;。 ちなみに会社ではDFSを使…

VisualStudioプロジェクトをコピー

Visual StudioでネイティブC++プロジェクトを作って人様に渡す場合、Releaseフォルダとか、Debugフォルダとか渡したくありませんね(vss関係のファイルもだけど)。今日2時間くらい頭をひねっていたのですが、どうにもいい手段が思い浮かびませんでした。結局…

今日のスクリプト(ログオンイベントを列挙する)

PS>get-wmiobject -computer ドメインコントローラ -query "select * from Win32_NTLogevent where (logfile='Security') and (eventcode='680')" | select computername, user, timegenerated, messageActive Directoryで運用している場合、ログオンイベン…

今日のスクリプト(ハッシュ計算)

function GetHashSHA1([string]$filename) { [Reflection.Assembly]::LoadWithPartialName("System.IO") [Reflection.Assembly]::LoadWithPartialName("System.Security.Cryptography") $hashAlgolithm = New-Object System.Security.Cryptography.HMACSHA1 …

xx日以降のファイルをコピーする。

$dt = new-object System.DateTime 2008,5,17,0,0,0 get-childitem -path フォルダ名 -filter *.* -recurse | foreach-object {if($_.LastWriteTime -gt $dt) {copy-item $_ -destination コピー先 -recurse}}こんな感じか。使いでがある割に、ちょっと指定…

今日のスクリプト(BASE64をデコードする)

function DecodeBase64($inFile, $outFile) { [Void][Reflection.Assembly]::LoadWithPartialName("System.IO") $DecodeFile = new-object System.IO.FileStream ($outFile, [System.IO.FileMode]::Create) $Base64File = new-object System.IO.StreamReader…

ファイル情報をデータベースに突っ込む

バージョンごとにリリースした物件をデータベースに格納しようと、簡単にスクリプトを作ってみました。 $connObj = new-object Data.sqlclient.sqlconnection $connObj.ConnectionString="Server=サーバ名;Database=データベース名;Integrated Security="tru…

VisioでPowerShell?

2008-04-15 - PowerShell Memoより Windows Server 2012 | マイクロソフト サーバー & クラウド プラットフォーム ここにのっているVisioでPowerShellスクリプトを生成できるツール、どれくらいできるんでしょうね。試そうと思ったら…Visio 2007限定ですかor…

レジストリに値を設定する

New-Itemだとレジストリキーを作る。 Set-Itempropertyでレジストリのある場所に値を作る。 PS>Set-ItemProperty -path HKLM:Software\Company\Software -name RegistoryData -value value意外とぐぐってもそのものずばりの方法載ってないのね。cdコマンドで…

ファイル日付変更今昔

DOSのころ FD(超有名ファイラー)を使う touchコマンドをどこかから探してくる ファンクションコールを使ったプログラムを自分で作る。 Windows APIのころ FindFirst()〜FindNext()で列挙する CreateFile()〜SetFileTime()〜CloseHandle()で書き変える (サブ…

フォルダの中身を比較して新しいファイルを列挙する

PowerShellのシンタックスハイライトがない…まぁ、しゃぁないか。お仕事中必要に迫られて5分ほどで作った。もうちょっときれいに書けると思うんだけどな。 $a = Get-Item c:\Source\*.* $b = Get-Item d:\dest\*.* foreach($source in $a) { foreach($dest i…

プログラマブルPowerShell

会社にこういう本を一冊置いときたいということで購入。付属のヘルプはヘルプじゃないし、ちょっと書きたいようなものの手がかりが欲しいので。スクリプトコンテストなんてのもやってますね。 Windows Server 2012 | マイクロソフト サーバー & クラウド プ…

PowerShellで表示されないファイル名

Explorerで長いファイル名をうまく使えない…というのは知られた現象かと思います。 Windowsのファイル名の最大長考察を書いた時に何気にPowerShellでdirを取ってみると、見えないファイルがあることにびっくり。 あれれ、どういうこと?

powershellをクラッシュさせるコード

Visual Studio 2008 Beta2日本語版が出たので、PowerShellで任意のURIをローカルに保存するスクリプト(関数)を書きました。 function DownloadInetFile { if($args.length -ne 2) { [System.Console]::WriteLine("引数は url, localfilename を指定してくだ…

Powershell インアクション

会社帰りに買ってきました。途中をいくつか試し読みしたのと、序章を読んだだけですがなかなかよさそうな感じです。id:newpopsさんのPowerShell宣言とはちょっと違った感じですね。PowerShell宣言は軽いので電車のお供にもよいです。設計者が書いただけあっ…

PowerShell In Action

英語版を買おうかどうしようか迷っているうちに来週訳本が出るそうです。待つのも悪くない(^^;。PowerShellはまだまだワンライナーなひとなので、これで勉強します。作りたいコマンドレットは2,3あるんですが(というか作りかけ...)。 あとちょっとでアフィリ…

PowerShellコンソール上で挙動が?

C#→C++/CLI(Nativeのdllを使うため)→C#(Office PIA用)という構成のコンソールアプリケーションを作ってます。通しデバッグも一通り終わって、さて負荷テスト..と思うと、どうも安定して動きません。出なさそうなところころでRangeException(だったはず)が帰…

今日の一行スクリプト

get-childitem * -include debug,release -recurse | remove-item -recurse -forceVC++でソースフォルダだけを人様に渡す前処理で。もちろん実行前には-whatifをつけてシミュレートしてみましょう。ところで、"recurse"って英語的にどうなんでしょう。OneNot…

あなたのFormにもPowerShellを

Hosting Windows PowerShell Sample Code - David Aiken - Site Home - MSDN Blogs WinForms内でPowerShell(正確にはPSObject)を使いましょうという話。上記エントリからchannel9で公開されているビデオへのリンクがあります。ボタンを押したらGet-Serviceコ…

PowerShellで暮すぞ宣言

毎日使わないと覚えないので、cmd.exeからpowershell.exeで暮すことにしました。さすがにDOS 2.1の時代から20年くらいしみついている習慣を変えるのは難しいけど、がんばろう(さくっと乗り換えられました?>PowerShell使いの人) 今XPのスタートメニューでは…

ファイル名一致の差

先日気がついたのですが、Powershellとcmd.exeでワイルドカードというかファイル名の一致方法違うんですね…ということを書こうとして、ふと検証してみたらあら?と思った話。 cmd.exeの場合 C:\temp>dir g*.exe ドライブ C のボリューム ラベルがありません…

Hash cmdlet

ファイルのハッシュを作成するコマンドレットは標準で存在しないようなので、勉強をかねて作るかと思ったら、既にあったorz。 PowerShell - A file hasher cmdlet and the Extended Type System explained - B# .NET Blog まぁ、勉強になるので作るんですけ…

仕様とサンプル

The resource cannot be found. 気持ちは大変よくわかります。PowerShellそのものは便利だと思っているのですが、インストール時についてくるユーザーズガイドとランゲージクイックリファレンスだけでばりばり組むぜというのはちょっと大変。Technetのスクリ…

Windows Installer Cmdlet

Windows Installer Cmdlets - Windows PowerShell Blog - Site Home - MSDN Blogs Windows InstallerのCmdletをCodeplexで開発中ですか〜。今Codeplex死んでいるようで、アクセスできないんだけれど(^^;。ただ、インストーラはネイティブコードで書かなきゃ…

GetEnvrionmentVariable("TEMP")

言わずとしれた環境変数の値を取得する静的メソッド。これで環境変数TEMPを取得すると短い(8+3形式の)ディレクトリになるんですね。 PS>[System.Environment]::GetEnvironmentVariable("TEMP") C:\DOCUME~1\...\LOCALS~1\Tempうーん、ちょっと不便。念のため…

日本語の本

id:newpopsさんのPowerShell本がamazonに登場。技術関係の本って、ぎりぎりまで載らなかったり、こんな風に早かったり、よくわからんですね(^^;。Windows PowerShell宣言! (Windows Script Programming)作者: 吉岡洋出版社/メーカー: ソフトバンク クリエイ…

id:newpopsさんのPowerShell本

ご無沙汰しております - PowerShell Memo おっ、静かだと思っていたら、やはり執筆されていたのですか(^^)。TIPSの食い散らかしといってはなんだけれど、体系的に網羅したものがほしいと思っていたので、期待してますよ〜。英語だと"PowerShell In Action"と…

クラスライブラリ動作確認用

会社で「grooveをJava APIの実動作確認代わりに使っている」という話を聞いて、「あ、PowerShellもそうじゃないか」と気づいて(おそっ)便利に使っています。リファレンスのサンプル見ても実際にこのケースでどういう値返すのか、わかりづらいものもありまし…

COMポートを列挙する

会社で「どのデバイスがどのCOMポートを使っているか調べる方法ない?」という質問があったので、PowerShell+WMIでできるよ!とワンライナーで書いてみました。 PS>Get-WmiObject -Class Win32_SerialPort | Format-List Caption,ProviderTypeこれではUSBシ…

インストール済みフォントファミリの列挙

いや、こういうときにPowerShellってほんっとありがたい。このためにC#でプロジェクト作るのもいやだったので。当然だけれど、アセンブリが読み込まれていなかったので、System.Drawing読み込ませる方法探すのに時間がかかった。 [System.Reflection.Assembl…

差分コピープログラム

ふと欲しくなって、PowerShellでこんな仕様のスクリプトを書こうかと思い立った。 パッチプログラムとコピー先のフォルダを再帰的に比較 パッチ適用対象のファイルがあったら、現在時刻のフォルダを作って、その下に移動 新しいファイルをコピー だがしかし…

PowerShellのスクリプトブロック

PowerShell 2.0が出たので、さっそくスクリプトを移行しています。具体的にはスケジューラーで起動していたファイルのコピースクリプトをバックグラウンドタスクに変更。するとはまってしまいました。 start-job { copy-item c:\backup\hoge \\server\backup…