Windows XP でドメインログオンするとメモ帳が起動する
KB番号 | J0075 |
最終更新日 | 2009/11/27 |
作成者 | たかはしもとのぶ |
最終更新者 | 小田切耕司 |
対象
この文書は、以下のプロダクトに付いて説明したものです。
- Samba 3.x 系列
- Samba 2.2 系列
- Samba 2.0 系列
- Windows 2000/XP/Vista/7/2008
概要
Windows 2000/XP/Vista/7/2008などから Samba で構築したドメインにログオンすると、メモ帳が起動します。メモ帳内には以下のような文字列が表示されています。
[.ShellClassInfo] LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21787
原因
これは、Samba の仕様上の制限になります。
上記は Desktop.ini という名称で「スタートアップ」フォルダ内に存在するファイルの内容になります。
通常このファイルはシステム属性と隠し属性が付与されています。しかし Samba のデフォルトでは、map hidden や map system もしくはstore dos attributesパラメータが No となっているため、これらの属性は無視されます。
そのため、移動プロファイルが有効になっており、かつ移動プロファイルの保存先が Samba サーバ上になっている場合は、ファイルが通常のファイルとして扱われてしまい、「スタートアップ」フォルダ内に存在する場合は、自動起動の対象となってしまいます。
対処策
smb.confに以下の設定をすることにより、この問題に対処することが可能です。
- map hidden=yes , map system=yes とする
もしくは
- store dos attributes = yes とする(map hidden,map systemと両方設定しないこと)
これにより、Samba の共有上のファイルで隠し属性やシステム属性がサポートされるようになります。 なお、map system , map hidden のパラメータは、各々UNIX上のファイルのパーミッションのgroupの実行権、otherの実行権に対応しますので注意してください。
そしてstore dos attributesパラメータはsamba3.0.3以降で使用可能で、さらに、OSとファイルシステムが拡張属性に対応している必要があります。
上記のパラメータを指定した場合、すでにサーバー側に保存されている Desktop.ini ファイルについては、上記属性が設定されていないため、サーバー側の移動プロファイルを削除し、Windowsクライアント上でDesktop.ini ファイルに対して隠し属性やシステム属性を設定する必要があります。
この技術情報は [samba-jp:13947] samba-jp:19829 からの一連のスレッドの議論を元に作成されています。
※ 以前 この文章にあった hide files = /desktop.ini/ という設定は移動プロファイル(スタートメニューなど)が英語になってしまうという問題が発生するため使用を推奨しません。