2013年2月28日木曜日

Win7で2012年12月から802.1xが繋がらない

無線LANに802.1xで繋いでいるんだけれど、Windows 7から急に繋がらなくなった。
思い当たるのはWindows Update。
でも、なかなか情報がなくて放ったらかし状態にしていたが、少し仕事が落ち着いたのでやっと調べてみることに。

ズバリこれでした。
http://serverfault.com/questions/391959/nps-eap-authentication-failing-after-windows-update


In December 2012, this issue occurred for many people when Microsoft messed up update KB931125 on December 11th 2012 by accidentally applying the root cert update to clients and servers, when it should've only been applied on clients. This added hundreds of 3rd-party root certificates to the trusted root certs list on servers, causing problems like you showed.
Took me long enough to find it, but MS has an article and fix available at KB2801679 "SSL/TLS communication problems after you install KB 931125".The faulty update has since been expired on Windows Update and WSUS, but if you've already applied it, you can clean up the root cert list by running the Fix-it provided in the article on all affected servers. 
どうやらMicrosoftがルート認証局の更新を間違って、サーバにも当ててしまったらしい。
で、大量のルート認証局の情報を送ってしまい、認証時のメッセージのサイズが肥大化し、適切なサイズにおさまらなくなって、認証失敗、と。

サーバでリンクのFix itを動かせばすぐに直りました。

解決してよかったけど…、FixもUpdateで送ってくれ、放置しないでくれ、と思ったり。

ネットワーク ポリシー サーバのイベントログが記録されない

802.1xでうまく繋げないPCがあり、なんでだろう?と調べようとしたところ、ネットワーク ポリシー サーバ(Network Policy Server, NPS)のイベントログが記録されていないことに気が付いた。

デフォルトで勝手に記録されるはずなんだけど…。

強制的に書く方法もあったので、手順通りにやってみた。
http://support.microsoft.com/kb/951005/ja

機械翻訳とはいえ、ひどい日本語だな…。
なんとなくわかるけど、コマンドを勝手に訳すのはやめてくれ。
これじゃ通らない…。
"ネットワーク ポリシー サーバ"とかやってみたが、エラーになる…。
スペースが全角かとか英語にしてみるとかやってみたけど、問題は"サーバ"じゃなくて、"サーバー"なのね。

正しくはこちら

auditpol /set /subcategory:"ネットワーク ポリシー サーバー" /success:enable /failure:enable

実は地道に

auditpol /list /category /v

でGUID出して、

auditpol /list /subcategory:{...上で取ったGUID...}

と、頑張って正しい名前を見つけたんだけど…。

しかし、こういうサービス名は訳して欲しくないなぁ…。
個人的には日本語にするんでも、表示名だけとかにして欲しいけど、「全部日本語で!」という人もいるんだろう。
Microsoftも悩ましいところかな。

2013年1月23日水曜日

perlでPicasaの写真をダウンロード

perlでPicasaウェブアルバム上の写真を取りたくなった。
CPANでモジュールを探してみたところ、ちゃんとありました。
http://search.cpan.org/~hanenkamp/Net-Google-PicasaWeb-0.11/

cpanでインストールして早速試してみる。

アルバムごとにディレクトリを作って、その下に写真をダウンロードするスクリプト。


use Net::Google::PicasaWeb;

my $service = Net::Google::PicasaWeb->new;

$service->login('YOUR USER ID','YOUR PASSWORD');

my @albums = $service->list_albums(user_id => 'YOUR USER ID');

foreach my $album (@albums) {
  print "Album ID: ", $album->entry_id, "\n";

  mkdir $album->entry_id;

  my @photos = $album->list_media_entries;
  foreach my $photo (@photos) {
    my $media_info = $photo->photo;

    my $main_photo = $media_info->content;
    print "Image URL: ", $main_photo->url, "\n";

    my $photo_data = $main_photo->fetch;
    $main_photo->fetch( file => $album->entry_id . "/" . $media_info->title );
  }
}



アルバム名の方が分かりやすいけど、日本語を使いたくなかったのでアルバムIDを使っただけなので、アルバム名の方がよければ
$album->title
を使ってください。

list_albumsで指定するuser_idは自分にアクセス権があれば他のユーザ名でもいけるらしい。試してないけど。

ALMiniumでbashのシンタックスハイライト

redmine+backlogsの環境を構築するのに、ALMiniumを利用した。
(自分でやってハマったせいもある)
https://github.com/alminium/alminium

便利になったなぁ…。
インストールに時間はかかるけど、シェルスクリプト起動しただけでほとんど終わった。

そのまま利用していたが、bashやperlのシンタックスハイライト(syntax highlight)が出来ない。
よく使うのになぁ…。

シンタックスハイライトにはcoderayというものを使っており、現在のバージョン(1.0.8)だと対応言語が少ない…。
http://coderay.rubychan.de/
1.1ではかなり増やす予定らしいが、現時点では使えない

ultravioletという似たようなツールもあり、こっちの方が圧倒的に対応言語が多いのでこっちを使ってみたかったけど、redmineのプラグインは1.3までしか対応してないし、開発も2年前くらいで止まってしまっているような感じ…。
一応、試してみたけどエラーが出てしまって、うまく行かない

coderayでなんとかするしかないかなぁ~と探してみたところ、bashのcoderayスキャナーは発見。
https://github.com/pejuko/coderay_bash
http://odd-eyed-code.org/issues/31
でも、どっちも動かなかった…。

で、発見したのがこちら。
http://www.redmine.org/boards/3/topics/29926

ここのbash.rbをダウンロードして、rubyの/coderay-1.0.8/lib/coderay/scanners入れたら、あっさり動いた!

自分の場合は、/usr/lib/ruby と /usr/lib64/ruby の両方があって、困惑したけど以下のスクリプト書いてパスを出させたらすぐ分かった。

require 'rubygems'

version = '1.0.8'

gem 'coderay', version
print Gem.bin_path('coderay', 'coderay', version)


こんな感じで動きました!

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions