2011-09-13 19 views
0

私たちのソフトウェアをアップデートするには、アップデートレベルとアップデート元が異なるVB6アップデートプログラムを使用しました。必要なファイルを更新元からローカルのコピー先(C:\ program files \ company \ product)にコピーしました。管理者権限を持つサービスによるサービスまたは開始プログラム

VB6プログラムは、サービスヘルパー(srvanyなど)をサービスとしてのみ実行でき、指定されたフォルダ内の新しいファイルを変更または追加するための十分な権限がありません。しかし、.NETプログラムでも、サービスに管理者の資格情報を設定した場合にのみ、.NETプログラムで必要な権限がありません。

クライアントが管理者の資格情報でサービスを設定しない場合、サービスによって呼び出されるサービスまたはプログラムを使用して、指定されたフォルダ内のファイルを変更するにはどうすれば管理者権限があることを意味します。

MSI/MSPは、指定された更新レベル(さまざまなプログラムとレポートバージョンを持つ異なるユーザー)のためには使用できません。

C#.NETサービスから外部プログラムを呼び出そうとしましたが、方法はありません。 マニフェストファイルを使用していくつかのチックとトリックをチェックしたり、管理権限を持つCOMオブジェクトを作成したり、私はこれが間違った方法だと思う。

もう1つの可能性は、「最強のピボット」を与えることでスケジュールされたタスクを作成することです。しかし、それは機能しますか?ログイン後にタスクを実行し、異なるユーザーがこのコンピュータを使用できるようにするには、ユーザーごとにタスクを定義する必要があります。クライアントコンピュータのログインは、頻繁に変更されるためわかりません。

誰か助けてもらえますか?

答えて

0

何かを起動するには、ローカルシステムとして実行され、プログラムファイルにアクセスするために必要な特権を持つサービスが必要です。しかし、サービスは常に実行され、メモリを取る。

スケジュールされたタスクを作成して、一定時間後に開始することができます。ただし、UACの確認なしに昇格したタスクを実行することは可能です。

マニフェストでは、別のアプリケーションの昇格を開始することも許可する必要があります。


基本的にはあなたのアップデータが上昇する必要はありません:それは、各ユーザーによって書き込み可能であるProgramDataにアップデートファイルをダウンロードすることができます。ダウンロードが完了すると、管理者権限を必要とするインストーラが起動します。

Firefoxは自動更新メカニズムを使用しています。新しいバージョンをダウンロードしたときに、更新を適用するように仰角を求めるメッセージが表示されます。

Apple Quicktimeは、スケジュールされたタスクを使用してアップデータを起動します。ユーザーは、インストールする更新プログラムを選択できるインターフェイスを提供します。更新ファイルをダウンロードし、高度のプロンプトを表示して更新を適用します。

ユーザーとのやりとりを望まない場合は、サービスが最適です。

関連する問題