2014年12月27日土曜日

Microsoft Office 互換ソフトの難

Microsoft Office互換ソフトを使用すると、一般的に、レイアウト崩れを起こす事が分かっています。

Word
  • 契約書。1ページ物が、2ページになってしまう。
Excel
  • グラフの上に乗せた矢印が、ずれて表示されてしまう。

注意点
  • 純正ソフトと互換ソフトでは、設計思想が異なる
  • レイアウト崩れは、開発が進んでも解決されない問題に分類される。

話の持って行き方
  • 会社にて、同じ情報を共有したい、という観点から考えると、同じソフトを使う事が必要。
  • 違うソフトでは、違う情報を共有することになる。
  • 理由は、レイアウト崩れ
  • 原因は、純正と互換との設計思想の違い

2014年12月22日月曜日

BPGファイルのサンプル

BPGのサンプルファイルにつきまして、自作してGoogle Driveにアップしました。動作チェック用に自分でも使いたいという思惑も有り。。。

https://drive.google.com/folderview?id=0Bygl-em20CSKTFFMM0NfVEFoQ00&usp=sharing

ご自由にお使いください。

次のサイトのbpg-0.9.4-win32.zipを使い、PNG→BPGにエンコードしました。BPGとPNGは、Alpha channel付きです。

http://bellard.org/bpg/

PNG→BPGへの変換に約36秒かかりました。
BPG→PNGへの変換は1秒未満でしたが。。。

ーーー
追記: 最新版のThumbGensPackが、BPG形式のサムネイル生成に対応しました。


