著作一覧 |
パッチを当てようと思って、patch.exe なんか実行しても良いか? とかダイアログが出る。 で、OKとかすると、隔離されたコマンドコンソールが起動されてそこで動いて、しかもIOができない(みたい)。 つまり、パッチが当てられない。 Explorerで見ると、盾のアイコンになっている。プロパティをどういじくっても、解消できない。 ふと気付いて、ファイル名をp.exeとか変えたら、無事起動も実行もできた。 ……バカですか? (Vistaも臭いがTrendmicroも臭い。とりあえずKBを調べてみるか) 追記:みんな困っているようだが、どこかのバカがpatch.exeというトロイの木馬を作ったのをファイル名決め打ちでチェックしている間抜けなローンチャがいるらしい。 site:microsoft.com patch.exeで検索しても、それっぽい情報には当たらないが……というか、Windows開発者はそれほどパッチを使わないのかな? #さらに追記:インストーラ一族とみなしているらしいというのが正解なのかなぁ。どちらにしてもだめな仕様だとは思うが。
NyaRuRuさんのヒントのおかげでCygwinのスレッドを見つけられたので、マニフェストを作って解決。
とはいえ、Vistaがご丁寧にキャッシュしていたので、touchでexeの日付を変える必要があった(これも変な仕様だ。マニフェストが変更されたらそれに追随して欲しいところ――最初、書きそこなった時の情報がキャッシュされていたようだ)。まったく余計なことを(再起動でもいけそうだが、面倒だよね)。
参考までに、CygwinのMLの丸映しになるが、こんなのを用意しておけばOK。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity type="win32" version="1.0.0.0" name="patch.exe" processorArchitecture="x86" /> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly>
ジェズイットを見習え |
恐らく Microsoft が望んでいるであろう解決法は以下なのですが,まだ実現されてなかったりするんでしょうかね?<br>http://cygwin.com/ml/cygwin/2007-02/msg00478.html
僕が使っているのはCygwinじゃなくて、オリジナルから以前(えらく昔に)僕がポートしたやつだからねぇ。