vista対策at TECH
vista対策 - 暇つぶし2ch2:2
06/11/06 20:43:04
2

3:3
06/11/06 20:43:15
3

4:4
06/11/06 20:49:04
4

5:5
06/11/06 22:22:22
見た目はキリ番
頭脳は・・

6:デフォルトの名無しさん
06/11/06 23:12:01
つうか、別にいいんじゃね?とくに対策とかって

とりあえず評価版いれてみれば?

7:デフォルトの名無しさん
06/11/07 01:06:07
最大の対策は24ヶ月ほど入れないことだなw


8:デフォルトの名無しさん
06/11/07 03:01:11
>>1
何かまとめれアホ

9:デフォルトの名無しさん
06/11/07 04:40:45
フォルダ配置が全然変わったから注意

例:C:\Document and SettingsフォルダなくなってC:\User

とか

10:デフォルトの名無しさん
06/11/07 06:09:51
>>9
そのフォルダをじかに参照するソフトは、それはそれで問題あるかも。
ちゃんとやるにはレジストリから実際のフォルダを引っ張ってくるでしょ。
そしてレジストリから引っ張ってくるならその違いは問題になっていないはず。

11:デフォルトの名無しさん
06/11/07 06:33:05
>>10
C:¥Document and Settings フォルダのパスを正式に取得する方法は実はなかったりする。

C:¥Document and Settings¥hoge フォルダの CSIDL あっても
C:¥Document and Settings フォルダの CSIDL はない罠。

12:デフォルトの名無しさん
06/11/07 08:41:36
INIファイルはどこにおけばいいですか?
もうINIはだめですか?

13:デフォルトの名無しさん
06/11/07 10:26:58
>>9
何?もしかしてロングネームや空白使わないよ~にしよ~的動きがあるのか?

14:デフォルトの名無しさん
06/11/07 13:19:50
対策?何を対策すると言うの?
ああ、データの位置などか。それは確かに面倒だな。
でも、置換ですぐに対処できると思うが。

15:デフォルトの名無しさん
06/11/07 13:26:18
Document and Settings とかのユーザフォルダなんてOS毎に変わるんだから。
普通はAPIで取ってるよね?


16:デフォルトの名無しさん
06/11/07 16:18:56
>>12
%APPDATA%
にフォルダ作ってそこにini等の設定ファイルを置けばいいのでは。

17:デフォルトの名無しさん
06/11/07 17:52:45
いまどきiniかよ
XMLで書けよぷげらっちょ

18:デフォルトの名無しさん
06/11/07 19:12:17
>>16
ありがとう。
APPDATAはユーザ別にデータ持たせたい場合ですが、ユーザごとに
共通のデータはどこに置いたらいいのでしょうか?

19:デフォルトの名無しさん
06/11/07 20:04:10
>>17
iniの方が書き換えが楽

20:デフォルトの名無しさん
06/11/07 21:10:00
なんでもXMLにすればいいと思ってる学生ですからw


21:デフォルトの名無しさん
06/11/07 21:14:35
>>19
UAC環境下でProgram Files配下のiniを書き換えようとするとマジはまるぞ。

22:デフォルトの名無しさん
06/11/07 21:19:57
>>19
プログラムからの読み取りは、ライブラリが充実しているから、XMLのほうが楽だと思う。

23:デフォルトの名無しさん
06/11/07 23:50:56
俺的には2000→XPの時よりやることが少なかった。
はっきり言って意外だったが助かった。

24:デフォルトの名無しさん
06/11/08 08:19:43
>>18
%ALLUSERSPROFILE%\Application Data

25:デフォルトの名無しさん
06/11/08 11:00:23
XMLなら可変データも持てるしiniより自由度高いし
.netならアクセスも超楽チン
iniなんて終わってる

26:デフォルトの名無しさん
06/11/08 12:52:10
vista対策関係ないからなあ、他でやってけろ

27:デフォルトの名無しさん
06/11/08 16:35:45
もうすぐVistaが出るが…
スレリンク(tech板)l50

28:デフォルトの名無しさん
06/11/08 17:31:22
そっちもこっちも閑散としてるってことは、ようするにほとんど
動いちゃうんだろうな。

それともvista対策って、vistaからできる新機能の使い方の
勉強でもしようかってことなのか?

