作成したフォルダやファイルの書込み権限をプログラムから変更する方法も検索してみましたがUNIX系のコマンドばかりがひっかかってきて、Windowsのものは見つけられませんでした。
ACL の操作であれば、"ICACLS" コマンドとか、SetACL が参考になりませんか?
あと、2つのプログラムに分ける場合でも、最初に2番目のプログラムを呼び出しておいて、何かのきっかけを待たせるようにして、コピー終了後に、実際の処理を開始させると、見た目は普通になるかも ^^;。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
C:直下またはシステムドライブ以外のD:直下などにフォルダを作成してインストールしたソフトが起動時にエラーになります。実行ファイルを右クリックし「管理者として実行」で実行すると問題なく実行できます。また、C:Progra Files の下にインストールした場合でも問題なく実行できます。Windows 7 以前および Windows 8 RP ではどこにインストールしようと問題なく実行できていました。
いろいろ調べた結果、Windows 7 / 8 RP ではインストールしたフォルダの プロパティ>セキュリティ>グループ名またはユーザー名 に SYSTEM、Administrators、Users、Authenticated Users があります。しかし Windows 8 製品版では SYSTEM、Administrators、Users だけで Authenticated Users がありません(このためか、メモ帳でフォルダ内のテキストファイルを編集して上書き保存しようとしてもアクセス拒否されます)。ここにログインユーザーを追加してフルコントロールを与えると正常に動作します。
対象としているのは私が自作して配布しているソフトです。利用者はフォルダーのセキュリティをいじってユーザーを追加するような操作はできない人がほとんどです。インストールしたユーザー自身がアクセスできないというのはバグではないかと思いますが、インストールソフト側でなんとかできる方法はないでしょうか。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
質問作成者が受け入れた回答
作成したフォルダやファイルの書込み権限をプログラムから変更する方法も検索してみましたがUNIX系のコマンドばかりがひっかかってきて、Windowsのものは見つけられませんでした。
ACL の操作であれば、"ICACLS" コマンドとか、SetACL が参考になりませんか?
あと、2つのプログラムに分ける場合でも、最初に2番目のプログラムを呼び出しておいて、何かのきっかけを待たせるようにして、コピー終了後に、実際の処理を開始させると、見た目は普通になるかも ^^;。
インストールプログラムで何とかするなら、Cmd.exe を呼び出してフォルダを作成させる位しか、思いつきません。
CreateProcess で Cmd.exe を呼び出してフォルダを作ってみましたが、状況はまったく変わりません。開発言語とは関係なさそうです。
あと、書きもらしましたが、インストールプログラムで作成したフォルダにはSYSTEM、Administrators、Users以外にCreator Ownerもリストされています。特殊なアクセス許可だけにチェックが入っており変更はできないようです。
完全に MSDN フォーラム向けの話題ですね。開発言語毎の投稿先に分かれていますので、使用している言語の所に、質問してはいかがでしょうか?
インストールプログラムで何とかするなら、Cmd.exe を呼び出してフォルダを作成させる位しか、思いつきません。
インストーラーでフォルダを作成すると、エクスプローラーや "MKDIR" コマンドと異なる動きをするのでしょうか?
そうです。インストーラーを介さないで自らの手でフォルダを作成するぶんには問題がありません。ですのでインストールCDからフォルダごとC:にコピーすれば問題なく動きます。インストーラーも指定された場所にフォルダを作ってそこにファイルをコピーしているだけです。Windows 8 RP まではそれで問題なかったんですが・・・
マイクロソフト コミュニティより、MSDNフォーラムよりの内容になりそうですが・・・。
Windows8 Pro RTM をクリーンインストールした環境で、C ドライブの直下に、エクスプローラーでフォルダを作成し、プロパティを見てみました。全て "C:" からの継承で、Adminidtraotrs とSYSTEM にフルコントロール、Users に読み取りと実行、Authenticated Users に変更 の許可が与えられていました。インストーラーでフォルダを作成すると、エクスプローラーや "MKDIR" コマンドと異なる動きをするのでしょうか?