問題タブ [windows-services]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1482 参照

c++ - Windows サービスのリモート インストール

多数のコンピューターに Windows サービスをリモートでインストールする必要があるため、winapi の CreateService() およびその他のサービス関数を使用します。アクセスする必要があるマシンの管理者パスワードとユーザー名を知っています。リモート マシンにアクセスするために、次のように LogonUser を使用して呼び出しプロセスを偽装します。

そのため、ドメイン内のマシンにアクセスできますが、一部のコンピューターはドメイン外です。ドメイン外のマシンでは、このコードは機能しません。ドメイン外のマシンでサービス マネージャーにアクセスする方法はありますか?

0 投票する
19 に答える
319275 参照

java - Java アプリから Windows サービスを作成する方法

XP および Vista でサービスとしてインストールする必要がある Java アプリケーションを継承しました。Windows を何らかの形で使用してから約 8 年になりますが、サービスを作成する必要はありませんでした。Java アプリのようなものは言うまでもありません (アプリ用の jar と単一の依存関係の jar - log4j があります)。 )。これをサービスとして実行するために必要な魔法は何ですか? ソースを入手したので、コードの変更は可能ですが、回避することが望ましいです。

0 投票する
14 に答える
656074 参照

windows-services - Windows でサービスを削除するにはどうすればよいですか?

完全にアンインストールしたい古いサービスがいくつかあります。これどうやってするの?

0 投票する
10 に答える
401473 参照

windows-services - ローカルシステムアカウントでCMD.exeをどのように実行しますか?

現在Vistaを実行していますが、Windowsサービスと同じ操作を手動で完了したいと思います。Windowsサービスはローカルシステムアカウントで実行されているため、これと同じ動作をエミュレートしたいと思います。基本的に、ローカルシステムアカウントでCMD.EXEを実行したいと思います。

DOSタスクスケジューラのATコマンドを使用してCMD.exeを起動することを提案する情報をオンラインで見つけましたが、「セキュリティの強化により、このタスクは除外された時間に実行されますが、インタラクティブではありません」というVistaの警告を受け取りました。サンプルコマンドは次のとおりです。

別の解決策は、CMD.exeを起動するだけのサービスコントロール(sc.exe)を介してセカンダリWindowsサービスを作成することを提案しました。

この場合、サービスの開始に失敗し、次のエラーメッセージが表示されます。

3番目の提案は、スケジュールされたタスクを介してCMD.exeを起動することでした。さまざまなアカウントでスケジュールされたタスクを実行できますが、ローカルシステムアカウントはその1つではないと思います。

Runasも使用してみましたが、スケジュールされたタスクを実行したときと同じ制限が発生していると思います。

これまでのところ、私の試みはそれぞれ失敗に終わっています。助言がありますか?

0 投票する
7 に答える
27919 参照

c# - デスクトップと対話するアプリケーションから Windows サービスと通信するにはどうすればよいですか?

.Net では、サービスと対話するための最良の方法は何ですか (つまり、ほとんどのトレイ アプリがサーバーと通信する方法)。この方法がクロスプラットフォームでもあると望ましいでしょう (Mono で動作するので、リモーティングはアウトだと思いますか?)


編集:

言い忘れましたが、フィールドで Windows 2000 マシンをサポートする必要があるため、WCF と .Net 2.0 を超えるものは機能しません。

0 投票する
1 に答える
2800 参照

windows-services - 管理者ログインなしで runonce を実行する方法

管理者として実行されているサービスがバックグラウンドで実行されている場合、管理者がログインせずに、RunOnce を使用してソフトウェアの更新を強制する方法はありますか?

編集:私ができるようにしたい主なことは、RunOnceが実行するときに実行することです.IEはエクスプローラーが起動する前です。管理者アカウントで起動せずにインストールできるようにする必要があります。

0 投票する
8 に答える
30984 参照

c# - C# Windows サービスを自動的に更新したい

C# Windows サービスが新しいバージョンを自動的にチェックしてそれ自体をアップグレードできるようにするために使用できるフレームワークはありますか? 確かにこれを達成するためのコードを書くことはできますが、既に実装され、(最も重要なこととして) テストされているフレームワークを探しています。

[編集] これを達成するのに役立つ最新のプロジェクトへのリンクを含む同様の質問へのリンクを次に示します: Auto-update library for .NET?

0 投票する
12 に答える
27754 参照

c# - .Net サービスのインストール中にカスタム イベント ログとイベント ソースを作成する最も信頼できる方法は何ですか?

.Net Windows サービスのインストール中に、イベント ソースを確実に作成/削除することが困難です。

ProjectInstaller クラスのコードは次のとおりです。

参照されているファサード メソッドは、ログ、サービスなどの名前の文字列を返すだけです。

このコードはほとんどの場合機能しますが、最近インストールした後、ログ エントリがカスタム ログではなくアプリケーション ログに表示されるようになりました。また、次のエラーもログに記録されています。

ソース ( AutoCheckout ) のイベント ID ( 0 ) の説明が見つかりません。ローカル コンピュータに、リモート コンピュータからのメッセージを表示するために必要なレジストリ情報またはメッセージ DLL ファイルがない可能性があります。/AUXSOURCE= フラグを使用して、この説明を取得できる場合があります。詳細については、ヘルプとサポートを参照してください。

何らかの理由で、アンインストール中にソースが適切に削除されていないか、インストール中にソースが作成されていません。

ここでのベスト プラクティスに関するヘルプは大歓迎です。

ありがとう!

さらに、ログに例外を書き込む方法のサンプルを次に示します。

stephbu の回答について:推奨されるパスは、インストーラー スクリプトと installutil、または Windows セットアップ ルーチンです。

サービスのインストールを実行し、ログを設定するセットアップ プロジェクトを使用しています。installutil.exe を使用するか、Windows セットアップ プロジェクトを使用するかに関係なく、どちらも上に示した同じ ProjectInstaller クラスを呼び出すと思います。

再起動するまでログが完全に削除されない場合、テスト マシンの状態がどのようにエラーを引き起こしているかがわかります。それが問題を解決するかどうかを確認するために、さらに実験します。

編集: サービスのインストール中にソースとログ名を登録する確実な方法に興味があります。そのため、サービスが以前にインストールされていた場合は、ソースが削除されるか、以降のインストール時にソースが再利用されます。

そのルートを試すために WiX を学ぶ機会はまだありません。

0 投票する
5 に答える
1101 参照

windows - サービスは Windows で何ができますか?

XP での Windows サービスの機能に関する優れたガイドを持っている人はいますか? 特に、サービスとして実行されているプログラムがウィンドウを開こうとしたときに何が起こるかを調べようとしていますが、デスクトップと対話する許可が与えられていません。

基本的に、私はGUIアプリケーションである/だったプログラムを持っています。これは、長期的なバックグラウンド処理のサービスとして実行できるはずです。バックグラウンド処理時にGUI要素を表示しないようにプログラムを書き直すのは大変な作業なので、UI要素を無視するだけの方法がないかどうかを確認したいと思います。あまりにも多くのウィンドウが開かれていない限り、現在は機能しています。私は、どのような限界に達している可能性があるかを理解しようとしています。理想的には、これについて説明する MSDN ページがあればよいのですが、まだ見つけることができませんでした。

0 投票する
28 に答える
258002 参照

c# - Windows サービスをデバッグする簡単な方法

Windows サービス コントロール マネージャーを使用してサービスを開始し、デバッガーをスレッドにアタッチするよりも、コードをステップ実行する簡単な方法はありますか? ちょっと面倒なので、もっと簡単なアプローチがあるかどうか疑問に思っています。