29:デフォルトの名無しさん
06/11/08 22:41:54
>>24
Vistaでは%SystemDrive%\ProgramDataになっていますが何か。
だからAPIを使えと(ry
# そのAPIすらSHGetKnownFolderPathなんてのが新設されて今後はこっち使えとか
# 言ってるし。もう何を信じたらいいのやら

30:デフォルトの名無しさん
06/11/08 23:24:24
HKLMにRegCreateKeyExでキーを作ろうとすると権限不足で作れない。
しかもERROR_SUCCESSを返してきやがる。
MANIFESTでexe起動時に管理者権限に昇格するダイアログを表示させて
権限を得ればいいらしいけど、エラーくらい正しく返してきやがれorz

31:デフォルトの名無しさん
06/11/09 01:28:22
HKLMへの書き込みに失敗するとエラーダイアログを出しまくったり
インストールに失敗したりする馬鹿なインストーラ対策。
asInvokerなマニフェストでいいから付けておけば権限取得も必要ないし
変な偽装はやめてくれるよ。

32:デフォルトの名無しさん
06/11/09 01:32:52
> 権限取得も必要ないし
あ、ちゃんとエラーを返してくれるはずという意味で
本当に書き込みたいならもちろん権限取得が必要。

33:デフォルトの名無しさん
06/11/09 14:03:05
UACが有効だと、Program files下にインストールした
ファイルをアンインストール(DeleteFile)してもファイル
が消えないです。

こういう場合はどうするのがセオリーでしょうか?
(ユーザー権限はAdminです)

UACを無効にすればひとまず回避できますが、ユーザーに
それをお願いするのもイマイチですし…

34:デフォルトの名無しさん
06/11/09 17:11:03
そのアンインストーラの実行ファイルの名前に
setupかinstallという文字列が入ってると、
昇格ダイアログを出してくれるらしい。

35:デフォルトの名無しさん
06/11/09 17:35:25
vista対策?ああ

//バージョンごとに処理を切り分ける
if(osver == WIN9X)
{
 ...
}
else if(osver == WIN2K || osver == WINXP)
{
 ...
}

ってなってるところをVistaも通るようにする処理だな。




漏れのプログラムこんなの大杉orz


36:デフォルトの名無しさん
06/11/10 19:49:06
1.UACの動作する状況へのインストール(C:\Progran files以下など)
2.メディアから起動するランチャーで実行ファイルを起動すると、UACが働かずに
インストールフォルダにデータなどが生成される。
3.実行ファイルを直接(あるいはショートカットなどから)起動すると、UACが働き
互換性フォルダが生成され、その中にデータなどが生成される。
4.ランチャーで実行ファイルを起動すると、UACが働かないのでインストール
フォルダ内のデータのみを読み込み・更新する。
5.実行ファイルを直接(あるいはショートカットなどから)起動すると、UACが働き
インストールフォルダ・互換性フォルダ両方のデータを参照する。
 同一のファイル名が存在する場合には互換性フォルダ内のファイルが優先される。
新規作成・更新は互換性フォルダにのみ適用


以上転載終わり。
なぁこれどうやって対処したらいいと思う?βの時に散々対応しようとして挫折したんだが。
無理矢理、ランチャーからプログラムの実行ユーザーを偽装しようとしても上手く行かないし。
互換性フォルダ見に行くようにしようとも考えたけど、UAC切ってるユーザーもあること考えるとそれもどうかと思うし。
MSの言うとおりUser下にフォルダ作るのもユーザーの使い勝手からあまりやりたくないんだよねぇ

37:デフォルトの名無しさん
06/11/10 22:01:39
いやー、VistaからはUser\アカウント の下にインストールを
促すよう変更しようかと思ってる。

38:デフォルトの名無しさん
06/11/11 00:25:03
>>33
アンインストーラにmanifest付けて権限を取得させる。
>>34
それはあくまでレガシーなアンインストーラのための救済策で、
スレタイ通り新規にVista対策するならやるべきではない。

39:デフォルトの名無しさん
06/11/11 00:29:15
> やるべきではない。
って言うとアンインストーラのファイル名にsetupとか含めるべきではないと読めちゃうな。
訂正
スレタイ通り新規にVista対策するなら頼るべきではない。
インストーラ検出はグループポリシー等で無効にされている可能性もあるし
64bitアプリでは最初から効かない。

40:デフォルトの名無しさん
06/11/11 01:23:25
>>38
>アンインストーラにmanifest付けて権限を取得させる。

済みませんが、やり方をもう少し詳しく…。
アンインストーラ manifest vista でググってもピンと来ませんでした。
お願いします。


41:デフォルトの名無しさん
06/11/11 02:01:41
requestedExecutionLevel
でググってみそ

42:デフォルトの名無しさん
06/11/11 03:09:47
>>37
プログラムをUser\アカウントに入れるですか(汗
それはそれで一つの解決策ではありますねw

う~ん、ただある程度大きいソフトだとそこに入れるのも問題あるし
やっぱりvistaではランチャーからの起動は諦めるしかないのかなぁor2

43:デフォルトの名無しさん
06/11/11 03:13:27
ランチャーは自作? 他人が作ったもの?

44:デフォルトの名無しさん
06/11/11 10:47:26
>>41
ありがとうございます。

45:デフォルトの名無しさん
06/11/11 11:58:09
>>43
Quick Launch

46:デフォルトの名無しさん
06/11/11 14:25:29
クイック起動の実体って単なるショートカットじゃなかったっけ?
クイック起動にショートカット放り込んで試してみたけどちゃんとUAC効いて
互換性フォルダを参照したぞ?

47:デフォルトの名無しさん
06/11/11 15:27:05
コピペ元はこれか。
スレリンク(hgame板:822番)
つまりランチャーってのはautorunで起動されるCD/DVD内のプログラムってことね。
130cmのサポートページによると実行ファイルの名前がsetup.exeだから
URLリンク(130cm.jp)
インストーラ検出によってランチャーが管理者として実行されるので互換性フォルダが
見えなくなるってことでおk? >本物の>>36

48:デフォルトの名無しさん
06/11/12 02:30:52
>>47と仮定して対策を書くと
・ランチャーのファイル名を変えるとかmanifestを付けるとしかしてインストーラとして
 検出されないようにする
・インストーラを別exeに分ける
で何も問題ないと思うが。
> MSの言うとおりUser下にフォルダ作るのもユーザーの使い勝手からあまりやりたく
> ないんだよねぇ
標準ユーザーでUAC切るとProgram Filesの下には書き込めないことも
頭の片隅くらいにはとどめておいてくれ。

49:デフォルトの名無しさん
06/11/12 02:36:58
> 標準ユーザーでUAC切るとProgram Filesの下には書き込めない
管理者として実行されているインストーラからは書き込めるからプログラムは
Program Filesにインストールしてもかまわないけど、
インストール後に実行ファイルから設定を書けるとは限らないってこと。

50:デフォルトの名無しさん
06/11/12 13:46:41
>>47
コピペはそれです。ただそれと同じ事象を6月頃には把握しててそのころにいろいろ実験してて投げちゃってた。
ちょうどその事象のことをそこで見たんで思い出してコピペして聞いて見たって感じです。
事象としては、ランチャーから起動したプログラムはランチャーの実行権限を引き継いでしまうってことですね。
なので、setup.exeから何かプログラムを起動するとsetup権限で起動してしまう。

>>48
マニフェストについては確か上手く行かなかったと思う。
実行時にメッセージが出ちゃうか、呼ばれた方のプログラムが起動出来なかったかだったと思う。
ランチャーの名前を別にしてセットアップを別exeにするのも、確かセットアップの権限が変更されないで呼んでも上手く動かなかったと思う。

ただ調べたのが6月ごろで今のRC版では確かめてないのと当時のテスト結果が見つからないんでもしかすると勘違いで出来るのかも。
あとでもう一度検証してみます。

>標準ユーザーでUAC切るとProgram Filesの下には書き込めないことも
>頭の片隅くらいにはとどめておいてくれ。
まぁそれはXPでもそうだしなぁw
ただユーザーとしてはデータを分散して置かれるのってあまり喜ばしいことじゃ無いと思うんだけどどうなんだろ。
周知徹底が出来て、みんなUser下に置くのが当然と思うようになってればいいんだけど、
結局XPでも浸透しなかったし。浸透しないと使えないけど、使わないから浸透しない。困った物ですねぇ

51:デフォルトの名無しさん
06/11/12 17:14:50
> マニフェストについては確か上手く行かなかったと思う。
うまく動くことはこちらでは確認済み(RC2 Build 5744)。何か大幅に勘違いしてるか
ベータの不具合に当たったと思われ
とりあえずこことか参照。
URLリンク(blogs.wankuma.com)
あとasInvokerなマニフェストを使ってる実例。
URLリンク(kage.monazilla.org) のインストーラ
> 実行時にメッセージが出ちゃうか、呼ばれた方のプログラムが起動出来なかったかだったと思う。
ちなみにどんなメッセージが出る?

> まぁそれはXPでもそうだしなぁw
XPと違う点としては、マニフェストを付けると互換性フォルダは無効になるので、
asInvokerなマニフェストを付けるとたとえ管理者ユーザーでも(UACが有効なら)
Program Filesには書けなくなる。
だからUsers配下へ設定を書きに行くように変更しない手抜き対応なら
(ランチャから起動される実行ファイルのほうには)マニフェストをつけないほうがいいよ

52:デフォルトの名無しさん
06/11/12 17:26:29
> ランチャーの名前を別にしてセットアップを別exeにするのも、
> 確かセットアップの権限が変更されないで
セットアップのほうはインストーラとして検出されるようにするかrequiredAdministratorな
マニフェストをつけないとだめだよ。
あとセットアップを起動するときはCreateProcessじゃなくてShellExexuteを使わないと
ERROR_ELEVATION_REQUIREDと怒られて起動できない。

まとめると
・ランチャーにはasInvokerなマニフェストをつける
・インストーラにはrequiredAdministratorなマニフェストをつける
・実行ファイルにはマニフェストをつけない
・ランチャーからは互換性フォルダが見えなくなるので注意

53:デフォルトの名無しさん
06/11/13 02:12:23
>>51
今は日本語にしてくれる人が居るんだね、当時は英語だったんで辞書引きながら見てたよ。
そうそう、確かマニフェストだと、権限は引き継ぎか上位への変更だけで、
インストール権限から通常権限に下げられないのと、権限が変更される場合にUACのメッセージが出るからだったかな。
常時動かすのに権限変更のメッセージは許容出来なかったんで。(あと実行プログラムを常時adminで動かすのに抵抗もあったし)
それから、呼び出しは最初はShellExecuteにしてたけどこれだと権限の変更が出来なかったんで、
CreateProcessを使ったけど状況が変わらず。CreateProcessAsUserでユーザー偽装しようとしたら動きさえしなかったって感じだった。

確かによくよく考えてみると>>52のでなら上手く行く気もする。
当時、インストーラから実行するのに囚われすぎてて考えが及ばなかったのかも。
あとで試してみるよ。

54:デフォルトの名無しさん
06/11/13 09:17:08
Program files下へインストールするアプリが、Program files下へ
設定を書き込んだり消したりするようなつくりだと、ユーザーが
UACを切ったり付けたりしたら挙動に矛盾が起きないかな?

それを解消するようなマニフェストってある?

55:デフォルトの名無しさん
06/11/13 14:42:44
>>54
どうしても矛盾を起こしたくないならrequiredAdministratorを使うしかないと思うけど。
ただUACのON/OFFはOS挙動だしユーザーが変更する部分だから
上の例の様に、通常状態で挙動が矛盾してしまうならともかく
そこまで気にする必要は無いんじゃないかな。
もしくはマイクロソフトの言うとおりに、自前で直接User下に放り込むか。

もともとUACってProgram filesに設定を置くなって言うマイクロソフトのガイドラインに
誰も従わなかったんで強行策に出たって感じだろうし、vista出てしばらくは混乱するだろうね。

56:デフォルトの名無しさん
06/11/14 00:27:10
俺的には
>>37
の対処法がステキすぎる

57:デフォルトの名無しさん
06/11/14 01:00:07
> 常時動かすのに権限変更のメッセージは許容出来なかったんで。(あと実行
> プログラムを常時adminで動かすのに抵抗もあったし)
requiredAdministratorなマニフェストで試してなかった?
asInvokerなマニフェストではUACのダイアログは出ないから大丈夫。

> 呼び出しは最初はShellExecuteにしてたけどこれだと権限の変更が出来なかったんで、
起動するexeにマニフェストが付いてないとだめということになってる。
(付いてなくても権限上昇できるチートがWin32 APIスレのPart 46に出てたが)

> CreateProcessAsUserでユーザー偽装しようとしたら動きさえしなかったって感じだった。
それは純正のrunasでもできないので仕様だと思われ

58:デフォルトの名無しさん
06/11/14 01:05:10
>>54
MSの推奨は全部の実行ファイルにマニフェストを付けて
(これで互換性フォルダが無効になるので互換性フォルダにかかわる矛盾も生じない)、
設定はProgram Filesに書き込まないこと。
もしProgram Filesへ書き込む設計を維持しつつ、という意味ならMSはそれを
やめさせたいんだからそんなものあるわけない。
互換性フォルダはあくまでレガシーなアプリのための救済策。

59:デフォルトの名無しさん
06/11/14 01:30:44
> どうしても矛盾を起こしたくないならrequiredAdministratorを使うしかないと思うけど。
標準ユーザーでUACオフにしたとき困るから
> UACを切ったり付けたりしたら
という前提では不適切かも。>>54が標準ユーザーの場合まで考慮してるのかどうかは
知らないけど

60:デフォルトの名無しさん
06/11/14 09:19:17
setupの文字を含んだインストーラからProgram files下へ
インストールして初回起動はsetpu.exeがランチ。
次回はデスクトップのショートカットから(setupの文字を
含まない)実行ファイルを起動したらそれだけで矛盾し
ちゃわない?

新しいアプリは何らかの対策を施せるけど、古いアプリを
継続して使いたいひとはUAC切るかインストール場所を
Userの下にするかすればOKなのかな? プログラム板的
には板違いの話かも知れないけど、古いアプリを暫定で
サポートする時の参考になれば思って。

61:デフォルトの名無しさん
06/11/14 12:14:20
>>57
すまぬ。ちょっと前提が抜けてね。
>インストール権限から
ということでランチャーはセットアップを兼ねてるものです。
なのでasInvokerを付けると、そのままインストール権限が持ち越しされてしまう(当時確認済み)
つーかマニフェストに通常権限にする命令があればそれで事足りるのになんで無いんだよ!!って話です。
なので>>52の手法の様にランチャーが通常権限になるようにしていればasInvokerでよかったんでしょうね。

62:デフォルトの名無しさん
06/11/14 19:47:12
>>60
とりあえず初回起動はインストーラから行わないように運用で回避してる

63:デフォルトの名無しさん
06/11/15 15:52:14
アプリからファイル保存できない場所って、Program Files以下以外にありますか?
Windows以下もダメだろうけど、判断できるようなAPIってないですかねぇ?

64:デフォルトの名無しさん
06/11/15 20:35:35
AccessCheckとかで判断できないか?
判断するAPIまで互換性フォルダにだまされるかもしれないけど(試してない)。

65:デフォルトの名無しさん
06/11/15 21:27:36
おれも判定方法知りたい。ひとまずVistaでProgram filesが含まれていたら、
でやっとくか。

66:デフォルトの名無しさん
06/11/18 22:03:29
AccessCheckで判断できた。
ただしレガシーアプリが作成したフォルダやレガシーアプリが
書き込んだことのあるファイルは互換性フォルダにリダイレクトされるせいか
以後、書き込み可能だと判断されるようになる。
%ProgramFiles%のルートに書き込めるかどうかで判断したほうがいいかも。
しかしAccessCheckは呼び出すのがめちゃくちゃ面倒くさいな

67:デフォルトの名無しさん
06/11/20 03:36:06
>>60
既にあるプログラムについては、諦めて普通にOSの互換性の機能使った方がいい気がする。
プログラムのプロパティ内の互換性タブに、
特権レベルの設定として「管理者としてこのプログラムを実行する」っていうのがあるのは
多分MSとしてはコレ使えってことだと思われ。

ただ一番楽なのはやっぱりUAC切れってところかも知れんがw

68:デフォルトの名無しさん
06/11/20 16:30:30
独自のアップデータをVistaで作りたい場合、どうするのが正解?

権限昇格無しにProgram Filesのファイルを書き換えようとすると、ファイルの
上書きに失敗するし、かといって、requiredAdministratorなマニフェストを付加
すると起動のたびに権限昇格のダイアログが開いてとてもウザイんですけど・・・

>>37の対処法なら問題ないんだけどさ・・・


69:デフォルトの名無しさん
06/11/20 18:00:22
アップデートを別プログラムにして必要なときに呼び出すようにするのがいいんじゃないのかな?
そうすればアップデート時だけダイアログが出る感じになるし。

もともとUACってProgram Filesを勝手に弄られることによるセキュリティの低下を防ぐのがコンセプトだから
ダイアログを出さないようにって言うのは出来ちゃいけないことだろうし。
随時データを書き換えるって言うのは出来なくなっちゃうだろうけど。

ちなみにUACではアップデートもちゃんと考えてるらしく、
プログラム名をupdate.exeにしたら権限変わった。
なので手動での差分当てレベルなら今まで通りでいいと思う。

70:68
06/11/20 18:32:17
>>69 情報ありがとう

いままでアップデータ自体をアップデートしたい時、
アップデータEXEが終了し親EXEに制御が移ったときに、
ダウンロードされたアップデータEXEのアップデートファイルを
上書きしてたんだけど、それが出来なくなるってのは
回避できないっすよね?

コレを可能にしようとすると親EXEにも・・・となって堂々巡りに・・・

71:デフォルトの名無しさん
06/11/20 19:59:14
Vistaってルート直下に作るのはUACが出張ってくる?

72:デフォルトの名無しさん
06/11/20 23:40:22
>>68
アップデータを別exeに分けて「更新」ボタンには盾アイコンをつける。
自動更新が必要ならサービスをインストールする。
常駐プロセスを増やしたくないならタスクに登録する(最近のQuickTimeと一緒に
入ってくるASUでもやってる)。
>>69
> プログラム名をupdate.exeにしたら権限変わった。
それもsetup.exeと一緒でインストーラ検出の機能なので無効な場合もある。一応。
>>70
APIスレで自分自身を削除する話が出てるからその応用で
親exeに戻らず自分の分身を作ってその分身に上書きすればいい。
子プロセスは権限を引き継ぐから。
>>71
ルート直下は誰でも作れて作成者はフルアクセスが得られるけど他のユーザーは
読み取りのみ。XPと同じ。

73:デフォルトの名無しさん
06/11/21 17:40:54
>>72
MoveFileEx MOVEFILE_DELAY_UNTIL_REBOOTが失敗するよ(ノД`)

74:デフォルトの名無しさん
06/11/21 19:07:37
管理者権限に昇格したらイケタ!

75:デフォルトの名無しさん
06/11/21 19:59:35
MOVEFILE_DELAY_UNTIL_REBOOTは再起動のときログイン前に読める位置
(HKEY_LOCAL_MACHINE配下)のレジストリに値を書き込むからな

76:デフォルトの名無しさん
06/11/24 12:26:18
いいこと思いついたぜ。
プログラム名をsetup.exeにすれば問題全部解決出来る!!!11!!!!!1!

77:デフォルトの名無しさん
06/11/26 21:44:07
奇才現る

78:デフォルトの名無しさん
06/11/27 13:07:43
あるアプリケーションをネットワークドライブから管理者で実行すると、
自分自身のパスのドライブレターがUNCになっちゃうんだけど回避方法無いかな?

(一般ユーザ)
z:\xxx\HOGE.EXE ←実行
  ↓
z:\xxx\HOGE.EXE ←アプリが判断した自分のパス

(管理者)
z:\xxx\HOGE.EXE ←実行
  ↓
\\(IP)\zzz\xxx\HOGE.EXE ←アプリが判断した自分のパス


UACを切らずになんとか・・・



79:デフォルトの名無しさん
06/11/27 16:44:09
プログラム名をsetup.exeにする

80:78
06/11/27 17:22:58
>>79
setup.exeでも同じ結果でした。

その上、DriveCmboBoxでネットワークドライブが選択できない状態で、
さらにアウアウになってます。


81:デフォルトの名無しさん
06/11/27 17:26:12
setup.exe敗れたり・・・

82:デフォルトの名無しさん
06/11/27 21:44:16
管理者として実行されると別ユーザーのような状態になるから
そもそも実行もとの一般ユーザと同じドライブがマッピングされてるとは限らない

83:78
06/11/27 22:07:58
>>82
つまり回避方法はないということ?

管理者モードで動作するネットワークアプリは使えなくなる可能性があるのか・・・



84:デフォルトの名無しさん
06/11/27 22:40:04
ローカルセキュリティポリシーが効くんじゃなかったかなあ

85:デフォルトの名無しさん
06/11/28 03:06:42
>>83
そもそもXPで別ユーザー実行したときはどうしてたの? そんなのサポート外?
XPだとこんなの出たけど。
---------------------------
Z:\pwd.exe
---------------------------
Z:\pwd.exe

指定されたパスは存在しません。



パスが正しいか確認してください。
---------------------------
OK
---------------------------

86:78
06/11/28 11:12:34
>>84
kwsk

>>85
XPではサポート外というか起動出来ないようにして、管理者権限のユーザのみ使用可能にしてました。

レジストリ(LOCAL_MACHINE等)をいじったりするので、管理者権限無いと
動作する意味がないので。



87:デフォルトの名無しさん
06/12/03 19:45:21
おれが採った方法:インストール時にインストールしたディレクトリをEveryone/Full-controlにしてしまう。

Windows95時代からマイナーチェンジのみ繰り返しているソフトで、プログラムをインストールしたディレクトリ
自身に設定ファイル(要Write)を置いているため、苦肉の策。
インストーラはInstallShield3(古っ!)を使っているが、そのスクリプト中からLaunchAppAndWait()で、インスト
ールディレクトリのセキュリティーを設定(SetNamedSecurityInfo())するプログラムを呼び出す。
これで、exeと同じディレクトリ(Program files下)にある設定ファイルへの書き込みも、アップデートプログラム
での書き込みもOK!

良い子は真似しないように。

P.S.
UACよりもWinHlp32( .hlp)が使えないのに泣いた・・・・・


88:デフォルトの名無しさん
06/12/21 21:49:14
>>76
インストーラみたいなファイル名なのにインストールしないで終了すると
プログラム互換性アシスタントに文句言われるよ

89:デフォルトの名無しさん
06/12/22 01:00:12
フルコントロールにしなくても、読み書き変更やファイル作成なんかの権限を与えれば十分だと思うが。

90:デフォルトの名無しさん
06/12/23 00:53:49
>>53
> CreateProcessAsUserでユーザー偽装しようとしたら動きさえしなかった
CreateProcessWithTokenWで降格に成功した。
トークンはエクスプローラのウィンドウからGetWindowThreadProcessId→
OpenProcess→OpenProcessToken→DuplicateTokenExで引っ張ってきた。
すでにログオン済みのユーザなので
プロファイルのロードや環境ブロックの作成は不要

91:デフォルトの名無しさん
06/12/25 21:09:06
>>88
>インストールしないで終了する
ってどう判断してるの?

92:デフォルトの名無しさん
06/12/27 01:13:44
>>91
[プログラムの追加と削除]にでてくるアプリのリスト( Unistaller レジストリキー配下のエントリ )が
更新されたかどうかなんじゃないの?

93:デフォルトの名無しさん
07/01/19 19:22:26
MFCとかで作ったアプリのアイコン表示が、Vistaと整合性悪そうです。
皆さんどうしてますか?


94:デフォルトの名無しさん
07/01/19 22:37:24
Vistaが普及するには2年かかるから、2kとXPだけに対応する

95:デフォルトの名無しさん
07/01/20 11:45:16
>>93
整合性が悪いって具体的には?

96:デフォルトの名無しさん
07/01/20 17:28:29
>94
ところがPCと一緒に納入するような高額なソフトだと、
メーカーPCがVista搭載になると同時に対応を迫られる。

まあ「まだ検証できてないんでXP買ってください」っていうんだけどなw

97:デフォルトの名無しさん
07/01/21 17:09:14
サイズ変更可能でタイトルバーなしだと Aero で変な縁がでちゃうんだけど、
どうすればいいんだろうか。
付箋紙系のソフトとか影響大きそう。

98:デフォルトの名無しさん
07/01/22 01:02:24
>>94
>Vistaが普及するには2年かかるから
そんなにかかるかねえ?
うちのお客なんか、既にVISTAx64の心配してる・・・・・(WHQL未取得のデバドラがあるんで)


99:デフォルトの名無しさん
07/01/25 01:38:06
うちの開発メンバーも、予想外の不具合の多さに閉口・・・。
IEコンポーネント使ってる部分でCSSが利いてねぇとか、
Aeroのときだけドロップダウンがへんなところで開くとか。

「MSがSP1だすまで、正式対応しません運動」をやろうよ。
半透明WindowなんかFlashですらとっくにできるのに、なんでわざわざOS変えなきゃならんのだ。

100:デフォルトの名無しさん
07/01/25 03:29:11
無駄なあがきをしても無意味。

101:デフォルトの名無しさん
07/01/25 08:54:58
アド民権限有るのにスタートメニュー内のRemoveDirectoryに失敗してしまうorz
ショートカットは削除できているのに…

102:デフォルトの名無しさん
07/01/26 19:20:34
本製品をインストールして使用するためには、UACを無効にすることをお勧めします。
(UACが有効な環境はサポート対象外です)

103:デフォルトの名無しさん
07/01/26 19:30:18
どこの手抜きアプリだそりゃ。


104:デフォルトの名無しさん
07/01/26 20:40:13
おそらくどこもかしこも。

105:デフォルトの名無しさん
07/01/27 02:57:37
そんなのは、ひっぱたけ。

106:デフォルトの名無しさん
07/01/27 09:10:41
ほとんどのソフトでマニフェストに<requestedExecutionLevel level="requireAdministrator"/>
を埋め込むってことにはなりそうだな。

107:デフォルトの名無しさん
07/01/27 10:45:15
ならねーよ

108:デフォルトの名無しさん
07/01/27 19:02:29
UACに対応しないソフトは糞。いい加減にしろ。

109:デフォルトの名無しさん
07/01/27 19:05:16
むきになるなよ。みっともない

110:デフォルトの名無しさん
07/01/28 06:53:20
UACに対応するソフトが糞w
どうせSP1でUAC機能はなくなる

111:デフォルトの名無しさん
07/01/28 12:11:21
無くなるって、ソースはどこよ?
SP1でカーネルが Server側と同じになるからか?

112:デフォルトの名無しさん
07/01/28 13:02:59
UACを無効にするAPIキボンヌ

113:デフォルトの名無しさん
07/01/28 13:13:04
そのAPIを呼ぶのにUACが

114:デフォルトの名無しさん
07/01/28 19:24:31
>>111
ServerならVisual Styleみたいにデフォルト無効にはなるかもしれないけど機能
そのものがなくなるとは考えにくいしクライアントOSであるVista SP1のデフォルト
設定はまた違うだろう。
Server 2003 SP1とXP x64がカーネルは共通だけど設定が異なるみたいに

115:デフォルトの名無しさん
07/01/28 21:46:05
Vista も SP1で Server側とカーネルが同じになるんだったっけか。どっかのBLOGで見た気がする。
でも、UACがSP1で無くなるって話はどこから出たんだ。

116:デフォルトの名無しさん
07/01/28 22:27:10
ネタにマジレスかこわるい

117:デフォルトの名無しさん
07/01/28 23:25:26
UACは総すかん食うだろうなあ。
プログラマはやるよ。仕事だからな。
でもユーザはそうは思うまい。
こんなだとは知らずにVISTAパソコン買っちゃったけど
フリーソフトいろいろ動かないしXPにしたいなんて言い出すだろうな。

118:デフォルトの名無しさん
07/01/28 23:47:39
一般人はフリーソフトをあれこれ入れたりしない

119:デフォルトの名無しさん
07/01/29 06:43:30
そうでもない。

120:デフォルトの名無しさん
07/01/29 16:31:56
そういう一般人を黙らせてこそ、Vista対策も完成するのだ。
VISTAの64bit版を入れるか迷うな。

121:デフォルトの名無しさん
07/01/29 20:08:16
XPからアップグレードインストールしたVISTAではUACが一部無効なんだね。
Program Filesもレジストリも普通にいじれてしまう。
こういう環境じゃテストにならないってことかな。面倒だな。

122:デフォルトの名無しさん
07/01/29 22:33:27
>>121
実は仮想化されたフォルダやレジストリをいじってましたってオチじゃないよな

123:デフォルトの名無しさん
07/01/30 02:16:36
あげ

124:デフォルトの名無しさん
07/01/30 05:04:55
開発の仕事から離脱して良かった♪
もう戻れないw

125:デフォルトの名無しさん
07/01/30 08:52:44
>>121
>こういう環境じゃテストにならないってことかな。面倒だな。

そういう環境「も」テスト汁、ってことじゃないか?
アプリケーション30分互換性チェックとやらでクリーンインストールとXP SP2からのアップグレードの2パターンが書いてあったけどそういう意味か。
何が30分だ。OSインストールするだけで一日かかるっつのw

126:デフォルトの名無しさん
07/01/30 09:04:36
>Windows VistaTM、および Internet Explorer 7.0 についてのご注意
URLリンク(www.so-net.ne.jp)

127:デフォルトの名無しさん
07/01/30 14:30:23
IE6でホームページ作ってた人は大打撃だなww
CSSの解釈が仕様通りになったから、ページ崩れて見れなくなるだろうな

128:デフォルトの名無しさん
07/01/30 20:42:59
何をいってるのかよくわからんが、IE7はもう使えている。

129:デフォルトの名無しさん
07/01/30 21:03:50
>>128
馬鹿は黙ってろ

130:デフォルトの名無しさん
07/01/30 21:31:08
なにをいまさらと

131:デフォルトの名無しさん
07/02/02 12:09:43
関連付けがよくわ

132:デフォルトの名無しさん
07/02/02 13:03:37
その後>>131の姿を見たものはいなかった……

133:デフォルトの名無しさん
07/02/05 13:26:41
ベータやRCはいじってたが、いざ発売されると逆に冷めてしまった
製品版買っとくべきだよな…やっぱり

134:デフォルトの名無しさん
07/02/05 14:10:48
店頭のデモでVista+RAM1Gで動いていたのをいじくってきた。
タスクマネージャを見ると利用可能メモリが2KBwwwwww

こりゃ絶対メモリは2Gは必要ですぜ旦那。

135:デフォルトの名無しさん
07/02/05 15:07:16
>>134
あんたプログラマ?
いや違うか。頭悪すぎだもんな。

136:デフォルトの名無しさん
07/02/05 15:29:34
しかしタスクマネージャの表示内容もそろそろ変えるべきじゃないかな

137:デフォルトの名無しさん
07/02/05 18:36:19
タスクマネージャより管理ツール使わないか?

138:デフォルトの名無しさん
07/02/05 20:01:29
>>135
プログラマ志望の厨房か何かだろ。

139:デフォルトの名無しさん
07/02/06 05:42:54
>>136
XPと比べて随分変わってる気がするが

140:デフォルトの名無しさん
07/02/06 06:10:33
メモリのデフォルト表示がワーキングセットからプライベートメモリになってたりな。
Aeroのように見た目が変わらなきゃ違いを認識できないやつは
この板じゃお呼びじゃないと思うが

141:デフォルトの名無しさん
07/02/07 10:17:48
Windows Vistaの「Windowsフォトギャラリー」は酷すぎる
URLリンク(www.heartlogic.jp)
一応、そこいらの本やヘルプを見た限りでは、この「何も聞かずに上書き保存」仕様をやめさせる設定項目はないようだ。
「オリジナルは別に保存しておこうね」とか、わけのわからないことを言ってる本もあるくらい。

142:デフォルトの名無しさん
07/02/07 10:38:59
>>141
自動的にバックアップがとられたはず。

143:デフォルトの名無しさん
07/02/07 10:50:59
Vista ってProgram Filesの下にはファイル書けないそうですが、
じゃあ、iniファイルなんかはどこに置けば良いのでしょうか?

144:デフォルトの名無しさん
07/02/07 10:54:50
>143
mydocかなぁ

145:デフォルトの名無しさん
07/02/07 10:57:30
>mydoc

ユーザー毎に設定するものじゃない場合は、
All Users\mydocがありますか?

Vi$taの互換性を甘く見てたため、未入手。

146:デフォルトの名無しさん
07/02/07 11:55:40
>>145
お前・・・あほやろ?

147:デフォルトの名無しさん
07/02/07 13:41:51
メニューバーやツールバーって廃止の方向なの?

148:デフォルトの名無しさん
07/02/07 15:14:57
>142
それ、Ultimateとかだけしかついてない。

149:デフォルトの名無しさん
07/02/07 15:24:11
Vi$ta悲惨だな...

150:デフォルトの名無しさん
07/02/07 15:28:11
悲惨なのはプログラマですがなにか?

151:デフォルトの名無しさん
07/02/07 15:32:14
>>143
>>87

152:デフォルトの名無しさん
07/02/07 15:53:44
Vi$taオワタ\(^o^)/

153:デフォルトの名無しさん
07/02/07 16:25:04
Vista対応のアプリケーションを開発中です。

CドライブにOSが入っているとして
XP,2000のパス
C:\Documents and Settings\All Users\Application Data\
に保存していたデータがVistaでは
C:\ProgramData\
に変更になっていました

インストールシールドからアプリケーションを起動してそのフォルダに
初期の設定データを保存してました。
しかしその後、アプリケーションを手動で起動し、その設定データを
編集しようとすると書き換え保存ができなくなっていました。

同じアプリでも「インストールシールドで自動的に起動したアプリ」と
「手動で起動したアプリ」は権限が違うため、
(setup.exeを起動すると権限が自動的に上がる)
前者が保存したファイルは後者では編集ができなくなっているの
でした。

解決方法はないでしょうか?

インストールシールドから権限を下げてアプリ起動させる方法とか、
保存するときに権限を下げて保存できる方法とか、、。

C:\ProgramData\ にできれば保存したいです。

よろしくお願いします。

154:デフォルトの名無しさん
07/02/07 16:25:10
>>148
いや、ヘルプに書いてあるけど?


155:デフォルトの名無しさん
07/02/07 16:33:36
つまり、保存確認ダイアログ無し&自動バックアップがデフォ?

156:デフォルトの名無しさん
07/02/07 17:41:26
>153
マニフェストファイルを変更。


157:デフォルトの名無しさん
07/02/07 18:13:38
>156
コメントありがとうございます。
マニフェストファイルに

<description>Windows Shell</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker"uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>

上記を追加しても、インストールシールドからアプリケーションを起動すると
だめなんです。
上位の権限でアプリケーションが起動してしまいます。

手動でexeをクリック起動だと通常の権限に戻ってしまうんです。

158:デフォルトの名無しさん
07/02/07 19:25:17
>>141
なにそのクソ仕様

159:デフォルトの名無しさん
07/02/07 19:43:42
>>153
せっかく、setupから起動したアプリが(真の)アドミ権限を持ってるんだから、その時に
C:\ProgramData\<your-appli>
のセキュリティー設定を変えちまえば?


160:デフォルトの名無しさん
07/02/07 20:41:19
いや、正攻法なら、setup.exeから起動されたプログラムが作るファイルの権限変更じゃね?

たぶん、URLリンク(msdn2.microsoft.com)
だと思うんだけど…。間違ってたらごめん。


161:デフォルトの名無しさん
07/02/07 21:08:09
>141に追記が来てるね
しかしこうやって戸惑う人が現れる以上、この仕様はいかがなものか?と思わざるを得ない

162:デフォルトの名無しさん
07/02/07 23:33:19
>>153>>157
MSDNマガジン(オンラインで読める)に書いてあったケースだな。

インストーラAからアプリBを起動すると、アプリBまで権限が上がってしまってよろしくない。
インストーラAとアプリBを順番に起動するアプリCを作るべし。
Aを起動するときはCreateProcessではなく、Shell何とか関数にしないと
権限昇格ダイアログが出ないので注意。

そんな感じ。URLは自分で調べてくれ。

163:デフォルトの名無しさん
07/02/08 00:03:37
レジストリの権限ってどうなってんの?
HKEY_CURRENT_USER\Software
HKEY_LOCAL_MACHINE\Software
このへんが自由に書けるなら問題無いけど。
後は HKEY_CLASSES_ROOT 以下とか。

164:デフォルトの名無しさん
07/02/08 00:07:07
>>163
自由に書けるのは HKEY_CURRENT_USER だけだと思う

165:デフォルトの名無しさん
07/02/08 00:24:38
システム管理下のフォルダ(例えばProgram Filesなど)にインストールして、
セーブデータをそのフォルダ内に作りたい。
でもプログラム起動のたびに管理者権限昇格もしたくない。

そんな方法はなさそうですね…

166:デフォルトの名無しさん
07/02/08 00:26:49
>>162
そうそう。CreateProcessで通常のexeから管理者権限のexeを起動するとだめなのな。
互換性の問題を検出したとか出て2回目以降は動くようになるけどカコワルイ。
いやらしいのは一回動くようになっちゃうとその後はその環境では問題なく動いてしまうから、
初回起動時のメッセージを見落としたら、そういう問題があることに開発者すら気づかないという点だな。
初回なんてどうせろくに動かないから、ちょっとしたメッセージなんか気にしないで忘れてしまうかもしれない。
落とし穴だな。

試行錯誤でShellExecuteならいけるというのを見つけてそれで実装したけど
もしかしたらこれってバグ技かなあ? と思ってた。
MSDNマガジン推奨だったのか。ちょっと安心した。

167:デフォルトの名無しさん
07/02/08 07:43:58
こういうのって、メンドクサクしただけで、ユーザの保護に役立っているように思えないんだよな

もっと単純シンプルな仕掛
たとえば、実行ファイルのあるフォルダツリー以下しかアクセス出来ないとかさ
レジストリがその実行ファイル専用に出来るとかさ

168:デフォルトの名無しさん
07/02/08 09:34:20
暗にAdminで常用するな糞が、って言いたいんじゃね?

169:デフォルトの名無しさん
07/02/08 09:35:09
あんなに警告出しまくってもだめだよな。

おおかみがきたぞー
って話アメリカにはないのかな?

170:デフォルトの名無しさん
07/02/08 11:21:20
153 157です。
160さんコメントありがとうございます。
URLリンク(msdn.microsoft.com)
ここに%ALLUSERSPROFILE%について日本語で掲載されていますが、インストール後に
手動でアプリ起動して設定ファイル保存せよというような意味が書いてあります。
しかし、160さんの「管理者権限を下げて保存する」方法が私のやりたいことに一番近い感じですが、どうやるんでしょう?
調べています。

>162 さん
ありがとうございます。まったくそのとおりなんです。
162さんの方法は「インストールランチャ」のようなアプリをまた別に作れということなんですよね?
うーん、、、、、、。考えてみます。



171:デフォルトの名無しさん
07/02/08 13:09:24
つまりは「個人データを全ユーザ共有バイナリの直下ディレクトリに置くな」って事だろ。
その場凌ぎのvista対応をするよりも、仕様/設計から見直した方がインジャネーノ?
今後もあるわけだし。

172:デフォルトの名無しさん
07/02/08 13:12:57
>その場凌ぎのvista対応をするよりも、仕様/設計から見直した方がインジャネーノ?

だから、どこの置けと?
全ユーザーに関する設定を。

173:デフォルトの名無しさん
07/02/08 13:56:53
Linuxを買収してWindowsって名前にしたらまだすっきりしたのにな
真綿で首しめるような事するから・・・

174:デフォルトの名無しさん
07/02/08 14:03:49
マルチユーザにしてユーザ同士の保護ばっかり厳しくしたって意味ないだろうに
パソコンなんて安価になって1人1台の時代なんだしさ

175:デフォルトの名無しさん
07/02/08 14:11:40
>>172
全ユーザに関する設定って例えば何?

176:デフォルトの名無しさん
07/02/08 15:03:33
170です。

%ALLUSERSPROFILE%に置くことはやはり厳しいのかな?
XP,2000と同じように作りたかったのですが、、、。

172さんのおっしゃる通りアプリ自身の設定ってほんとどこに置くんでしょう?


177:デフォルトの名無しさん
07/02/08 15:29:15
>>176
アプリ自身の設定って例えば何?

178:デフォルトの名無しさん
07/02/08 16:40:23
全ユーザ共通の設定って、そんなもん別に必要ないじゃん

179:デフォルトの名無しさん
07/02/08 16:50:08
UNIXで言うなら、rootの人が設定するユーザのための初期値で
ユーザをADDするとその設定ファイルをユーザのHOMEにコピーして初期値とする的なものじゃねーの

180:デフォルトの名無しさん
07/02/08 17:09:46
全部c:\に置いちゃえばいいんだよ!!!!!


181:デフォルトの名無しさん
07/02/08 17:12:35
DOS時代じゃあるまいし

182:デフォルトの名無しさん
07/02/08 17:28:03
バイナリシリアライズしてレジストリに(ry

183:デフォルトの名無しさん
07/02/08 17:28:18
まどろっこしいことを考えるよりかは
c:\hogehoge\
ってディレクトリ作ってそこにブッ込むのもアリかと思う。

そうじゃなかったらおとなしくmanifestを設定してHKLMのレジストリに書き込むか。

184:デフォルトの名無しさん
07/02/08 17:32:04
そんなことすると、見慣れないディレクトリができたと騒ぐんだよ、潔癖症の奴が
で、勝手に消すんだよ
奴らは斜め上ってレベルじゃねーぞ

185:デフォルトの名無しさん
07/02/08 17:59:15
>>176
そんなのいっぱいあるじゃん?
ちょっとは考えろ!

186:デフォルトの名無しさん
07/02/08 18:32:08
>>179
それなら、実行時に書き換えるもんじゃないから、インストール時にProgram Filesに入れればいいんじゃないの?
実行時に書き換える必要がある全ユーザー共通の設定、ってのをどこに置くかって
ことだろう。ソフトウェアの設計上の、その是非は別として。
UNIXと対応させると、
 /usr/share -> Program Files
 $(HOME) -> Users\*
 /etc -> レジストリ
として、
 /varはどこよ?ってことだろうか。

187:デフォルトの名無しさん
07/02/08 18:51:15
>186
その後、またAdmin権限の人がユーザー権限の人のために変更したい場合はProgram Files に入れてたら
できない。

admin権限の人は自由に変更できてユーザー権限の人は読込しかできないという仕様はできないの?

188:デフォルトの名無しさん
07/02/08 18:57:29
>/varはどこよ?ってことだろうか。

その通りです。どこに置くの?

189:デフォルトの名無しさん
07/02/08 19:20:56
セットアップでそういう設定を変更するようにすればいいじゃん。

190:デフォルトの名無しさん
07/02/08 20:54:15
えっと、Vistaって、ファイルのNTFS副ストリームは
ユーザーから簡単にさわれるようになってるんでしょうか?

ユーザーにあまり触られたくない情報をそこに書いてるのだけど。

191:デフォルトの名無しさん
07/02/08 22:56:06
>>165
>>87


192:デフォルトの名無しさん
07/02/08 23:40:26
>179
そこはホントに管理者権限で処理すればいいんじゃねーの?

193:デフォルトの名無しさん
07/02/08 23:48:41
そんな話じゃねーよ?

194:デフォルトの名無しさん
07/02/08 23:54:44
Windowsのテンプレートだろ?
adminで作ってアプリのカレントに保存後、
セキュリティのeveryoneの読み取りを許可にしとけばいいじゃん。

win文化じゃあんまり見かけないレアケースだと思うけどな。
IEのproxy設定なんかもそうだけど、どんな共通情報でも1から各ユーザに入力させるじゃん。

195:デフォルトの名無しさん
07/02/09 00:28:45
初歩的な話だけど、Vistaの場合管理者アカウントが必ず1つは必要だよね?
んで、標準アカウントは別に存在しなくてもかまわないと。
そうした場合、Vistaプレインストール済みのパソコン買ってきた人っていうのは、
まず管理者アカウントの設定して、それからわざわざ標準アカウントを作成
なんてやるのかな?それとも標準アカウントの作成を促すメッセージでも出る
わけ?

196:デフォルトの名無しさん
07/02/09 00:35:54
管理者アカウントひとつだけで使うケースが一番多いだろうな

197:デフォルトの名無しさん
07/02/09 01:01:59
もう既に、何も読まずに条件反射で「許可」ボタンを押すようになっちゃったな。

198:デフォルトの名無しさん
07/02/09 01:20:00
プログラマでさえこんな状態なのに、一般ユーザなんてどうすりゃいいのかわからんだろうな

199:デフォルトの名無しさん
07/02/09 01:34:15
本当の一般ユーザはUACにひっかかるような操作しないんじゃ……?

とMSは考えたのかも

200:デフォルトの名無しさん
07/02/09 02:03:23
結局、ユーザは何で呼び出されたのかわからないプログラムにも何も考えず許可押すんだから
あんまり意味が無い気もするな。そういう初心者は対象外なんかな。

201:デフォルトの名無しさん
07/02/09 02:09:01
とりあえず、ユーザが許可押したんだからこっち(MS)に責任は無いぞって事にしたいんだろ
そしてMS自らウイルススキャンソフトを出して二度おいしい
すべては計画通り

202:デフォルトの名無しさん
07/02/09 02:28:03
ライトユーザー ユーザー パワーユーザー の区分が必要だ

203:デフォルトの名無しさん
07/02/09 02:48:14
管理者アカウントで常用する悪癖が無くならない限り、どうしようもないな。
UACは、逆にユーザを甘やかす結果になっている気がする。
管理者アカウントのGUIは色数256固定とか位しないと駄目かもしれんね。

204:デフォルトの名無しさん
07/02/09 08:29:24
ハァ?

205:デフォルトの名無しさん
07/02/09 08:41:49
個人で使うパソコンに管理者とかユーザーとかいうのが、もともと不要だったんだよ
企業での利用でも1つのパソコンを共有するなんて、まず無いだろ?

206:デフォルトの名無しさん
07/02/09 08:45:22
どっちかっつーとウィルス対策が主眼なんじゃねーの?

207:デフォルトの名無しさん
07/02/09 11:03:56
UACは悪くはないんだが、
UNIXで言うところsuじゃなくて、sudoを毎回叩いている感覚が気にくわない。


208:デフォルトの名無しさん
07/02/09 12:28:14
UACダイアログ出すときの画面暗転に、もたつきがあるのが気に食わない。
もっとスムーズにやってほしい。画面暗転オフにできれば良いのに。

209:デフォルトの名無しさん
07/02/09 13:42:55
JIS2004フォント問題はどうする?
ユーザーの環境がJIS2004MS書体と旧来のMS書体が混在しそうな予感なんだが。

Vistaだけの問題じゃないところが痛い。


210:デフォルトの名無しさん
07/02/10 06:28:30
>>187
ならProgramDataでいいじゃん。つーかProgram Filesでも管理者は昇格すれば
書ける。Vistaに付属のコントロールパネルも多くは全ユーザーの設定を変更するとき
昇格が必要って仕様だし。
>>151 >>191
> 良い子は真似しないように。
>>208
署名を検証してるからかな。「署名の検証中です」ともなんとも表示されないから
巨大な実行ファイル(自己解凍のインストーラとか)の実行時はフリーズしたみたいになる

211:デフォルトの名無しさん
07/02/10 06:32:18
>>157
こんなの見つけた。一言で要約すると
「現在ログオンしているユーザーのアカウントで即時に一回限り実行されるタスクを登録」
URLリンク(www.codeproject.com)

212:デフォルトの名無しさん
07/02/12 22:55:56
アプリのexe自体がアンインストーラかねてんだけど、
通常実行時は昇格させないでアンインストール時は
昇格させる方法無い?

213:デフォルトの名無しさん
07/02/12 22:59:54
>>212
システムにアンインストーラとして登録しとけば勝手にやってくれんのか?

214:デフォルトの名無しさん
07/02/12 23:22:55
>>205
いや、それは使い方しだいだろ。
確かに、サーバークライアントとして、個々に割り当てられたOSの場合は
サーバー側が制限するのがほとんどだが、小企業になると、
【鯖】←→【PC】 PCーPC-PC-PC-PC みたいに、メインとサブのネットワークをわけて、
1台を共有する場合だってある。

家庭では、大人と子供で、設定を変えて(アダルトサイトを見れないようにとか、システムいじれないようにとか)もするだろ。

管理者権限を付加するかどうかのいま、VistaのUACのほうがいらね~よ

215:デフォルトの名無しさん
07/02/13 00:37:53
少なくとも今の仕様だと、個人で使ってる人間は標準アカウントなんて作らんだろうな。
ほとんどの人は管理者アカウントだけで使うだろう。

本当に標準アカウントで使ってほしかったんだったら、標準アカウントをデフォルトにして、
OSの設定いじるような時はそのためのパスワード入力必須、パスワード入れたら管理者
アカウントに切り替わる(ただし、管理者アカウントというのが存在する事は意識させない)
みたいな仕様にできなかったものか。

216:デフォルトの名無しさん
07/02/13 01:11:50
RHLはGnome使う限りそんな感じだよね。

217:デフォルトの名無しさん
07/02/13 01:51:34
>>215
XPまででも普段からAdministratorsグループのアカウントを常用する奴が多かったから、
とりあえずそいつらに対する対策を取ったということではないだろうか。

218:デフォルトの名無しさん
07/02/13 02:00:40
>>217
それは逆なケースも多いと思うぞ。昔から使ってるアプリケーション
が管理者権限を持つユーザじゃないとまともに動作しないってことが
現実にあるし。

219:デフォルトの名無しさん
07/02/13 07:43:12
>>214
まあ、もっと単純にシングルユーザとはブランドを別ければよかったようにも思うな

1台のUSB-HDDとかUSBフラッシュに、ユーザー情報を全部押し込められるような
仕様にして、それもWindowsだという事にすると。

そうすりゃ、ユーザ数分OSが売れてMSもウハウハ
ユーザも、USBメモリだけ持ち歩けば出先のパソコンを汚さず自分の環境が使えて楽と

220:デフォルトの名無しさん
07/02/13 08:05:53
マイクロソフトがセキュリティにうるさくなったのはウィルス対策もでかいんじゃね?
一般権限と管理者権限じゃ乗っ取られたときのダメージが違うだろ?

…あんまり変わらん?

221:デフォルトの名無しさん
07/02/13 08:47:49
そもそも、みんながみんな管理者権限を使いまくるのは
ユーザ権限が弱すぎるからなんだし、これを強化すればそれだけでよかった気もする。
Program Filesはデフォルトでは空っぽにして、Windows付属ソフトはWindowsフォルダに全部ぶちこんで
そこだけを管理者以外触れないようにするとか

222:デフォルトの名無しさん
07/02/13 09:00:50
キンタマ等のwinny絡みは自己責任、
それ以外のウイルスの大半はマイクロソフトのセキュリティホールの問題がでかい。
メーラーでマクロとか無意味だよ。

223:デフォルトの名無しさん
07/02/13 09:55:59
>>220
管理権限が無くても
アプリさえ走らせられたらVNCもどきで利用画面覗いたり
個人情報の抜き取りとか迷惑メールの踏み台にするとかには何の支障もないだろ
キーロガーのようなDLLが必要なのはともかく



224:デフォルトの名無しさん
07/02/13 10:20:07
Vi$taうっとーしー

225:デフォルトの名無しさん
07/02/13 13:19:50
>>223
そうだなあ。
UNIXの管理してた頃はとにかくroot絶対死守だったけど、
いまどき一番問題なのは個人情報だから一般権限のほうが大事だもんなあ。

226:デフォルトの名無しさん
07/02/13 14:18:57
ローカルセキュリティーポリシーとかで
一般アプリも署名必須設定にできるんじゃないかな

現時点でデフォルトをこれにするのは無謀だが・・・
activexのcabパッケージはやったけども

227:デフォルトの名無しさん
07/02/13 15:49:33
MacOS9からXの時のように、ばっさりと替えてしまえばよかったのにね

228:デフォルトの名無しさん
07/02/13 17:22:44
拡張子「mst」のファイルが書き込みできないのは仕様ですか?

229:デフォルトの名無しさん
07/02/13 17:24:38
うわ、汚らしい強引な制限。

230:デフォルトの名無しさん
07/02/13 19:53:09
>>227
そんなことやったら、非難轟々だと思う。
シェアが低くて、信者が必死で擁護するMacじゃなきゃ無理。

231:デフォルトの名無しさん
07/02/13 20:25:29
MacOSXはMac信者にも嫌われてたけどな


232:デフォルトの名無しさん
07/02/13 20:26:51
あいつら馬鹿だからやっとこさ覚えた操作手順が変わるのを異様に拒絶してた

233:デフォルトの名無しさん
07/02/13 20:52:28
AppleIIの登場が77年、MS-DOSが81年、初代Macが84年。
未だににまがりなりにもDOSの資産を引き継いでるんだから、切り捨ての
連続でやってきたAppleと比べりゃたいしたもんだ。

234:デフォルトの名無しさん
07/02/13 21:56:15
MacOSXは、Win3.1から2000並みの変わりようだったからなあ。

235:デフォルトの名無しさん
07/02/13 22:11:32
VISTAでは、DOSがサポートされてないがな。

236:デフォルトの名無しさん
07/02/13 22:19:36
されてるだろ? 英語版限定だけど。

237:デフォルトの名無しさん
07/02/13 22:21:47
VMでDOS動かせばいいんじゃないの?

238:デフォルトの名無しさん
07/02/13 22:28:13
Vistaのコマンドプロンプトにファイルをエクスプローラからドラッグドロップできないっていうのは
どういうセキュリティ上の制限なんだろう

239:デフォルトの名無しさん
07/02/13 23:10:45
SPTI使ってフォーマットされてるドライブにWriteコマンド発行するとアクセス拒否されるんだけど仕様?
UACきってもダメだし。

240:デフォルトの名無しさん
07/02/14 03:30:28
>>238
うおお、下らん制限だ

241:デフォルトの名無しさん
07/02/14 06:37:32
>>221
ユーザー権限での使用はUACで便利になった。
今まで管理者で使ってた人は「不便になった」としか感じないだろうが
>>238
MIL。コマンドプロンプトのウィンドウはcsrss.exe(IL=System)が出してるから。
>>239
ページファイル攻撃に対策するための仕様。
URLリンク(www.itmedia.co.jp)

242:デフォルトの名無しさん
07/02/14 06:40:57
>>223
> VNCもどきで利用画面覗いたり
> 迷惑メールの踏み台にするとかには
管理者権限がないとWindowsファイアウォールに穴を開けられない。

243:デフォルトの名無しさん
07/02/14 09:25:33
>>242
サーバを組み込むタイプは制限されるかもしれないが
VNCでもワンクリック(ビュアーリスニングモード)タイプだとどうなの?

メール送信の踏み台にも、たとえばHTTPで送信内容を取得して、送信するアプリ書かれたら
ファイアウォールで防げる?

244:デフォルトの名無しさん
07/02/14 10:42:48
>>242
Vistaのファイアウォールって、デフォルトでインバウンド・アウトバウンド両方共
有効なんだっけ?

245:デフォルトの名無しさん
07/02/14 12:07:50
>>242
所詮Windowsだろ?
壁自体に穴が空いてるよ・・・

246:デフォルトの名無しさん
07/02/14 12:13:44
ファイアウォールの実行ソフトが単一バイナリならアタックしやすいだろうね。


247:デフォルトの名無しさん
07/02/14 12:31:46
>>245
それを言うなら、壁自体に窓が開いてる・・・・


248:デフォルトの名無しさん
07/02/14 12:57:45
>247
デケェなオイw

249:デフォルトの名無しさん
07/02/14 13:33:10
>>238
編集モードを有効にするとあら不思議

250:デフォルトの名無しさん
07/02/14 19:28:22
>>247
壁に窓が開いてるのは当たり前のような

251:デフォルトの名無しさん
07/02/14 20:16:26
>>250
お前頭いいな

252:デフォルトの名無しさん
07/02/15 07:11:01
>>250
おまえカプセルホテル使ったことないだろ

253:デフォルトの名無しさん
07/02/15 09:37:13
カプセルが当たり舞じゃないだろ。

それとも252はカプセルに住んでるのか?
ネットカフェに住むワーキングプアみたいな。

254:蕪木ら某 ◆Googl8RmwA
07/02/16 06:28:32
>>238>>240-241>>249
+ URLリンク(support.microsoft.com)
 (w

255:デフォルトの名無しさん
07/02/16 10:31:20
Shift+右クリックは知らんかった

256:デフォルトの名無しさん
07/02/16 22:32:26
別に隠しコマンドみたいにする必要があるメニューじゃないと思うんだけどな。
パスのコピー

257:デフォルトの名無しさん
07/02/16 23:59:20
ぬう、これは...
士郎、でかした!!

258:デフォルトの名無しさん
07/02/17 00:06:44
自作ツールの出番が無くなる! Vista 乗り換えは禁止だなw

259:デフォルトの名無しさん
07/02/17 00:23:48
explorerのメニューがALTキーを押すと出てくるなんて気がつかなかったしな。
Vistaになってから、UI設計の質が落ちたような気がする。

260:デフォルトの名無しさん
07/02/17 01:47:23
詳細表示がLVS_EX_FULLROWSELECTだけど、
非選択項目を右クリックするとき
アイコンかラベルの上じゃないと反応しないのもUIの不一致だよな

261:デフォルトの名無しさん
07/02/17 03:36:56
初心者があまり使わない機能を隠蔽する方向か
にしても機能の選択が怪しいというかなんというか

262:デフォルトの名無しさん
07/02/17 14:04:51
「コマンド ウィンドウをここで開く」も同様の隠し機能ながら標準装備されたな

263:デフォルトの名無しさん
07/02/17 18:37:44
cdって入れてからフォルダをD&Dで・・・が使えなくなったからねえ

264:デフォルトの名無しさん
07/02/18 12:16:05
>>238 >>240-241 >>249 >>245
回避策がなんであれ、
ドラッグ&ドロップそのものができないのが
ひじょーに不便だよな。
SSHでも立ててPoderosaとかで試してみることにするわ。

265:デフォルトの名無しさん
07/02/21 20:24:45
Vista上で動くプログラムから、Vistaが
・クリーンインストールされたVistaなのか、
・XPからアップグレードされたVistaなのかを
スカッと見分ける方法ってありますか?
ご存じでしたら教ぇてくださぃ。


266:デフォルトの名無しさん
07/02/21 21:23:10
知らないけど見分けてどうすんだ?

267:デフォルトの名無しさん
07/02/21 21:30:58
マイクロソフトが「クリーンインストール」という用語を
紛らわしい感じに再定義したという話をきいたが。
URLリンク(pc.watch.impress.co.jp)

268:265
07/02/22 02:38:36
「クリーンインストール」という言葉はややこしいんですねぇ。
書き直すと、

-----
Vista上で動くプログラムから、そのVistaが
・XPからアップグレードされたVistaなのか
・アップグレードではない(初めからVistaが入っている)環境なのか
を見分ける方法ってありますか?


269:デフォルトの名無しさん
07/02/22 10:01:18
>>265
見分ける方法は知らないけど、「何のために見分けたいか」が書かれていると
「それなら見分けるんじゃなくてもxxxという方法が使えるよ」とか答えやすくて
いいんじゃないかな。

そもそも、「何のために」が分からないと、手持ちの情報を提供して役に立つかどうか、
こちらで判断できないじゃん。


270:265
07/02/22 10:29:40
元からVistaのPCと、XPからアップグレードしたVistaでは動作が違うところが沢山あるので、
とりあえずはケースバイケースで自作プログラムの動作を切り替えたいからです。


271:デフォルトの名無しさん
07/02/22 10:39:45
素のVistaで動くように作れば切り替えなくていいはずだが。
なぜ難しいほうに行きたがるのだろう。

272:デフォルトの名無しさん
07/02/22 11:21:46
「沢山」じゃなくて具体的にどーとかねーの?

273:デフォルトの名無しさん
07/02/22 11:48:48
>270
もう答え出てんじゃん。
「動作が違うところ」をトリガにすればおk。

274:デフォルトの名無しさん
07/02/22 11:55:07
設定に

□ 私はVistaを上書きでインストールしました。

ってチェックボックスつけとけば?


275:デフォルトの名無しさん
07/02/22 12:06:10
□ 私はコレで会社をやめました

276:デフォルトの名無しさん
07/02/22 13:33:14
Vistaでパソコンが終わりそうだ
URLリンク(www.nikkeibp.co.jp)

277:デフォルトの名無しさん
07/02/22 14:03:51
OSが変わった程度で世間が騒がなくなっただけでしょうに。辛口評価て(笑)

278:265
07/02/22 15:19:31
アップグレードしたVista上で、rundll32.exeを使って
printui.dll内のPrintUIEntry()を呼び出すとエラーが出ちゃいます。
クリーンインストールしたVistaや、2000/XP上ではエラーなく動いてくれるのに。
printui.dllをLoadLibrary()して呼び出せば、アップグレードした
Vista上でもエラーが出ないのですが、別の事情がありまして
なるべくrundll32.exeを使って呼び出したいのです。

279:265
07/02/22 15:20:24
という訳で、Vistaの素性を調べて、
アップグレードしたVista → LoadLibrary()経由で関数コール
それ以外のVista および XP/2000 → rundll32.exe経由で関数コール
としようと考えたのですが、その区別の仕方が見つからなく困っています。
GetProductInfoとかGetVersionExで取れると安易に考えていたのですが。

280:デフォルトの名無しさん
07/02/22 15:30:08
LoadLibrary経由に統一したらだめなのか?

281:デフォルトの名無しさん
07/02/22 16:04:26
だめなんですぅ
でも諦めたらそうするかも

282:デフォルトの名無しさん
07/02/22 17:47:07
ク...が暴走をはじm...

. ヽ    |-、      !/_,/゙ ヽ___  \\,
  `ー- ! , -\    _, -.!   ヽ   `ヽ \\_
    ゝ | , -''. ̄ ̄\ :::::ヽ   ヽ '、  |   .\\_
      /゛       \ :ヽ     ' 、 |  _, _、 \\_
     /  、       \l、         ! /  .!   \ \
   _,____,|,               |  \ ヽ    \_` . ‐-、
_,/                       !  .l─ヽ   .-/-  ● \
` ー 、      ``ヽ、             ヽ  !::::::.!  .ー \ .\ \.\
    `ヽ、  /-、   `'-、       ,_-‐‐'ヽ__|、::::::.!      `ヽ,\  \\
       \   ヽ、_       , ‐', -‐ ̄  .∥::::::ヽ       ー'   ''ー
        `‐‐-/:: ̄'''--、_  l :/゛       `ヽ,:::ヽ
             \ ::::::::\`ヽ|          \:|
               \ :::::::::`''ヽ--、    _,,.-‐ヽ !/
                 \_:::::::::::::::::.!  /'´::::::::::::::`_ .、 !ヽ 、
                   `'ー-、 ::| ./::::::::::, ‐'": : : :`'‐.! .|ヽ .!、 、``ヽ
                        !__|  ̄ / : : : : : : : : : :! .!iヽ !   /: :.!
                              !: : : : : : : : : : : .\.-、` ー'' /
                              !: : : : : : : : : : : : :/ `ー、 ゙̄ヽ
                    i: |      ヽ : : : : : : : : : : /`´    ̄'`
                    |: .!    , -─'ー-、______/
                    ヽ \,   ` ̄─ / l
                      ` ー-` ー‐‐/  /
                           /  ,/
                          / , /
                          ̄

283:デフォルトの名無しさん
07/02/23 06:03:49
まずエラーの原因突き止めたら?
>>271
フォルダ仮想化で動作がおかしくなるから仮想化されてるかどうか見分けて
動作を変えたいみたいな本末転倒系の質問だろうと思ってたら案の定だった
(正解はもちろん「manifest追加して仮想化されないようにする」)

284:デフォルトの名無しさん
07/02/23 06:04:50
3行目以降は単なるたとえで>>265への答えじゃないので念のため

285:デフォルトの名無しさん
07/02/23 08:45:56
>>278
エラーでたらキャッチして、処理を切り替える訳にはいかんの?

286:デフォルトの名無しさん
07/02/23 10:08:20
>282
クリリンのことかぁぁぁぁ!!!

287:265
07/02/23 11:40:53
manifestは付けています。

>>285
レスありがとうございます。
printui.dll(もしくはその先)が勝手にエラーのメッセージボックスを
表示してしまうので、それを出したくないんですよぉ。

288:デフォルトの名無しさん
07/02/23 19:19:46
漏れの自作プログラムの中に、ある条件下でレジストリの HKEY_CLASSES_ROOT 配下に書き込みを行うものがある。
そのプログラムが HKEY_CLASSES_ROOT 配下への書き込みを行うまでは、何度起動してもUACのダイアログは
出なかったんだが、一度書き込みを行ってからは毎回ダイアログが出るようになった。
「危険な動作を行うプログラム」ってことをVistaが学習したんだろうな。

じゃあ、その学習内容はどこにあるんだろうかと、レジストリを検索してみたところ、
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
に記録されていることがわかった。
ここに実行ファイルのフルパス名で作成されている値を削除したら、UACのダイアログは出なくなった。

289:デフォルトの名無しさん
07/02/23 19:39:49
というわけで、レジストリ書き込み機能を別の exe に分離して、必要に応じてそっちを
起動するようにすれば、プログラムを起動するたびにUACダイアログが出るような事態は
避けられるんじゃないかと思いついたので、これから検証してみる。

290:デフォルトの名無しさん
07/02/23 21:47:37
ホホウ

291:デフォルトの名無しさん
07/02/23 23:07:12
この本(mook)どうよ?
URLリンク(www.amazon.co.jp)

292:デフォルトの名無しさん
07/02/24 05:37:58
随分検証に時間掛かるな。

293:デフォルトの名無しさん
07/02/24 10:37:51

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::。:::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::。::::::...... ...   --─-  :::::::::::::::::::: ..::::: . ..::::::::
:::::::::::::::::...... ....:::::::゜::::::::::..   (___ )(___ ) ::::。::::::::::::::::: ゜.::::::::::::
:. .:::::。:::........ . .::::::::::::::::: _ i/ = =ヽi :::::::::::::。::::::::::: . . . ..::::
:::: :::::::::.....:☆彡::::   //[||    」  ||]  ::::::::::゜:::::::::: ...:: :::::
 :::::::::::::::::: . . . ..: :::: / ヘ | |  ____,ヽ | | :::::::::::.... .... .. .::::::::::::::
::::::...゜ . .:::::::::  /ヽ ノ    ヽ__/  ....... . .::::::::::::........ ..::::
:.... .... .. .     く  /     三三三∠⌒>:.... .... .. .:.... .... ..
:.... .... ..:.... .... ..... .... .. .:.... .... .. ..... .... .. ..... ............. .. . ........ ......
:.... . ∧∧   ∧∧  ∧∧   ∧∧ .... .... .. .:.... .... ..... .... .. .
... ..:(   )ゝ (   )ゝ(   )ゝ(   )ゝ無茶しやがって… ..........
....  i⌒ /   i⌒ /  i⌒ /   i⌒ / .. ..... ................... .. . ...
..   三  |   三  |   三  |   三 |  ... ............. ........... . .....
...  ∪ ∪   ∪ ∪   ∪ ∪  ∪ ∪ ............. ............. .. ........ ...
  三三  三三  三三   三三
 三三  三三  三三   三三

294:デフォルトの名無しさん
07/02/24 14:18:08
>>288 の身に一体何が…。


295:デフォルトの名無しさん
07/02/24 19:54:15
>>288
書き込みを行ったあとそのプログラムが終了したとき互換アシスタントが出なかった?

296:デフォルトの名無しさん
07/02/24 21:26:36
>291
今の時点で出ている Vista開発本は、英語以外、全て糞。


297:デフォルトの名無しさん
07/02/24 21:42:14
>296
英語の場合のお勧めってあります?

298:デフォルトの名無しさん
07/02/26 18:03:32
自作のDLLをregsvr32で登録するようなインストーラを
WindowsInstaller(VisualStudio.NET 2003)で作成しています。

UACが有効になっている状態だと、インストールの途中で
msiに対しての昇格ダイアログが出てくるのですが、
これを許可してもregsvr32でのレジストリ登録の段階で
エラー0x80070005(E_ACCESSDENIED)で弾かれてしまいます
(インストーラからは、カスタム動作の「確定」フェーズで
regsvr32を呼び出しています)。

DLLにマニフェストを添付してrequestedExecutionLevelを
設定してみてもだめでした(asInvoker、requireAdministratorともに)。

COM登録を含むインストーラは、どのように作成されることを
Microsoftは推奨してるのでしょうか。


299:デフォルトの名無しさん
07/02/26 18:33:05
>COM登録を含む

M$「だから、COMをドトネトで置き換えろっつーの」

300:デフォルトの名無しさん
07/02/26 19:38:40
それ言い出したらこのスレでネタにしてる話のほとんどは
アンマネージなアプリにしか関係ないような

301:デフォルトの名無しさん
07/02/26 20:17:39
MSI的にはregsvr32で登録するのは推奨してなかったはず。

302:298
07/02/26 20:28:53
>>299-301 様、ご意見ありがとうございます。

なるほど、regsvr32でのCOM登録はVistaでは
遂に切り捨てられたと見た方がよいのですね・・・

しかし、当方の場合は自作DLLですので変更の余地はありますが、
サードパーティーから提供されているCOMコンポーネントに
依存しているアプリケーションを作成しているベンダーは、
全自動でのインストーラを作成できなくなり困りそうですね
(WindowsInstaller以外ならその限りではないのかも知れませんが)。

「コマンドプロンプトを管理者として実行してregsvr32を・・・」のような
マニュアル書きでの対応になるのでしょうか。


303:デフォルトの名無しさん
07/02/26 20:34:10
regsvrで変更されるレジストリを記録して、
registoryテーブルに書くだけでないの?

304:デフォルトの名無しさん
07/02/26 20:46:06
vsdrfCOMSelfReg?

305:298
07/02/26 20:49:48
>>303

regsvr32を使用せず、msiによるレジストリ操作に任せるというわけですか。
確かにその方法ならregsvr32もDLLもコールすることなく
結果的にCOM登録できそうですね。

その方法はまだ試していませんでした、検証してみようと思います。
貴重なご意見ありがとうございました。

しかし、regsvr32の内部仕様に関しては詳しく知らないのですが、
環境によって動的に書き込む内容が変わるなどがあると少しまずいかもですね。
少なくとも、インストールフォルダを参照してDLLのパスを書き換える必要があるため
静的に書き戻すだけ、というわけにはいかないようです。


306:デフォルトの名無しさん
07/02/26 21:10:30
msiには、インストールフォルダ、とかの置換規則がいくつかあるよ。

307:デフォルトの名無しさん
07/02/26 22:40:26
だからvsdrfCOMSelfReg
セットアッププロジェクトってWindows Installerとは違うの?

308:デフォルトの名無しさん
07/02/26 22:41:10
SelfRegも、msiチームはあんまし・・・みたいな話だったなー。

309:デフォルトの名無しさん
07/02/26 23:15:03
じゃあXP以上ではReg-Free COMを使うとか

310:298
07/02/26 23:15:41
>>304,307 様

vsdrfCOMSelfRegって何のことだかわからなかったのですが、
セットアッププロジェクトに追加したDLLのプロパティで
勝手にregsvr32同等の機能をmsiにしてもらう方法があったのですね・・・

すみません、単に私がmsiに関しての機能を把握していないだけでした。

試してみたところ、問題なく登録することができました。
また、DllRegisterServer/DllUnregisterServer内での処理も
昇格された権限を継承して実行できているようです。

COM登録インストーラのUAC対応は、どうやらこうするのが本筋みたいですね。
というか、msiからregsvr32呼ぶこと自体が間違っていました。


>>308

懸念されている問題は、
URLリンク(support.microsoft.com)
にて記述されているようなことでしょうか。

確かに、上記のアーティクルでは[COM]か[COMRelativePath]が推奨されているようですね。
今は知識不足のため明確な違いがよくわかりませんが、
[COM]/[COMRelativePath]も調べてみて最適なものを採用してみようと思います。

本当にありがとうございました。


311:298
07/02/26 23:32:23
>>309

Reg-Free COMというのは知りませんでした。
調べてみたところ、VS2005からの機能のようなので残念ながら
今回は利用できませんが、開発環境をバージョンアップしたときの
選択肢になる可能性として参考にさせていただきます。

ありがとうございます。


312:デフォルトの名無しさん
07/02/27 00:32:42
MSが仕様だと言い張るので、Vistaのすばらしい機能を紹介します。
レジストリのHKEY_CURRENT_USERのキーを同一PC上のユーザにコピーする「機能」です。

(条件)
・実行ファイル名に"UPDATA"や"SETUP"などの文字を含む 例)MyUpdate.exe つまり、UACにひっかかるexeであること。
・そのexeにmanifestをつけないこと。あってもいいけど、実行権限を指定しなければok。

(方法)
・そのexeの中で、HKCUのキーを書き込むだけでそのキーが全ユーザにコピーされます。
・MFCアプリなら、CWinApp::GetProfileStringなどで、参照するだけでOK!ナイスすぎ。
 しかも、書き込んだキーだけじゃなく、SetRegistryKeyで設定したグループ以下を
 全部丸ごとコピーしてくれるから、とっても簡単!
 通常は、会社名を設定するから、あなたの会社のソフトをまとめて面倒みてくれます。
 microsoftをSetRegistryKeyにしたら・・・うは~
・書き込むって言ったけど、RegCreateKeyExをやっても、そのキーが丸ごとコピーされマス!

(ただし)
・すでにキーが設定されていれば、上書きはされません。
 キーが空だった場合のみ,ほかのユーザのHKCUのキーが新規で追加されます。
 でも、普通デフォルト設定はキーを空にするよね。
・コピーする内容がパスだった場合、ご親切にもパスのユーザー名の部分だけ置き換えてくれます。
 たとえば、c:\User\papa\秘密.txt という文字列を書き込んだ場合は、ママのレジストリには
 c:\User\mama\秘密.txt と置き換えてコピーしてくれるんです!開発者のことよく考えてくれるね~ 

このすごい機能は、RedirectHKCUKeysと言うらしいです。
これで、パパのクレジット番号だろうが、パスワードだろうが、ママがいちいち入力しなくても
親切にコピーしてくれるから、すごく便利だね!
一度おためしあれ。

313:312
07/02/27 00:43:18
あ、ちょっと間違えました。

実行ファイル名に"UPDATA"や・・・

実行ファイル名に"UPDATE"や・・・


314:デフォルトの名無しさん
07/02/27 00:46:21
何が問題なのか全然わからね。
> UACにひっかかるexe
なんだからそのexeが悪意を持ってるって前提ならそもそも何でもやり放題だし
意図せずコピーされるって話なら対応策(の逆)を自分で書いてるし
>・そのexeにmanifestをつけないこと。あってもいいけど、実行権限を指定しなければok。
つーかそもそもインストーラからHKCUに書き込むなというか

315:デフォルトの名無しさん
07/02/27 00:50:59
>>312
ひでぇな、これ。

>>314
>>312の最後の部分をよく読め。この問題をすぐに理解できなくても
お前が馬鹿だとは思わないが、プログラマとして情報セキュリティに
関して理解を深めておくことを強く推奨する。

316:312
07/02/27 01:03:21
314さんのおっしゃるとおりです。
MSの方も同じことをおっしゃっていました。
「これから」対応するソフトはmanifestをつけるだけでいいから
全然問題ありません。

インストーラからHKCUに書き込むのは確かにヘンです。
でも、アップデートプログラムは・・・?

CDに書いて店頭に並んじゃったCDは、Vista対応じゃないから自己責任ですよね。
ちなみに、ヒマなときに検索したところ、iTunes、Realplayer、DivX Cordecあたりは、
××update.exeというマニフェストを含まないexeがインストールされます。
HKCUに書き込みを行っていないことを願うばかりです。
iTunesは、iPodにCDで入ってますから。
対応OSよく見ないVistaユーザなんていないですよね。

そもそも、exe名の文字列だけで引っかかるというのもね、ちょっと。
そんな恨み言いってもしょうがないんですけど。

317:デフォルトの名無しさん
07/02/27 01:05:21
俺も何が問題なのか理解できん。
その仕様を利用してどんな悪さが可能なのか提示キボンヌ。
ファイルのパスだけじゃなくファイル自体もコピーするってんなら、悪用の仕方もいろいろ思いつくんだけど。

318:デフォルトの名無しさん
07/02/27 01:07:51
>>317
ポイントは悪用じゃなくて、意図せずに情報が他のユーザに漏れてしまうこと。

319:デフォルトの名無しさん
07/02/27 01:15:39
意図せずに、ったって、setup.exeとか言う名前で、
しかも管理者権限をUACで有効にしてるんじゃないの?

320:312
07/02/27 01:19:39
ちゃんと書き込みしましょう。
正直、どんな「悪用」ができるかまで考えが及んでません。

ただ、この条件にマッチしてしまう市販ソフトが店頭に並んでしまっているわけです。
先ほど例として挙げたように、iTunesをはじめ、AcrobatReaderなんかも、バックグラウンドで
最新版をチェックするようなアプリには、××update.exeみたいな名前をつけちゃうんです。

で、MFCアプリの場合は、「参照」しただけでキーのコピーが行われてしまうので、
ソフトメーカーの姿勢として、どうやってこれを対処するのか?ってことなんです。

市場に出ているソフトを全回収?その費用は誰が持ってくれるの?
Vista対応って書いてないソフトだからほっとく?
テストした結果、パスワードがコピーされることが確認されました。

我々は、さすがにこの動作はMSが直してくれるだろうと思ってたんですが、
MSの見解として、「仕様」と位置づけられたために、手詰まりなんです。

そこで、この仕様は、本当にこのままで問題ないの?ということを、
高い知識を持った皆様に伺ってみたかったんです。

ちゃかしたような書き込みですみませんでしたが、かなり困ってます。


321:312
07/02/27 01:23:10
>>319
管理者権限を設定してあれば、この動作は起こりません。
権限を設定していないXP時代のアプリの場合に発生します。

で、Setupだけだったら問題は少なかったんです。
でもUpdateは、多くのソフトがこの名前を「インストーラ」ではなく、
「最新版チェックツール」につけているんです。

322:デフォルトの名無しさん
07/02/27 01:26:23
考えれば考えるほど、問題が出ない気がしてきた。
そもそも秘密文章とかは、パスがわかってもそもそも開けない
アクセス制限のかかった環境におくんじゃないのか

323:デフォルトの名無しさん
07/02/27 01:30:54
>>322
秘密文章のパスが書き込まれるだけならおっしゃるとおりです。

しかし、パスワードのような短い文字列は、HKCUに直接書きませんか?
もちろん、文字列をそのまま書き込むようなことはしないと思いますが、
たとえ暗号化してあっても、HKCUにパスワードが記入されていたときには、
自動ログインするよう動作のアプリの場合、ほかのユーザが「ログイン」
できてしまうわけです。

324:デフォルトの名無しさん
07/02/27 01:34:20
かつ、管理者権限を持つヒトが実行した、update.exeみたいな
名前のプログラムが、そのHKCUレジストリを参照したとき、だろ?

325:デフォルトの名無しさん
07/02/27 01:36:52
うーん。プログラムのアップデートサーバにログイン認証を仕掛けているとき、
アップデータがHKCUにログイン情報を書いていると、しつが管理者以外にも
漏れる、くらいしかシナリオが思い浮かばないな。

326:デフォルトの名無しさん
07/02/27 01:38:09
ちょっと考えただけで、例えば、誰かが勝手に作った gmail 関連のツールなんかで
インストール時に gmail のユーザアカウントとパスワードを入力→他のユーザから
メールボックス丸見えw なんて楽しそうなシナリオが満載ですねww

327:デフォルトの名無しさん
07/02/27 01:41:48
>>324
そうなんですが・・・

MFCプログラムでは、初期化のときに、このソフトはどのレジストリキー以下を参照するか
設定する流儀になってるんです。
これが、SetRegistryKeyというAPIです。

つまり、初期化のときに、「このアプリは、HKCU\MyCompany 以下に情報を書き込みます」と
設定しておけば、その後はいちいちMyCompanyを指定しなくても、レジストリの読み書きができる
ようになっています。

で、この動作の凶悪なところは、HKCU\MyCompany\MyApp\password というキーを参照しただけで、
SetRegistryKeyで設定したHKCU\MyCompany\以下を丸ごとコピーするのです。

つまり、前回終了したときのWindowの位置を参照しにいっただけで、隣に書いてあったPasswordまで
コピーされます。

MFCの中で、参照の際にSetRegistryKeyで指定した初期位置に対して、RegCreateKeyEx等を
実行してるんじゃないかと推測します。

レジストリの変更をリアルタイムに監視するツールで見てたんですけど、それはもう見事に
丸ごとコピーされました。なかなか壮観は映像でしたよ。

328:デフォルトの名無しさん
07/02/27 01:46:29
たしかにログイン情報は危ないかもな。
具体的な例はメールチェッカくらいしか思い浮かばないけど
これはレジストリあたりにパスワードを記録してる可能性高いし
暗号化されてる情報でもコピペすればそのまま使えるだろうから

329:デフォルトの名無しさん
07/02/27 01:50:12
>>328
たとえ他に危険がケースがなくともその例だけでもうお腹いっぱいだろ。

330:デフォルトの名無しさん
07/02/27 01:52:38
あともう一つ。

作業用フォルダとか、データ保存先フォルダ(これは大した問題じゃないですが)なんかがコピーされると、
アプリが起動しない、とか、「作業用フォルダが見つからないのできどうできない」とか、以前保存しておいた
ファイルがなくなった!(ように見える)とか、セキュリティというレベルでなくても、動作上の深刻な不具合は
たくさん起こりえると思います。

もちろん、異常なレジストリデータが入っていたときの処理を、きちんとアプリに実装していればいいんですけど・・・
こういう動作って、設計の時にはなかなか思いつかないんですよ。検査でも発見されにくいですし。

絶対自分しか書き込みしないと信じて作ると、そうなりますね。

まさか、まさか、OSが他人のキーをコピーするなんて、全く想定してませんでしたから・・・


331:デフォルトの名無しさん
07/02/27 02:43:16
>>330
関係無いけど口調が回りくどくてうざい。
もっと普通に書けんのか?
それと、文は簡潔に短く纏めろ。有意義な事が書かれてても駄文だと誰も読まんぞ。

332:デフォルトの名無しさん
07/02/27 03:00:36
>>331
外野は黙っててくれませんか?

折角有意義な情報を提供してあげているのだから・・・

もっと真面目に考えて欲しいものです

333:デフォルトの名無しさん
07/02/27 03:36:20
なんだコイツ?

334:デフォルトの名無しさん
07/02/27 03:37:25
>>332
ここでチマチマとやらずに、IPAなりセキュリティホールメモなりスラドなりにタレ込んで
話大きくしたらいいんじゃね?

335:デフォルトの名無しさん
07/02/27 04:12:57
おれはこういう情報も、チマチマ欲しいと思うんだがな
多少なり有意義な情報と思うよ
たしかに文章的には読むのを辞めたくなる文だが…

336:デフォルトの名無しさん
07/02/27 05:01:56
>>331
禿同

いくらいい情報でも文章がアレだと台無し。

>>332
折角能力高いのにもったいないですよー

337:デフォルトの名無しさん
07/02/27 05:16:37
参考になった。

いろんな意味で。

338:デフォルトの名無しさん
07/02/27 05:42:30
情報漏洩ネタだし、ageてみるテスト。

339:デフォルトの名無しさん
07/02/27 06:10:38
Yahooメッセンジャーはパスワードとかをレジストリの
HKEY_CURRENT_USER\Software\yahoojapan以下のどっかに保存してるみたいで
WinXPだとこれを丸ごとコピーすればそのまま別ユーザでも起動できるみたい。
この漏洩話が本当に起きるなら、Vistaで「HKCU\Software\yahoojapan」に
特定条件下でRegCreateKeyをかければ、全ユーザでYahooメッセの情報が共有されるってことなのかな

340:デフォルトの名無しさん
07/02/27 06:12:36
>>339
Yahooメッセンジャーって>>312の(条件)に当てはまるところがあんの?

341:340
07/02/27 06:13:35
ごめん、よく読んでなかった。

342:デフォルトの名無しさん
07/02/27 07:03:47
いやいや、一般ユーザの権限で、他のユーザのヤフーメッセンジャーのパスワードを盗める可能性が>>399によって提示されたのだよ。
もっとも、問題があるのはヤフーメッセのほうだと俺は思うけどな。

343:デフォルトの名無しさん
07/02/27 07:23:43
管理者ユーザのパスが漏洩する、であって、一般ユーザが能動的に
奪取は出来ないのでは?

344:デフォルトの名無しさん
07/02/27 07:53:48
これについては漏洩がどうとかいうより、これのせいで意図しないのに情報が
全ユーザにコピーされてしまうことで、レジストリにアクセスしたソフトが
変なクレームを受けることになる可能性のほうが重要な気もする

345:デフォルトの名無しさん
07/02/27 08:50:39
確かに、自社の製品がこれに該当したら冷汗ものだな。

346:312
07/02/27 09:07:14
みなさん、ご意見ありがとうございました。
回りくどい表現ですみませんでした。
最後に、この症状が発生するアプリの作り方だけアップします。

CUpdateApp::InitInstance()
{
//CWinAppを利用して参照するレジストリの最上位を指定します。
SetRegistryKey(_T("Aisoft"));

//HKCU\Software\Aisoft\AU配下にあるTestEntryから文字列を取得します。
CString strTestEnty = GetProfileString(_T("AU"),_T("TestEntry"),_T("TestData"));



347:デフォルトの名無しさん
07/02/27 09:07:58
うわ、最悪
途中でアップしてしまった。

もうどうでもいい

348:デフォルトの名無しさん
07/02/27 09:16:48
エーアイソフトさん大変だなw

349:デフォルトの名無しさん
07/02/27 09:38:45
俺がこの世でもっとも許せないヤツは、
スーパーで清算後に品物を袋詰めした後のカゴをカゴ置き場に戻さないヤツと、
プログラムのコメントにですます調を使うヤツだ。


350:デフォルトの名無しさん
07/02/27 09:53:37
今自作のプログラムをいじっていて気づいたんだが、.exeのファイル名だけじゃなく、
製品名やファイルの説明にsetupとかupdateが含まれていてもUACの対象になるのな。


351:デフォルトの名無しさん
07/02/27 10:10:35
そこまでしなくてもいいだろうになー

352:デフォルトの名無しさん
07/02/27 10:14:26
>>349
ですます調いいじゃん。なぜ駄目なの?

353:デフォルトの名無しさん
07/02/27 10:41:09
>>330
この「仕様」はそれとは逆で、HKCUはインストーラやアップデータが
書き込んでくれてるに違いないと決めつけてるレガシーアプリを動かすため。
標準ユーザーがインストーラ起動しても、インストーラが書き込むHKCUは
インストーラが動いてる管理者ユーザーのもので標準ユーザーのHKCUには
(この「仕様」がなければ)書き込まれないから。
Vista対応アプリのインストールを管理者ユーザーでしかテストしないと
ハマる可能性がありそうだ。

354:デフォルトの名無しさん
07/02/27 10:53:37
>>346-347
お前、全てにおいて最悪な社員だな・・・

355:デフォルトの名無しさん
07/02/27 10:55:10
で、アップデータがHKCUを参照してもそれは有効なHKCUであるとは限らないから、
結論から言えばアップデータもHKCUにさわっちゃダメってこと。
アプリ本体のexeがインストールやアップデート後の初回起動を認識して
HKCUを適切に生成したり更新したりできなくてはならない。

356:デフォルトの名無しさん
07/02/27 11:24:59
もうどうでもいいワラタ

357:デフォルトの名無しさん
07/02/27 12:30:42
結論:やっぱりレジストリは一切使うな

358:デフォルトの名無しさん
07/02/27 12:45:37
AppDataにXMLで設定を保存してるアプリも多いね。

359:デフォルトの名無しさん
07/02/27 13:19:18
iniファイルで十分

360:デフォルトの名無しさん
07/02/27 13:24:46
iniでは可変長のリストを持ちにくい件について。

361:デフォルトの名無しさん
07/02/27 13:26:51
可変長のものは個別に別ファイルで無問題

362:デフォルトの名無しさん
07/02/27 13:32:11
>>361
ちょwwwwwwそれはiniでは不十分ってことじゃないのか!?

363:デフォルトの名無しさん
07/02/27 13:56:04
独自フォー!マット

364:デフォルトの名無しさん
07/02/27 14:08:29
iniって拡張子にしてると、将来何が起きるか判らんから
適当に長い拡張子付けてるな。

どうせ設定・保存はなんか拡張してる間にか独自形式化しちゃったし

365:デフォルトの名無しさん
07/02/27 14:16:10
>>357
で、VirtualStoreがらみでハマるわけですな

366:デフォルトの名無しさん
07/02/27 14:21:25
つまり、独自フォルダにインストールし
レジストリは使わず、独自形式の設定ファイルを使うアプリが最強ってことですな

367:デフォルトの名無しさん
07/02/27 16:49:22
>>365
C:にはインストールできない仕様にする

368:デフォルトの名無しさん
07/02/27 16:53:28
どんどん本末転倒の坂を転げ落ちてますな
ちなみにuiAccess="true"はProgra Filesにインストールしないと効果が出ないよ
(おそらくユーザー権限で改竄ができるとダメ)

369:デフォルトの名無しさん
07/02/27 16:53:45
Progra Files
mが抜けた

370:デフォルトの名無しさん
07/02/27 19:45:08
>>339-341
それってさー、EXEコピって~UPDATA.EXEとかにリネームして
実行しちゃえば条件に当てはまっちゃうんじゃないの?
別の名前じゃ起動しないとか、インストールしたフォルダからで
ないと起動しないとかならいいだろうけど。

371:デフォルトの名無しさん
07/02/27 21:08:30
rename shoot_yourself_in_the_foot.exe update.exe
update.exe

372:デフォルトの名無しさん
07/02/27 21:34:25
そもそもsetupやらupdateなんかがファイル名に含まれたらって
条件からして頭悪そうな案だよな。ていうか、やっつけ仕事?

373:デフォルトの名無しさん
07/02/27 22:06:09
これって「アプリのデータをバックアップするにはどうするの?」
ってユーザーから聞かれたら
C:\Users\ユーザー名\AppData\Roaming\アプリ名
とかのフォルダの中身をどっかに保存して再インストール時はそれを元の場所に
戻せって言う事になるんだよね?

んでデフォではAppDataフォルダは隠しフォルダで見えないわけで…
おまけにUsersフォルダはエクスプローラでは「ユーザー」とかって見えちゃうわけで、、、
素人相手だとまじで説明とか混乱しそうで大変そうだな。

374:デフォルトの名無しさん
07/02/27 22:21:53
AppDataはユーザーに触らせない前提のファイルを置く場所だから
ユーザーが自分でバックアップする必要があるならDocuments配下ですよ

375:デフォルトの名無しさん
07/02/27 22:33:37
あー、そかDocumentsの下にアプリ名のフォルダ作ってそこにデータ、と。
ウィンドウの位置とか画面レイアウトとかオプションの類の情報は
レジストリに書きなさいよ、と。
んでAppDataにはユーザーに触らせない前提のファイル…?、と。

ふむ。今までアプリのフォルダに全部つっこんでたから
MS様の流儀に対応しようとすると大変だな。
Documents下のアプリ名フォルダに全部ぶちこむかなぁ


376:デフォルトの名無しさん
07/02/27 23:49:42
>>375
Documentsの下に無断でフォルダを作るプログラマは、オレは首を
絞めてやるね。

377:デフォルトの名無しさん
07/02/27 23:55:46
俺もDocutemsじゃなくてAppDataが正解だと思うなぁ。

378:デフォルトの名無しさん
07/02/28 00:08:06
Documents以下にフォルダを作ってやりたいんですが構いませんねッ!?

  [はい] [インストールのキャンセル]


ってダイアログ出せばいいんですね?

379:デフォルトの名無しさん
07/02/28 00:11:11
3大悪質プログラム

1)Cドライブの直下に無断でソフトをインストール
2)Documentsの直下に無断でフォルダを作りそこにデータを保存
3)エクスプローラなどの右クリックメニューに無断で項目を追加

380:デフォルトの名無しさん
07/02/28 00:13:45
おお378よ、
Documents以下にフォルダをつくらせないとはなさけない

Documents以下にフォルダをつくってもいいですか?
▽[はい] [いいえ]

381:デフォルトの名無しさん
07/02/28 00:25:00
ちょw、落ち着きかけた俺の心を乱すようなことをw

Documentsの下にわけわかんないフォルダを次々に作られるのは確かに
どーかと思うけどその方向がMSの思し召しだろ?たぶん。
AppDataだとバックアップ、リストアの手順を教えるのが面倒な事に
なりそうな予感がする。同様の理由でレジストリはまったく問題外。

つーことでDocumentsの下だな。
「スタートメニュー(?)からドキュメントっての開いてその中のアプリ名の
フォルダをどっかにコピっとけ」で済む。

今までなら「Program Filesの下のアプリのフォルダをどっかにコピっとけ」
って言うだけでプログラムごとバックアップできて良かったんだけどな。
もっと良い案があるなら教えてくれ。まじで。

382:デフォルトの名無しさん
07/02/28 00:31:36
よし、じゃぁフォルダを作らずにDocuments直下に
データファイルその他諸々を置く。これで決まり。

383:デフォルトの名無しさん
07/02/28 00:36:08
最低だw


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch