一部のインストーラーでFailed to expand shell folder constant "userdocs" のエラーが出る場合
原因としては、インストーラーがレジストリ*1にあるフォルダ(今回は(マイ)ドキュメントのフォルダ)の場所を見に行った時に存在が確認できなかったことで発生していたりする。、
このエラーが出る場合、一般的なFAQサイトだと「(マイ)ドキュメントの設定を初期化するか別のユーザーを作って再度インストールを試す」*2方法が一般的だけども、「UACが有効な状態」で「(マイ)ドキュメント等の特殊なフォルダをネットワークドライブ経由でネットワーク上に作成(割り当て)している」場合もこれが発生します。(SUBSTなどで割り当ててる場合も発生するかは未確認)
これは、インストーラーを実行するとUACにより権限昇格がされますが、この権限昇格したあとはネットワークドライブが接続されてない状態になるわけで。
net use コマンドを昇格前と昇格後で比べてみるとよくわかりますが
権限昇格前は
に対し、
権限昇格後は
となり、ネットワークドライブの割り当てがされてないのがわかります。
回避法は…知ってる限りだと、先に権限昇格したコマンドプロンプトでネットワークドライブを割り当てておいて、そのあとにインストーラーを実行する方法か、UACを一旦無効にする(お勧めしない)かなぁ。
あとはインストーラー側での回避方法がなにかあるのかも?
過去にAdobe Readerのインストーラーで似たエラーが出たり、今回もPSO2をインストールしようとしてたらこのエラーに当たったので。メモです。