このように、Windows 7のExplorerで、サムネイル表示ができます。但し、画像のプレビューは装備していないので、できません。(^^;

ThumbGensPack
https://github.com/kenjiuno/ThumbGensPack/releases

2014年12月21日日曜日

Syslinux と boot flag

USB フラッシュに syslinux を入れて、レスキュー機構を構築しています。

しかし作りたてのものは起動ができない…

Missing operating system.
FATAL: INT18: BOOT FAILURE


Linux ならば fdisk で a を実行すればブートフラグが立ちます。


Windows ならば diskpart でごにょごにょします。

list disk
select disk X
list part
select part 1
detail part
active
detail part



2014年12月17日水曜日

EPPlusでピボットテーブルを

EPPlusを使い、ピボットテーブルを出力したい。

バーコード入力したデータを、日付でグループ化したいのですが、うまくいかず。

グループ化をしないと、「年月日時分秒」で各データを表示します。

~~
2014/12/17 9:00 ~~
2014/12/17 9:02 ~~
2014/12/17 9:07 ~~
~~

これでは集計致しかねるので、「年」「月」でグループ化したりします。

~~
2014年 -- 10月 ~~
2014年 -- 11月 ~~
2014年 -- 12月 ~~
~~

OfficeOpenXml.Table.PivotTable.eDateGroupBy.Years

OfficeOpenXml.Table.PivotTable.eDateGroupBy.Months
を組み合わせたようなイメージです。

グループ化して、保存はできるのですが、Excel 2003+Office互換パックで開きますと、エラーが出ます。

CVTD0DC.tmpには読み取れない内容が含まれています。このブックの内容を回復しますか? ブックの発行元が信頼できる場合は、[はい] をクリックしてください。

CVTD0DC.tmpにエラーが検出されましたが、次の修復を行うことに
よってファイルを開くことができました。修復を保持するにはこのファイルを
保存してください。

ピボットテーブル レポート 'PerTool' / '[CVTD0Dc.tmp]工程別'を修復しました。
完全性に問題があるため、ピボットテーブル レポート全体の情報を修復しました。



・・・調査中です・・・

2014年12月12日金曜日

Windows Explorer サムネイルのキャッシュ

二か所確認しています。

%LOCALAPPDATA%\\Microsoft\Windows\Explorer

%LOCALAPPDATA%\Microsoft\Windows\Temporary Internet Files\Virtualized\C\Users\KU\AppData\Local\Microsoft\Windows\Explorer

thumbcache_idx.db
thumbcache_sr.db
thumbcache_32.db
thumbcache_96.db
thumbcache_256.db
thumbcache_1024.db

failed to load com32 file linux.c32

syslinuxで"failed to load com32 file linux.c32"と表示される理由がようやく判りました。

(1) -d 指定の誤り 

[Ok] syslinux64.exe -d /boot/syslinux  j:
[Ok] syslinux64.exe -d /boot/syslinux/ j:


{NG} syslinux64.exe -d boot/syslinux   j:
{NG} syslinux64.exe -d boot/syslinux/  j:
{NG} syslinux64.exe -d boot\syslinux   j:
{NG} syslinux64.exe -d \boot\syslinux  j:

-d オプションのパス形式は、「Unix形式」かつ「絶対パス」で指定

相対パスで指定すると WARNING: No configuration file found が表示されて、boot: プロンプトになりました。

syslinux 6.03 で -d の効果を確認しています。

(2) syslinux フォルダの名前を変更したり、移動した

場合によっては、 Boot error になり、syslinux の起動が失敗します。

その場合は、syslinux.exe を使ってもう一度、書き込みしましょう。

(3) バイナリ形式の不一致

バイナリの形式と、対応する syslinux が定まっている様子です。


形式 CPU 拡張子 syslinux 6.03 syslinux 5.11 syslinux 4.10 syslinux 3.86
COMBOOT 16-bit .com N N Y Y
COM32 32-bit .c32 N N N Y
COM32R 32-bit .c32 N N Y Y
ELF 32-bit .c32Y Y ? ?
ELF 64-bit .c32 YN N N

.c32 については、複数の形式が有るので注意が必要です。

バイナリエディタで見れば通常、判別できます。

ELF 形式とは

ELF という文字列が有ります。


COM32 形式とは

Syslinux 3.xx (3.00 ~ 3.86) で採用されている実行ファイル形式。

マジックナンバーは B8 FF 4C CD 21 です。doc/comboot.txt を参照。

COM32R との互換性はありません。
 
gPXE が認識できるのは COM32 だけのようです。

COM32R 形式とは

Syslinux 4.xx (4.00 ~ 4.07 ) で採用されている実行ファイル形式。

マジックナンバーは B8 FE 4C CD 21です。syslinux/doc/comboot.txt を参照。

COM32 との互換性はありません。



vesamenu.c32: not a COM32R image につきまして

COM32R は self-relocating な 32-bit プログラムで、syslinux 4.xx で動作します。

つまり、このエラーは syslinux 4.xx でしか起こらないエラーです。

対策

(A) kernel.org から syslinux-4.07.zip を拾ってきて、必要なファイルを抜き取る。
 例: syslinux-4.07\com32\menu\vesamenu.c32
 例: syslinux-4.07\com32\gfxboot\gfxboot.c32

(B) できるものなら syslinux 6.03 へ更新する。次の対策編を参照。


対策編

syslinux 6.03 をダウンロードして、インストール

Kernel.org より最新版 syslinux-6.03.zip が入手できます。
ソースコードと Windows 用 Linux 用のバイナリが提供されています。

Windows 用は bios/win32/syslinux.exe を使います。
c32 ファイルは、bios/com32 以下に入っています。

各モジュールのパスと説明依存関係

bios\com32\chain\chain.c32
bios\com32\cmenu\complex.c32
bios\com32\cmenu\display.c32
bios\com32\cmenu\libmenu\libmenu.c32
bios\com32\cmenu\simple.c32
bios\com32\cmenu\test.c32
bios\com32\cmenu\test2.c32
bios\com32\elflink\ldlinux\ldlinux.c32
bios\com32\gfxboot\gfxboot.c32
bios\com32\gpllib\libgpl.c32
bios\com32\hdt\hdt.c32
bios\com32\lib\libcom32.c32
bios\com32\libutil\libutil.c32
bios\com32\lua\src\cmenu.c32
bios\com32\lua\src\cpu.c32
bios\com32\lua\src\dhcp.c32
bios\com32\lua\src\dmi.c32
bios\com32\lua\src\lfs.c32
bios\com32\lua\src\liblua.c32
bios\com32\lua\src\lua.c32
bios\com32\lua\src\pci.c32
bios\com32\lua\src\syslinux.c32
bios\com32\lua\src\vesa.c32
bios\com32\mboot\mboot.c32
bios\com32\menu\menu.c32
bios\com32\menu\vesamenu.c32
bios\com32\modules\cat.c32
bios\com32\modules\cmd.c32
bios\com32\modules\config.c32
bios\com32\modules\cptime.c32
bios\com32\modules\cpuid.c32
bios\com32\modules\cpuidtest.c32
bios\com32\modules\debug.c32
bios\com32\modules\disk.c32
bios\com32\modules\dmitest.c32
bios\com32\modules\elf.c32
bios\com32\modules\ethersel.c32
bios\com32\modules\gpxecmd.c32
bios\com32\modules\hexdump.c32
bios\com32\modules\host.c32
bios\com32\modules\ifcpu.c32
bios\com32\modules\ifcpu64.c32
bios\com32\modules\ifmemdsk.c32
bios\com32\modules\ifplop.c32
bios\com32\modules\kbdmap.c32
bios\com32\modules\kontron_wdt.c32
bios\com32\modules\linux.c32
bios\com32\modules\ls.c32
bios\com32\modules\meminfo.c32
bios\com32\modules\pcitest.c32
bios\com32\modules\pmload.c32
bios\com32\modules\poweroff.c32
bios\com32\modules\prdhcp.c32
bios\com32\modules\pwd.c32
bios\com32\modules\pxechn.c32
bios\com32\modules\reboot.c32
bios\com32\modules\sanboot.c32
bios\com32\modules\sdi.c32
bios\com32\modules\vesainfo.c32
bios\com32\modules\vpdtest.c32
bios\com32\modules\whichsys.c32
bios\com32\modules\zzjson.c32
bios\com32\rosh\rosh.c32
bios\com32\samples\advdump.c32
bios\com32\samples\entrydump.c32
bios\com32\samples\fancyhello.c32
bios\com32\samples\hello.c32
bios\com32\samples\keytest.c32
bios\com32\samples\localboot.c32
bios\com32\samples\resolv.c32
bios\com32\samples\serialinfo.c32
bios\com32\sysdump\sysdump.c32


2014年12月8日月曜日

InternetExplorerで、Google 検索プロバイダー

Internet Explorerをスパイウェアから解放した後は、いつもGoogleの検索ページと、Googleの検索プロバイダーをセットして帰るのですが、どうも何か一つ足りない感じです。

Google ウェブ検索
http://www.iegallery.com/Addons/Details/10012

↑ Googleなのに、アイコンには「oog」の部分しか見えていないという。。。MSの企業姿勢として問題がないのかどうか、疑いたくなるような表示です。。。

ーーー

↓ しかし、こちらが真打の模様です。こちらをインストールしますと、アドレスバーに単語を打ち込んだ途端、Google Suggestionが働いてインライン検索が使えます。これだ! と思いました。

Google Search
http://www.iegallery.com/Addons/Details/813

(2015/7/2) URLを更新しました。

2014年11月26日水曜日

ThumbGensPackとIE保護モードの絡み

Internet Explorer セキュリティ

Webサイトで、このプログラムを使ってWebコンテンツを開こうとしています

このプログラムには、発行元を確認するための有効なデジタル署名がありません。このプログラムは保護モードの外で開かれ、コンピューターが危険にさらされる恐れがあります。信頼している発行元からのプログラムだけを実行するようにしてください。

名前: C:\Program Files (x86)\ThumbGensPack\pdf2bmp2.exe
発行元: HIRAOKA HYPERS TOOLS, Inc.

今後、このプログラムに関する警告を表示しない

許可する 許可しない


この画面は毎度お馴染みの、権限の昇格を求めている画面です。Internet Explorer 7辺りと、Windows Vistaで実装された、保護モードの合わせ技によるものです。。。

「『低い権限』から『中間の権限』に昇格してから、pdf2bmp2.exeを実行してもよいか」の確認です。

許可はして頂いて大丈夫と思います。
しかし、なにぶん、使用しているプログラムがオープンソースベースでして、ソースコードの数量も膨大な為、内容を100%掌握している訳ではなく、バグ・不具合・情報漏えい等しないという保障は出来かねます。。。

将来的には、「低い権限」のまま動作させるようにし、確認は出ないように改良する予定です。

参考情報:

2014年11月21日金曜日

「ハードディスクの問題が検出されました」

「ハードディスクの問題が検出されました」

「データの損失を防ぐためにディスク上のファイルを直ちにバックアップしてから、コンピューターの製造元に連絡して、ディスクの修理または交換が必要かどうかを確認してください。」

「バックアップ プロセスを開始する」

「後でもう一度確認メッセージを表示する」
「次回の警告の前にディスクで障害が発生する場合は、ディスク上のプログラムとドキュメントのすべてを失う可能性があります。」

 


CrystalDiskInfo 5.6.2で確認しました。「異常」との評価結果です。Terastationを解体した際に出てきたSATA HDDを使っているのですが。。。 余り調子は良くなさそうな感じです。
 

ミラーリングRAID1で使っているので、片方壊れても大丈夫といえば大丈夫ですが。。。

ディスクの管理の方では何も言われませんでした。

2014年11月18日火曜日

SourceGrid で、CellのMeasureとDrawの寸法が合わない

SourceGridのCellの描画で奇妙な事に気が付きます。

Measureの時の横幅と、
Drawの時の横幅が異なります。

Measureの時は、横幅=セル幅そのもので計算されますが、
Drawの時はGetContentRectangleを呼ぶので、横幅=枠線などの余白を除いた幅 になります。

例えば、
Measureの時は、幅180あっても
Drawの時は、幅175しかない場合があります。

幅177.6328の文字列の場合、
Measureの時は1行で済みますが、
Drawの時は2行になります。

Measureの中のどこかでGetContentRectangleを呼んで、余白を削らないといけません。

私の場合、DevAge.Drawing.VisualElements.ContainerBase.OnMeasureContentの中で対処しています。

2014年11月17日月曜日

レスキュー用USBメモリの構築

Transcend社の32GB USBメモリを、レスキュー用USBメモリに仕立てようと、頑張っています。

目的は、
  • Windowsが起動しない、HDDが壊れた場合の調査用・データ救出用。

ソフトは、
  • PartedMagic
  • Ubuntu (USBブートが上手くいかない)
  • VistaPE
  • Clonezilla (調査用・データ救出用には利用し難い)
  • UltimateBootCD
  • PuppyLinux

上記を満たすLive CD Linuxを1USBに収めたいです。

ーーー

懸案事項として、各段階で「USBメモリを認識するかどうか」という課題が有ります。。。

起動段階
  • syslinux (ubcd526.iso等に入っているsyslinux 4.07でも十分に対応可能です)
  • grub4dos (不要。syslinuxだけで済ましたい)
  • vmlinuz (最近のLinuxであれば、特に問題なさそうです)

実装チップセット
  • PIIX
  • PIIX3 (VirtualBoxで試用可能)
  • PIIX4E (VMware Workstation 5.5 Spec, 6.5 Spec, Wiki)
  • PIIX5
  • ICH
  • ICH2
  • ICH3
  • ICH4
  • ICH5
  • ICH6
  • ICH7
  • ICH8
  • ICH9 (VirtualBoxで試用可能)
  • ICH10
  • PCH

Notes:
  • PIIX4E (Intel 440BX)は、Wikiによると、幅広い互換性・信頼性・人気があるらしく、syslinux~grub~vmlinuzまで良好な動作を期待できます。
     
  • ICH9のUSBデバイスは、vmlinuz/initrdの後、Linuxから認識できないようです。Live USBブートが失敗する報告をちらほら見かけます。
     
  • failed to load com32 file linux.c32の原因がようやく判りました。こちらの記事をご覧ください。

2014年11月12日水曜日

grub4dosをWindowsで組み込む

pmagic等を、外付けUSB-HDDにインストールする場合、grub4dosが役に立ちます。

導入手順メモ:
  1. こちらからBOOTICE_0.78.rarを入手し、中のBOOTICE.EXEを実行します。 
  2. ドライブを選んで、[Process MBR]。[Process PBR]の方がリスクが少ないかもしれません。
  3. [GRUB4DOS 0.4.5b (2010-05-03) (FAT/NTFS/Ext2)]等を選択、
  4. [Install / Config]
  5. 特にそのままで、[OK]
  6. ここから、grub4dos-0.4.4-2009-06-20.zipを入手してきて、書き込みます。
  7. menu.lstを構築します。
title pmagic
kernel /pmagic/bzImage edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 sleep=10 loglevel=0 keymap=us
initrd /pmagic/initramfs

2014年11月11日火曜日

WPFで、IRunnableWithProgress/IProgressMonitor

Eclipseを使っていた頃、IRunnableWithProgress/IProgressMonitorをはじめとする、いくつかのクラスに理想郷を求めまして、C#でも使えるように移植した試しが有ります。

ちょうど当時、CDを検品する、というソフトを作っていまして、WinForms仕様でIRunnableWithProgress/IProgressMonitorを実装しました。WinForms仕様と相性が抜群で、鳥肌ものだったのを思い出します。


これWPF版がないかな~ と嗅ぎまわっています。なければ自作するつもりでいます。。。

2014年10月24日金曜日

Viewstate 検証に失敗しました。 原因: 指定された viewstate で整合性チェックに失敗しました。

ASP.NET Forms で顧客 db を開発・運用しています。
しかしたまに例の黄色いエラー画面が出ます。

そういう場合は、サーバーマシンのイベントビューアを確認します。 内容は↓参照

(2016/6/11追記)
どうも、machineKey という物が有り、定期的に自動生成されるみたいです。
これが viewstate 無効化の原因になるようです。
参考: ASP.NET と MachineKey の関係をまとめてみた

うちではこんな感じで Web.config に対策するようにしています:
 
<configuration>
 <system.web>
  <machineKey validationKey="0ED6BCBA637BA0EC06E3FACD3925B6087731147597AB33EF7A033FF047508878FA67819F24AE6C8624A71E16A26A22A72145C478C1527D35AE7A8685D8EB5E82"
              decryptionKey="A44271A23EE2CC673476A17222DE0D86AF104EBEFC3A97CA"
              validation="SHA1"/>
 </system.web>
</configuration>

ジェネレータはこのような感じです:

using System;
using System.Text;
using System.Security.Cryptography;

namespace Crypto {
    public class KeyCreator {
        public static void Main(String[] args) {
            String[] commandLineArgs = System.Environment.GetCommandLineArgs();
            if (commandLineArgs.Length < 3) {
                Console.Error.WriteLine("machineKeyGenerator 24 64");
                Environment.ExitCode = 1;
                return;
            }
            string decryptionKey = CreateKey(System.Convert.ToInt32(commandLineArgs[1]));
            string validationKey = CreateKey(System.Convert.ToInt32(commandLineArgs[2]));
            Console.WriteLine("<configuration>");
            Console.WriteLine(" <system.web>");
            Console.WriteLine("  <machineKey validationKey=\"{0}\"", validationKey);
            Console.WriteLine("              decryptionKey=\"{0}\"", decryptionKey);
            Console.WriteLine("              validation=\"SHA1\"/>");
            Console.WriteLine(" </system.web>");
            Console.WriteLine("</configuration>");

            Console.ReadLine();
        }
        static String CreateKey(int numBytes) {
            RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
            byte[] buff = new byte[numBytes];
            rng.GetBytes(buff);
            return BytesToHexString(buff);
        }
        static String BytesToHexString(byte[] bytes) {
            StringBuilder hexString = new StringBuilder(64);
            for (int counter = 0; counter < bytes.Length; counter++) {
                hexString.Append(String.Format("{0:X2}", bytes[counter]));
            }
            return hexString.ToString();
        }
    }
}

GAE 上にジェネレーターを用意しました。精度が気にならないのであればこちらからでも。

ーーー
Event code: 4009
Event message: Viewstate 検証に失敗しました。 原因: 指定された viewstate で整合性チェックに失敗しました。
Event time: 2014/10/24 9:15:52
Event time (UTC): 2014/10/24 0:15:52
Event ID: 86a80a707a2d41b8be290a342d793e29
Event sequence: 98
Event occurrence: 1
Event detail code: 50203

Application information:
    Application domain: /LM/W3SVC/2/ROOT/hdb-3-130585818700385545
    Trust level: Full
    Application Virtual Path: 秘密
    Application Path: 秘密
    Machine name: DD7

Process information:
    Process ID: 6832
    Process name: w3wp.exe
    Account name: IIS APPPOOL\.NET v2.0

Request information:
    Request URL: 秘密
    Request path: 秘密
    User host address: 秘密
    User: 
    Is authenticated: False
    Authentication Type: 
    Thread account name: IIS APPPOOL\.NET v2.0

ViewStateException information:
    Exception message: 無効な viewstate です。
    Client IP: 秘密
    Port: 46470
    User-Agent: Mozilla/5.0 (Linux; U; Android 4.1.1; ja-jp; ME172V Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30
    PersistedState: 秘密
    Referer: 秘密
    Path: 秘密

Custom event details:
ーーー

2014年10月14日火曜日

メーラーのアドレス帳の引っ越しや相互運用について


Outlook 2003 → 外の世界へ
  • Microsoft Access
  • Microsoft Excel
  • テキストファイル
  • 個人用フォルダ ファイル (.pst)

Outlook 2003 ← 外の世界から
  • Microsoft Access
  • Microsoft Excel
  • Outlook Express 4.x, 5.x, 6.x
  • Schedule Plus Interchange (.sc2)
  • Schedule+ 7.0
  • テキストファイル
  • ロータス オーガナイザー 2000
  • 個人アドレス帳
  • 個人用フォルダ ファイル (.pst)
  • vCard ファイル (.vcf)

Windows Live Mail 2012 → 外の世界へ
  • カンマ区切り (.CSV)
  • 名刺 (.VCF)

Windows Live Mail 2012 ← 外の世界から
  • カンマ区切り (.CSV)
  • Windows アドレス帳 (.WAB)
  • 名刺 (.VCF)
  • 現在の Windows ユーザーのアドレス帳

Mozilla Thunderbird 24.3 → 外の世界へ
  • LDIF (*.ldi; *.ldif)
  • カンマ区切り (*.csv)
  • タブ区切り (*.tab; *.txt)

Mozilla Thunderbird 24.3 ← 外の世界から
  • Eudora
  • Outlook
  • Outlook Express
  • vCard ファイル (.vcf)
  • テキストファイル (LDIF, .tab, .csv, .txt)

Outlook Express 6 → 外の世界へ
  • アドレス帳 (WAB)
  • 名刺 (vCard)
  • Microsoft Exchange 個人アドレス帳
  • テキスト ファイル (CSV)

Outlook Express 6 ← 外の世界から
  • アドレス帳 (WAB)
  • 名刺 (vCard)
  • Microsoft Exchange 個人アドレス帳
  • テキスト ファイル (CSV)

ThunderbirdのLDIF形式について。参考情報:
http://dd-kaihatsu-room.blogspot.jp/2014/10/thunderbirdldif.html

CSV項目の対比[Outlook2003, Thunderbird24.3, Outlook Express 6, Windows Live Mail 2012]
https://drive.google.com/file/d/0Bygl-em20CSKeFA5Y3hvNlRuS2s/view?usp=sharing


2014年10月9日木曜日

レコード xxx を読むことができません。Excel SYLK

機械的に作出したSYLKファイルを読み込む際に、Excelがエラーを報告する場合が有ります。


「Microsoft Excel」
「レコード 373 を読むことができません。」
「引き続きエラーを表示しますか?」

Cygwin を使い、sylk をレコードごとに行に再分割する方法例:
cat /cygdrive/c/DL/output\ \(15\).slk | tr -d "\r\n" | sed -e "s/;;//g" | sed -e "s/;/\r\n/g" > AllRecord.txt

変換が必要な文字があります:

セミコロン → ";;"
タブ → "\x1B\x20\x39" 
改行 → "\x1B\x20\x3A"

---
エラーが出る例 その 1 【セミコロン編】
ID;DD
C;Y1;X1;K"ABC;DEF"
E

結果:
  • レコード 4 を読むことができません。レコード数は、行数目ではなく、セミコロン( ; )の出現回数で決まるようです。
  • セルの内容は「ABC」となっていて、「;DEF」の部分が無くなります。データが損失しているので、問題有りです。
---
修正した例
ID;DD
C;Y1;X1;K"ABC;;DEF"
E

結果:
  • エラーは表示されません。
  • セルの内容は「ABC;DEF」となっていて、期待していたデータが表示されました。

---
エラーが出る例 その 2 【タブ編】
ID;DD
C;Y1;X1;K"ABC DEF"
E

結果:
  • レコード 4 を読むことができません。レコード数は、行数目ではなく、セミコロン( ; )の出現回数で決まるようです。
  • タブが消えます。"\x1B\x20\x39" で対応できます。


2014年10月4日土曜日

ThunderbirdのLDIF属性について

メーラーのアドレス帳の移行方法を考えていました。

Thunderbirdに対して、ファイルかrあアドレス帳をインポートするには。。。
  • CSV形式
  • LDIF形式
アドレス帳にも条件が有りまして、
  • Outlook Expressでは、グループ(フォルダ)を利用しています。同報通信用です。これもそのまま移行したい。

LDIF形式が結構複雑な形式になっていて、条件を満たしそうな感じがいたしました。

LDIF_AddressBook.ods
https://drive.google.com/file/d/0Bygl-em20CSKNTlmV1RhRGVzQUE/view?usp=sharing

しかし目下、LDIF形式に変換する方法が無いのが課題です。。。

2014年9月26日金曜日

unoconvが失敗「ERROR: DLL load failed: 指定されたプロシージャが見つかりません。」

unoconvを使って変換しようとすると、次のようなエラーに遭遇致しました。

unoconv: Cannot find a suitable pyuno library and python binary combination in C:\Program Files (x86)\OpenOffice 4

ERROR: DLL load failed: 指定されたプロシージャが見つかりません。



unoconv: Cannot find a suitable pyuno library and python binary combination in C:\Program Files (x86)\OpenOffice 4

ERROR: DLL load failed: 指定されたプロシージャが見つかりません。



unoconv: Cannot find a suitable office installation on your system.

ERROR: Please locate your office installation and send your feedback to:

       http://github.com/dagwieers/unoconv/issues

利用しているOpenOfficeは「Apache_OpenOffice_4.1.1_Win_x86_install_ja.exe」です。

unoconvで当該エラーが出ている箇所では、「import uno, unohelper」をやっています。

そこで、自分でpythonを起動して、それをやってみました。

Python 2.7 (r27:82525, Jul  4 2010, 09:01:59) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import uno
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "uno.py", line 36, in <module>
    import socket # since on Windows sal3.dll no longer calls WSAStartup
  File "C:\Program Files (x86)\OpenOffice 4\program\python-core-2.7.6\lib\socket
.py", line 47, in <module>
    import _socket
ImportError: DLL load failed: 指定されたプロシージャが見つかりません。
>>>

「import _socket」が失敗しています。

Dependency Walkerで、DLLファイル"C:\Program Files (x86)\OpenOffice 4\program\python-core-2.7.6\lib\_socket.pyd"
をチェック致しましたところ、エクスポート関数が無い!
通常、init_xxxなどが輸出されていると思われるのですが、それが無いのです。

私のPython2.7に付いてくるファイル「C:\Python27\DLLs\_socket.pyd」では、「init_socket」と「init_sockobject」が輸出されていました。

つまり、OpenOffice 4.1.1に付いてくるPythonは部分的に壊れている可能性が高いです。

私の手持ちの_socket.pydで置き換えました所、エラーはでなくなりました。

一応、本家にも報告致しました。

2014年9月11日木曜日

HTTP.sysがTCP port 80を押さえてしまう

何者かがHTTP.sysを使役し、TCP port 80を押さえる事によって、ApacheがTCP port 80を使用できなくなりました。Windows Server 2008 R2 Foundation

イベントビューアの「アプリケーション」ログ:
---
The Apache service named  reported the following error:
>>> (OS 10013)アクセス許可で禁じられた方法でソケットにアクセスしようとしました。  : make_sock: could not bind to address 0.0.0.0:80    
---

まず、次のコマンドで滅しました。
---
netsh http delete urlacl url=http://+:80/Temporary_Listen_Addresses/
netsh http delete urlacl url=http://+:80/MSDEPLOYAGENTSERVICE/
---

更に、サービス「MsDepSvc」Web Deployment Agent Serviceについて、停止。自動→無効。

これで何とかApacheがTCP port 80を使用できるようになりました。

一覧化には、 netsh http show urlacl を用います。

C:\Users\ku_000>netsh http show urlacl

URL 予約:
-----------------

    予約済み URL            : http://+:80/Temporary_Listen_Addresses/
        ユーザー: \Everyone
            リッスン: Yes
            委任: No
            SDDL: D:(A;;GX;;;WD)

予約ではなく、実際に使っている場合は、netsh http show servicestate で確認するようです。

IIS が TCP ポート 80 番を使ってしまうという情報も有ります。

2014年7月22日火曜日

LinkStationのIPアドレスが192.168.11.150に戻ってしまう?

今朝、TERA2(LinkStation)を閲覧しようと思い、\\TERA2 にアクセスを試みたところ、できませんでした。
BUFFALO NAS Navigator 2で確認した所、IPアドレスが既定値と思われる192.168.11.150になっています。


この画面で「はい」を選択しても、成功する事は経験上、ほぼ有り得ません。。。

NICにIPアドレスを増やして、Web設定画面にアクセスして、再起動を掛けて対処致しました。




 DHCPを有効にしています。しかし、何らかの理由でdhcpサーバーからアドレスを取得できなかったのだろうか。。。

2014年7月15日火曜日

hadoop 2.4.1や2.7.0用winutils.exeとhadoop.dllのダウンロード

試用したかったので、懸案のwinutilsを自前でビルド致しました。

拙作自炊のwinutils.exeとhadoop.dllがダウンロードできます。

hadoop-2.4.1-VC11-winutils.7z
https://drive.google.com/file/d/0Bygl-em20CSKRW5mODhCOXI2clk/edit?usp=sharing

プラットフォームごとに分けています。

x86\hadoop.dll
x86\winutils.exe
x64\hadoop.dll
x64\winutils.exe

Notes
  • jdk1.7.0_45を使いました。
  • Microsoft Visual Studio Express 2012 for Windows Desktopを使いました。
  • Static linkedです。C Runtime Libraryの心配は、ございません。

hadoop-2.7.0用 ダウンロード

2014年6月30日月曜日

切断したネットワークドライブ Dokan

Dokanを使い、仮想ドライブを作っています。

ネットワークドライブ、という扱いにすると、どうしても「切断したネットワークドライブ」になってしまいます。Windows 7だけ? Windows XPではならない、という情報も。。。


http://dokan.googlecode.com/svn/trunk/sys/howtobuild.txt

上のURLのテキストに、次の文言が記されています。

** Network filesystem/provider support

Dokan supports network filesystem mode. You need dokan network provider dll in \dokan_np.
Please build it and copy dokannp.dll into Windows\system32 directly.
You need to register network provider dll to system : dokanctl.exe /i n 
(Unregister network provider : dokanctl.exe /r n) 
You probably need to restart your computer after register or unregister network provider.
And try "mirror.exe /r root_path /l drive_letter /n". 
/n option means to mount as network drive 
Network filesystem mode is an experimental implementation and not tested well. 

どうも、Dokan専用、network providerを提供する必要が有るようです。

ーーー

(2014/8/2追記, 9/19編集)

判りました。

結論的には、Windows 7の64ビット版でも対応可能、デジタル署名がなくても実現可能です。



但し、64ビット環境では、32ビット用DLL、64ビット用DLLの、両方のDLLを用意する必要が有ります。

レジストリでは、設定は一か所だけ。例のようになっていると思います。

例:%SystemRoot%\System32\davclnt.dll

両方を同時に設置できる謎は、レジストリの仮想化、ファイルシステムの仮想化に有ります。

次のパスのように、仮想化によって実在場所の解釈が異なるので、各々設置できるようになっています。

C:\Windows\System32\davclnt.dll
C:\Windows\SysWOW64\davclnt.dll

これがトリックの全貌でした。。。

2014年6月9日月曜日

Accessで、ODBCリンクテーブル。SQL Native Clientで接続

10分間、つまり600秒間、通信(SQLクエリ)が無いと、接続が切れてしまう。

切れてもエラーにはならないが、再接続までにちょっと時間が掛かる点がネックとのこと。。。

ーーー
リモート クエリの制限時間を設定する方法 (SQL Server Management Studio)
http://msdn.microsoft.com/ja-jp/library/ms189040(v=sql.100).aspx

「remote query timeout オプションは、リモート操作を実行してから MicrosoftSQL Server がタイムアウトになるまでの時間 (秒単位) を指定する場合に使用します。既定値は 600 で、10 分間待機できます。」
ーーー

これかな?

設定方法は次のKBが詳しいです。

SQL Server でリンク サーバー クエリを実行するとエラー メッセージ "タイムアウトが発生しました" が表示される
http://support.microsoft.com/kb/314530/ja

確認方法は良くわかっていませんが、
クエリ「select * from sys.configurations;」で引き出すことはできました。

2014年6月6日金曜日

アイコン作成・編集ソフトウェア 調査の件

@icon変換 (DL)

概要:
  • 画像ファイル⇔アイコン 変換するソフトウェア
気になるメリット:
  • PNG形式の入出力Ok
  • 透明度の編集Ok
確認している難点:
  • ICOファイルを開く際、Vistaアイコン(PNG形式のアイコン)を読み込みできない場合有り。
  • 16色のアイコンをPNG出力すると、透明度情報が無くなる。

Pixelformer (DL)

概要:
  • アイコン編集ソフトウェア

ExplodeICO (DL)

概要:
  • ICOファイルの中身をPNGファイルで出力する。
気になるメリット:
  • Vistaアイコン対応。
確認している難点:
  • 手抜きの為、すべて32ビットPNGで出力してしまう。


2014年5月15日木曜日

nsisでMsiQueryProductState

Access Runtime 2010が入っていなければ、チェックを入れる。
Microsoft SQL Server 2008 Native Client x86/x64が入っていなければ、チェックを入れる。
例:
!include "LogicLib.nsh"

  !macro _IsProductInstalled _a _b _t _f
    Push $0
    !insertmacro _LOGICLIB_TEMP
    StrCpy $0 `${_b}`
    System::Call 'msi.dll::MsiQueryProductStateA(t) i(r0) .r0'
    StrCpy $_LOGICLIB_TEMP $0
    Pop $0
    !insertmacro _= $_LOGICLIB_TEMP 5 `${_t}` `${_f}`
  !macroend
  !define IsProductInstalled `"" IsProductInstalled`

Function .onInit
  ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{90140000-001C-0000-0000-0000000FF1CE}" "InstallLocation"
  ${If} $0 == ""
    SectionSetFlags ${AccessDatabaseEngine} 1
  ${EndIf}

  ${If} "$PROGRAMFILES32" == "$PROGRAMFILES64"
    ${IfNot} ${IsProductInstalled} "{A51AFEE1-ED96-45F1-85E4-6A41BC4461C3}" ;x86
      SectionSetFlags ${x86} 1
    ${EndIf}
  ${Else}
    ${IfNot} ${IsProductInstalled} "{5F3BA538-ADB6-48C4-90B1-179C0358C53E}" ;x64
      SectionSetFlags ${x64} 1
    ${EndIf}
  ${EndIf}

FunctionEnd
若干、修正しました。5/15 11:43, 11:52

INSTALLSTATEの定義は次の通り:
typedef enum tagINSTALLSTATE
{
 INSTALLSTATE_NOTUSED      = -7,  // component disabled
 INSTALLSTATE_BADCONFIG    = -6,  // configuration data corrupt
 INSTALLSTATE_INCOMPLETE   = -5,  // installation suspended or in progress
 INSTALLSTATE_SOURCEABSENT = -4,  // run from source, source is unavailable
 INSTALLSTATE_MOREDATA     = -3,  // return buffer overflow
 INSTALLSTATE_INVALIDARG   = -2,  // invalid function argument
 INSTALLSTATE_UNKNOWN      = -1,  // unrecognized product or feature
 INSTALLSTATE_BROKEN       =  0,  // broken
 INSTALLSTATE_ADVERTISED   =  1,  // advertised feature
 INSTALLSTATE_REMOVED      =  1,  // component being removed (action state, not settable)
 INSTALLSTATE_ABSENT       =  2,  // uninstalled (or action state absent but clients remain)
 INSTALLSTATE_LOCAL        =  3,  // installed on local drive
 INSTALLSTATE_SOURCE       =  4,  // run from source, CD or net
 INSTALLSTATE_DEFAULT      =  5,  // use default, local or source
} INSTALLSTATE;

Windows Installerの細かい所は存じませんが、5が帰ってきたらセットアップ済みのようです。

MsiQueryProductState function
http://msdn.microsoft.com/en-us/library/aa370363(v=vs.85).aspx

INSTALLSTATE_UNKNOWN (-1)
The product is neither advertised or installed.

INSTALLSTATE_ADVERTISED (1)
The product is advertised but not installed.

INSTALLSTATE_ABSENT (2)
The product is installed for a different user.

INSTALLSTATE_DEFAULT (5)
The product is installed for the current user.

2014年4月4日金曜日

DataRowやDataRowViewで、DBNullやnullやNullableを設定したり取得したりする件

IsNullになっている列から、値を取得

DataRow → DBNull
DataRowView → DBNull

結論: DataRow.IsNull(...) == true の場合、DataRow[...] では DBNull 型のインスタンスが返って来る。

※ クラス(例: String)でも値型(例: TimeSpan)でも、DBNull が出て来る。
※ クラス(例: String)の場合、null を突っ込んだ後でも、DBNull が出て来る。

値を設定

結論: 代入で null に設定したい場合は、常に DBNull.Value を渡すのが無難。

クラス(例: String)の場合:

[Ok] DataRow ← DBNull
[Ok] DataRowView ← DBNull
[Ok] DataRow ← null
[Ok] DataRowView ← null

値型(例: TimeSpan)の場合:

[Ok] DataRow ← DBNull
[Ok] DataRowView ← DBNull
[例外発生] DataRow ← null
[例外発生] DataRowView ← null
[例外発生] DataRow ← new Nullable<TimeSpan>();
[例外発生] DataRowView ← new Nullable<TimeSpan>();

※ 『追加情報: Column 't' を null に設定できません。DBNull を使用してください。』

オマケ LINQ to DataSet でのクエリ
DataRow.Field<T>("列名");
DataRow.SetField<T>("列名", 値);
T には int? など Nullable が利用できます。

総括

判定は、{クラス・値}、{DataRow・DataRowView}の別に関わらず、DBNull で実施する:
  • dr["Column"] is DBNull
  • drv["Column"] is DBNull
代入もDBNullで実施する。
  • dr["Column"] = DBNull.Value
  • drv["Column"] = DBNull.Value

2014年4月2日水曜日

ClickOnce アプリのデバッグと、セキュリティの警告

「現在のプロジェクト設定は、プロジェクトが特定のセキュリティのアクセス許可でデバッグされることを指定しています。このモードでは、コマンドライン引数は実行可能ファイルに渡されません。デバッグを続行しますか?」


ーーー

コマンドライン引数を確かめますと、確かに指定しています。


ーーー

解決するには、XXX.csproj.userファイル中、

<EnableSecurityDebugging>false</EnableSecurityDebugging>

こちらをfalseに設定します。

ーーー

「特定のセキュリティのアクセス許可」とやらは提供されなくなりますが、そういう複雑なプロジェクトを組んでいらっしゃる方は、普通、入口を切り分けると思いますので。。。

            if (ApplicationDeployment.IsNetworkDeployed) {
// ClickOnce 起動時は、こちら
// 追加の処理…
}
else {
// それ以外 (exe ファイルの直接起動時、デバッグ時など)
// 追加の処理…
}

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
return;

ーーー

画面の設定手順としましては:

プロジェクトのプロパティ
→「セキュリティ」タブ
→「詳細設定」ボタン
→「このアプリケーションを選択されたアクセス許可のセットでデバッグする」 チェックを外す。

ーーー

ただし、アセンブリ参照の内容によってはこの画面まで至ることができません。その場合、ファイルの直接編集が有効です。

2014年3月13日木曜日

SQL Serverで日付


{ d 'yyyy-mm-dd' }

国際化に対応した Transact-SQL ステートメントの記述
http://technet.microsoft.com/ja-jp/library/ms191307.aspx

PostgreSQL 9.2では使えませんでした。

2014年3月7日金曜日

Windows Server 2008 R2で、BitLockerを有効化しました

デモサイトという機能がございまして、Windows Serverの上で稼働しています。

この前、ハードディスクの寿命で停止しまして、再インストールしました。再インストールついでに、BitLockerを有効化したという訳です。

順番に画面写真を並べていきながら、手順をご説明していきます。

デバイスマネージャに TPM が有ったのでやってみました。これがないと、そもそもできません。

「BitLocker ドライブ暗号化」を追加します。

確認画面。

再起動が必要です。


再起動します。


再起動しました。インストールは正常に完了しました。

これから、Cドライブを暗号化していきます。

確認が入ります。

しばらくお待ちください。


回復キーをどのように保存するか、尋ねてきます。ここで重要なのは、回復キーは、自分で設定できるパスワード等ではなく、GUIDの形をしたバイト列が、本当のキーである点です。

ファイルに保存することにしました。

Cドライブには保存できません。箱の中に、その箱の鍵を入れることはできません、的な。

ネットワークパスにて保存しました。

こんな形をしているようです。0-9A-ZはXに置き換えてありますが。。。
BitLocker ドライブ暗号化の回復キー 

 回復キーは、BitLocker で保護されているドライブのデータの回復に使用します。

これが適切な回復キーであることを確認するには、このキーの ID を、回復の画面に表示される ID と比較してください。

回復キー ID: XXXXXXXX-XXXX-XX
完全な回復キー ID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

BitLocker 回復キー:
XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX

ようやく暗号化を開始します。

再起動を求められました。

再起動しました。コンピュータを閲覧しますと、空き容量が激減している事が確認できます。BitLockerの変換中は、OSを問わず、これに近い状態になります。

現状を確認したい。BitLocker ドライブ暗号化

「暗号化中です」 使用している領域の大小に関わりませず、全部を変換してしまいます。

暗号化が済んだ後の状態。空き容量が、5.10GB→57.1GBに激増しています。

これでやっと普通に使える状態となりました。めでたしめでたし。。。

(10/14追記)

しかし、そのめでたい平和もつかの間、、、

ある日突然、Windowsが起動しなくなりました。。。画面は次の様子です。

 
「Windows BitLockerドライブ暗号化情報
BitLockerが有効にされてから、システムのブート情報が変更されています。
このシステムを起動するには、BitLocker回復キーの入力が必要です。
システムのブート情報への変更が承認されていることを確認してください。
システムのブート情報への変更が信頼できるものである場合は、BitLockerを一時停止してから再開してください。これにより、新しいブート情報が使われるようにBitLockerがリセットされます。
そうでない場合は、システムのブート情報を復元してください。

Enter=続行」

更には、次の様に、入力を求められます。


「Windows BitLockerドライブ暗号化の回復キーの入力
このドライブの回復キーを入力してください。
____ ____ ____ ____
____ ____ ____ ____
ドライブラベル: DDS C: 2014/08/21
回復キー ID:
F1からF9キーを使って1から9を指定します。F10キーを使って0を指定します。
カーソルを移動するにはTAB、SHIFT-TAB、HOME、END、方向キーを使います。
上下の方向キーは入力された数字の変更に利用されます。
Enter=続行 Esc=終了」

バックアップ用に外付けUSBハードディスクを設けたのですが、これが気に入らなかったみたい。。。

設計は、かなり安全側に倒してあるようですね。BitLockerは。

勿論回復キーとやらを入力すると再開できたのですが、件のUSBハードディスクが無い状態で再開しても意味はなく。。。面倒なことです。


それに関して色々調べていますと、BitLockerのドライブには状態が有ることがわかります:
【有効化】 BitLockerで暗号化が済んでいて、防備が万全な状態。
【一時停止】 BitLockerで暗号化が済んでいて、恐らく私が想像するに、回復キーが無防備な状態で保存されている状態。結局、無防備な状態。しかし、回復キーが常時利用できるので、ブート情報が変更されても、起動は妨害されない。
【再開】 有効化と同じ。
【無効化】 BitLockerで暗号化されていない、無防備な状態。


時に環境を変える際には、BitLockerのドライブを【一時停止】にして、という記述が近辺で見られた気がしますので、「え、暗号化しているのに、一時停止って、どういう動き??」 を考えた時に思いました。「回復キーが無防備な状態で保存される」という動きなんだ、という結論に至りました。


運用が難しいですね。BitLockerは。

2014年3月5日水曜日

fltmc.exe avast! Free Antivirus

avast! Free Antivirus (2014.9.0.2013)

fltmc.exe
Filter Name                     Num Instances    Altitude    Frame
------------------------------  -------------  ------------  -----
aswSP                                   5       388400         0
aswMonFlt                               6       320700         0
aksdf                                   6       145900         0
aswSnx                                  4       137600         0
luafv                                   1       135000         0
FileInfo                                6        45000         0

Kingsoft AntiVirus 2014
Filter Name                     Num Instances    Altitude    Frame
------------------------------  -------------  ------------  -----
aswSP                                   5       388400         0
kisknl                                  5       383160         0
aswMonFlt                               6       320700         0
aksdf                                   6       145900         0
aswSnx                                  4       137600         0
luafv                                   1       135000         0
FileInfo                                6        45000         0

2014年3月3日月曜日

英語版Windows、バイト数の問題

バイト数とは?
文字コード
パソコンは、英語圏で開発。

情報量、ビット。On/Off 1ビット。
切れ目のいい。
CPU←→メモリ 通信 区切れのいい大きさ。1 octet → 1byte 1word(Intel 2bytes) 1dword(Intel 4bytes)

パソコンは、英語圏で開発→1バイト(0-255)256通り。A-Za-z0-9 26+26+10 56文字。「十分に収まるやん! (^-^)」
文字は7ビット目まで。(0-127)で表現しなさい。

日本語。2,000文字!?
256に収まらない!?
文字コード。日本語やアラビア語、韓国語、中国語、各々の国で自国語を表現するルール→文字コード
・Shift_JIS (Microsoft) 日本語表現可能。一般的。Windowsも使う。1バイト2バイトで済む。
・JIS (NEC) 日本語表現可能。8ビット目使わず。メールに最適。表現が複雑。ここから英数ですよ。ここから日本語ですよ。切り替えを含む。
・EUC (UNIX文化)。3バイトまで。
・Unicode 多国語 (UTF-8 UCS16 UTF-32)。表現方法により1-4バイト変換する。わが社のドルフィンは、これ。

ーーー
Windows(32ビットから)内部では2種類の文字コード。
・ANSI(ローカル)(Windows95,98,Me内部ではこちら)
→日本語Windowsでは、CP932 (Shift_JIS)
→中国語Windowsでは、GB???
→韓国語Windowsでは、???
・Unicode(UCS16)。内部ではこちら→Windows NT3.1 3.5 3.51 4.0 2000 XP 2003 Vista 7 2008 8 2008R2 8.1の、WindowsではすべてUnicode。

アプリの質。
A→Ansi。一部の古いアプリ。
W→Unicode。Internet Explorer←DD Firefox←DD Chrome←DD ddproxy5(.NET)←DD Windows (NT)標準アプリ 日本語入力アプリ Word Excel PowerPoint AdobeReader

ーーー
英語環境。
・英語版Windows買う
・Amazon EC2で、Windows Serverを時間借りして検証する。。。


2014年2月21日金曜日

一つのNICに複数のIPアドレスを持つと、名前解決に問題発生?

私が使っているDD11。

PC4という貸出機が有るのですが、
  • DD11からPC4という名前をIPアドレスに解決できません。
  • DD11からPC4へ、IPアドレスでのpingは通ります。
マルチIPが良くなかったようです。こういう感じの:

本当は192.168.2.111だけなのですが、何かの設定の都合で192.168.0.2を増やしていた事を忘れていました。

PC4からping DD11すると、192.168.0.2に解決されていました。PC4のIPアドレスは、192.168.2.xxx。これでは応答できません。

192.168.0.2を止めて、192.168.2.111だけにしたら、ホスト名でpingが通るようになりました。

2014年2月5日水曜日

【調査中】タスク実行中にForm.ShowDialogが使えない?

タスク機能でプログラムを実行している時に、Form.ShowDialog が動かないようです。

コンストラクターを抜けた後、Loadが呼ばれず、メッセージループで屯している様子。。。

Windows Vista以上の「構成」で動かすとそうなる模様。

2014年1月29日水曜日

【調査中】0x800736FDとは

0x800736FDとは、ERROR_SXS_UNTRANSLATABLE_HRESULTのようです。
ーーー
//
// MessageId: ERROR_SXS_UNTRANSLATABLE_HRESULT
//
// MessageText:
//
// An HRESULT could not be translated to a corresponding Win32 error code.
//
#define ERROR_SXS_UNTRANSLATABLE_HRESULT 14077L
ーーー

エラールックアップによると、0x800736FDは、
「HRESULT を対応する Win32 のエラー コードに変換できませんでした。 」

イベントビューには次のような記録が・・・
ーーー
製品: Microsoft Office Access 2010 -- エラー 1935.アセンブリ コンポーネント {63E949F6-03BC-5C40-A01F-C8B3B9A1E18E} のインストール中にエラーが発生しました。HRESULT: 0x800736FD。アセンブリ インターフェイス: IAssemblyCacheItem、関数: Commit、アセンブリ名: policy.8.0.Microsoft.VC80.CRT,version="8.0.50727.4053",type="win32-policy",processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b"
ーーー

因みに、エラー画面は、こちらです。
ーーー

ーーー

エラールックアップによると、1935は、
「ログオン エラー: ログオンしているコンピューターは認証ファイアウォールによって保護されています。指定されたアカウントはコンピューターに認証することを許可されていません。 」

WinError.hの定義では、1935はERROR_AUTHENTICATION_FIREWALL_FAILEDです。
ーーー
//
// MessageId: ERROR_AUTHENTICATION_FIREWALL_FAILED
//
// MessageText:
//
// Logon Failure: The machine you are logging onto is protected by an authentication firewall. The specified account is not allowed to authenticate to the machine.
//
#define ERROR_AUTHENTICATION_FIREWALL_FAILED 1935L
ーーー

さっぱり見えて参りません。。。

こういうイベントも記録されていました。
ーーー
障害バケット 、種類 0
イベント名: WindowsWcpOtherFailure3
応答: 使用不可
Cab ID: 0

問題の署名:
P1: 6.1.7601
P2: base\wcp\componentstore\csd_winners.cpp
P3: CCSDirectTransaction::AddImplicationsToCatalogsAndVerifyComponentHashes
P4: 1302
P5: 80092004
P6: 0xe014866f
P7: 
P8: 
P9: 
P10: 

添付ファイル:
C:\Windows\Logs\CBS\CbsPersist_20140106040306.cab
C:\Windows\Logs\CBS\CbsPersist_20140106233739.cab
C:\Windows\Logs\CBS\CbsPersist_20140107235947.cab
C:\Windows\Logs\CBS\CbsPersist_20140115180053.cab
C:\Windows\Logs\CBS\CbsPersist_20140115192920.cab
C:\Windows\Logs\CBS\CBS.log
C:\Windows\servicing\Sessions\Sessions.xml
C:\Windows\winsxs\poqexec.log
C:\Windows\System32\LogFiles\Scm\SCM.EVM
C:\Windows\Logs\CBS\FilterList.log

これらのファイルは次の場所にある可能性があります:


分析記号: 
解決策を再確認中: 0
レポート ID: 7d1994a4-8887-11e3-99e9-4437e69250f1
レポートの状態: 0
ーーー

C:\Windows\Logs\CBS\CBS.logが内容としては有用そう。エラー表記が有ったので、その部分を引用。
ーーー
2014-01-29 10:48:45, Info                  CSI    000000e4 Performing 1 operations; 1 are not lock/unlock and follow:
  Install (5): flags: 0 tlc: [policy.8.0.Microsoft.VC80.CRT, Version = 8.0.50727.762, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope neutral, PublicKeyToken = {l:8 b:1fc8b3b9a1e18e3b}, Type = [l:24{12}]"win32-policy", TypeName neutral, PublicKey neutral]) ref: ( flgs: 00000000 guid: {27dec61e-b43c-4ac8-88db-e209a8242d90} name: [l:0]"" ncdata: [l:62{31}]"C:\windows\system32\msiexec.exe") thumbprint: [l:128{64}]"bd83dce340498e7c363093c2fc74dfb58e1ec17770453905172c7471fadd9333"
2014-01-29 10:48:46, Info                  CSI    000000e5 Component change list: 
2014-01-29 10:48:46, Info                  CSI    000000e6 Couldn't find the hash of component: policy.8.0.Microsoft.VC80.CRT, Version = 8.0.50727.762, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope neutral, PublicKeyToken = {l:8 b:1fc8b3b9a1e18e3b}, Type = [l:24{12}]"win32-policy", TypeName neutral, PublicKey neutral in the catalog [l:192{96}]"\SystemRoot\WinSxS\Catalogs\bd83dce340498e7c363093c2fc74dfb58e1ec17770453905172c7471fadd9333.cat".

2014-01-29 10:48:46, Error                 CSI    000000e7@2014/1/29:01:48:46.071 (F) d:\win7sp1_gdr\base\wcp\componentstore\csd_winners.cpp(1302): Error 80092004 [Warning,Facility=FACILITY_NTSSPI,Code=8196 (0x2004)] originated in function CCSDirectTransaction::AddImplicationsToCatalogsAndVerifyComponentHashes expression: (null)
[gle=0x80004005]
2014-01-29 10:48:46, Error                 CSI    000000e8 (F) 80092004 [Warning,Facility=FACILITY_NTSSPI,Code=8196 (0x2004)] #35230# from CCSDirectTransaction::PrepareForCommit(...)[gle=0x90092004]
2014-01-29 10:48:46, Error                 CSI    000000e9 (F) 80092004 [Warning,Facility=FACILITY_NTSSPI,Code=8196 (0x2004)] #35229# from CCSDirectTransaction::ExamineTransaction(...)[gle=0x90092004]
2014-01-29 10:48:46, Error                 CSI    000000ea (F) 80092004 [Warning,Facility=FACILITY_NTSSPI,Code=8196 (0x2004)] #35228# from CCSDirectTransaction_IRtlTransaction::ExamineTransaction(...)[gle=0x90092004]
2014-01-29 10:48:46, Error                 CSI    000000eb (F) CRYPT_E_NOT_FOUND #35085# from Windows::COM::CPendingTransaction::IStorePendingTransaction_Analyze(...)[gle=0x80092004]
2014-01-29 10:48:46, Error                 SXS    Analyze Transaction failed with 0x80092004
2014-01-29 10:58:46, Info                  CBS    Reboot mark refs incremented to: 1

ーーー

コンポーネント{63E949F6-03BC-5C40-A01F-C8B3B9A1E18E}が何者であるか、MsiEnumClients/MsiGetProductInfo/MsiGetComponentPathを駆使し、調べました。

x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.xxxxx.manifest

このような物であることが判明。xxxxxは色々変化している部分なので、特定が難しい所です。

列挙した結果。CSVの内容は、ProductID、状態、ProductNameプロパティ、ComponentPathです。
ーーー
{44D4AF75-6870-41F5-9181-662EA05507E1} 3 Microsoft Document Explorer 2005 C:\windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.42_none_5c4003bc63e949f6.manifest
{53C799C7-01DB-446F-9399-4DA4159A1D17} 3 Microsoft Visual Studio 2005 Standard Edition - JPN C:\windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_517205a10f4550e3.manifest
{90120000-0020-0411-0000-0000000FF1CE} 3 2007 Office system 互換機能パック C:\windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.762_none_9193a620671dde41.manifest
{837b34e3-7c30-493c-8f6a-2b0f04e2912c} 3 Microsoft Visual C++ 2005 Redistributable C:\windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4053_none_516e2e610f48bda6.manifest
{95120000-00B9-0409-0000-0000000FF1CE} 3 Microsoft Application Error Reporting C:\windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.42_none_5c4003bc63e949f6.manifest
{89E9AB79-7914-4B67-8D4E-A8B1E39C3D89} 3 Microsoft SQL Server Compact 3.5 SP2 JPN C:\windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.762_none_9193a620671dde41.manifest
{89F4AFD0-B2CE-4FA2-9911-B3ADA75B8E1C} 3 Microsoft SQL Server 2012 Management Objects  C:\windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4053_none_516e2e610f48bda6.manifest
{53F5C3EE-05ED-4830-994B-50B2F0D50FCE} 3 Microsoft SQL Server Setup Support Files (English) C:\windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.42_none_5c4003bc63e949f6.manifest
{2750B389-A2D2-4953-99CA-27C1F2A8E6FD} 3 Microsoft SQL Server 2005 Tools Express Edition C:\windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.42_none_5c4003bc63e949f6.manifest
{C779648B-410E-4BBA-B75B-5815BCEFE71D} 3 Safari C:\windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_517205a10f4550e3.manifest
{C3F6F200-6D7B-4879-B9EE-700C0CE1FCDA} 3 Microsoft SQL Server System CLR Types C:\windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4027_none_516ad2630f4bd825.manifest
{471AAD2C-9078-4DAC-BD43-FA10FB7C3FCE} 3 Microsoft SQL Server 2008 R2 Native Client C:\windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4027_none_516ad2630f4bd825.manifest
{83F2B8F4-5CF3-4BE9-9772-9543EAE4AC5F} 3 Microsoft SQL Server 2008 R2 Management Objects C:\windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4027_none_516ad2630f4bd825.manifest
{DBE0D8C3-EB2B-4887-ABAE-D69795ED6DD0} 3 ScanSnap C:\windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4053_none_516e2e610f48bda6.manifest
{91140000-0015-0000-0000-0000000FF1CE} 3 Microsoft Office Access 2010 C:\windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4053_none_516e2e610f48bda6.manifest
{923B594B-E439-4E40-A1DD-87B00A3DECE5} 3 Microsoft SQL Server Native Client C:\windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.42_none_5c4003bc63e949f6.manifest
{111EE7DF-FC45-40C7-98A7-753AC46B12FB} 3 QuickTime 7 C:\windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_517205a10f4550e3.manifest
{AAC5D43E-816D-4C2D-8E51-55FFF35BE301} 3 Apple Application Support C:\windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_517205a10f4550e3.manifest
{A49F249F-0C91-497F-86DF-B2585E8E76B7} 3 Microsoft Visual C++ 2005 Redistributable C:\windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.42_none_5c4003bc63e949f6.manifest
ーーー

このような情報を発見。

Office2010のインストールがエラー1935で異常終了する
http://mo.kerosoft.com/0185

情報によると、次の物をいったんアンインストールしてから、入れ直すと良いらしい。。。
Microsoft .NET Framework 4 Client Profile Language Pack - 日本語
Microsoft .NET Framework 4 Client Profile

エラー 1935 が Microsoft Office 2010 または 2007 をインストールしようとすると表示される
http://support.microsoft.com/kb/926804

2014年1月9日木曜日

圧縮形式「ドロッパー」をスキャン対象から外す

ーーー
アバスト! ファイルシールドが脅威をブロックしました。
これ以上の処理は必要ありません。



ファイルが作成または書き換えられる時に脅威を検出して阻止しました。

ファイルをスキャンから除外するリストに追加する。
ーーー

NSISでセットアップが作成できません。。。


圧縮形式「ドロッパー」をスキャン対象から外すと検出しなくなります。


手順:
  • 左下の「設定」
  • 左「常駐保護」
  • 「ファイルシールド」の設定
  • 左「圧縮形式」
  • 中央リスト「ドロッパー」チェック外す。

アバスト! 2014.9.0.2011でした。