問題タブ [service-control-manager]
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.
windows - リモートOpenSCManagerがアクセス拒否で失敗する
次のコードを使用して、リモートマシン上のサービスを制御しようとしています。
これは、ローカルドメイン内のコンピューターから実行し、同じドメイン上のマシンをターゲットにしている場合、現在ログオンしているユーザーの資格情報を使用する場合と他の資格情報を使用する場合の両方で正常に機能します。
ただし、どのドメインにも存在しないマシンをターゲットにしようとすると、目的のアクセスOpenSCManager
以外のものを指定すると、アクセスが拒否されて呼び出しが失敗しSC_MANAGER_CONNECT
ます。ドメイン外のコンピューターからドメインコンピューターをターゲットにすることは機能します(ターゲットマシンのローカル管理者であるドメインユーザーに対してユーザー/ドメイン/パスワードの組み合わせを使用します)。ドメイン外のコンピューターからドメイン外のコンピューターをターゲットにすることはできません。
ユーザー/パスワードは、ターゲットコンピューターの管理者グループのメンバー用であるため、アカウントの権限に問題はありません。
を使用してscmanagerセキュリティ記述子を確認しましたがsc -sdshow scmanager
、ドメインコンピューターと非ドメインコンピューターで同じです。どちらもWindows764ビットを実行しています。
また、 psexecを使用することもテストしました。これは同じ症状を示します。つまり、ドメインコンピューター間では正常に機能しますが、非ドメインコンピューターを対象とする場合は機能しません。
また、ターゲットマシンでRPC over TCPを無効にして再起動することもテストしました。これは、アクセス拒否エラーの考えられる原因として説明されていますが、これは役に立たないようです。ターゲットマシンでWindowsファイアウォールを無効にすることもテストしましたが、変更はありません。
サービスのリモート構成を機能させるために有効にする必要のある設定はありますか?
c# - USBデバイス通知に使用されるServiceControlHandler、OnStop()は実装できません
デバイスの通知をリッスンするサービスを作成したい(USBメディアが接続されている、取り外されている)。C#サービスでデバイス通知をリッスンする問題はSystem.Windows.Forms.Control.WndProc
、Windowsサービスにウィンドウがないために利用できないことです。このようなサービスの書き方について、このハウツー
を見つけました。その記事の作成者は、サービスがサービス制御メッセージの代わりにデバイス通知をリッスンできるようにする回避策を見つけました。そのため、サービスはOnStop()をサポートしなくなりました。
(更新26.01.13 :)
残念ながら、サービスコントロールマネージャーとWindowsAPIをよく理解していません。サービス制御メッセージとUSBデバイス通知の両方に登録できるのか、それともサービスがデバイス通知をリッスンする唯一のオプションであるのか、疑問に思っています。問題を解決する(私にとって理解できる)情報はまだ見つかりません。
ウィンドウを生成せずに使用できる可能性がSystem.Windows.Forms.Control.WndProc
あります(System.Windows.Formsアセンブリを追加するだけですよね?)。
(更新27.01.13 :)
私はちょうどこの質問を見つけました:Windows 7のWindowsサービスからデスクトップアプリケーションを開始することはできません
そこで
の2番目の答えは、WindowsサービスがWindows Vistaでセキュリティ中心の改造を受け、GUI要素がセッション0で作成されることを示しています「サービスがデスクトップと対話することを許可する」がチェックされている場合でも。これは、USBデバイスイベントを受信するWindowsフォームを作成できることを意味します(したがって、これを行うためのServiceControlHandler
警告や問題はありますか?をいじる必要はありませんか?
つまり、次のいずれかを実行するソリューションが必要です。
- OnStopを再び利用可能にする、または
- Windows C#サービスでUSBデバイス通知をリッスンする別の方法を提供する
私のソースコードは現在次のとおりです。これは、最初の段落でリンクしたHowToによって提供されたソースコードとほぼ同じです。私が行った唯一の違いは、FileSystemWatcherが必要ないため、FileSystemWatcherプライベートフィールドとそのすべての使用法を削除することです。
USBBackup.cs(サービス自体-除外されたステートメントを使用していますが、私のソースコードでは完全です):
Win32.cs:
c# - サービス コントロール マネージャー (SCM) は、サービスのメソッド呼び出しに関してどのような保証を行いますか?
サービス コントロール マネージャー (SCM) は、サービスのメソッド呼び出しに関してどのような保証を行いますか?
次のような場合は保証されますか?
- サービス停止中のOnStart/OnPause/OnContinue
- サービス停止中のOnStart/OnPause
- サービス実行中の OnStop/OnContinue
- コマンドメソッドが既に実行されている間に呼び出されるコマンドメソッド
- OnStart が既に実行中の場合の OnStart
- OnPause実行中のOnStop
これまでに見つけた最良の参考文献は、これらの保証が実際に行われていることを示しているようですが、私が見つけたドキュメントの唯一の参考文献はかなりあいまいだったので、より良い参考文献を見つけようとしています.
MSDN フォーラムのスレッドでは、SCM が状態が一貫していることを保証している、または「[サービスが実行されていないか一時停止している場合に SCM が停止要求を送信する] というケースを少なくとも見つけたことがない」と述べています。
ドキュメントでこれまでに見つけた最高のリファレンスは次のとおりです。
これらのメソッド [OnStart/OnStop/etc.] は、サービスが存続期間中に移動する状態を表します。サービスは、ある状態から次の状態に移行します。たとえば、OnStart が呼び出される前に、サービスが OnContinue コマンドに応答することはありません。
windows-services - 私のサービスを実行すると、サービスは 1 分ごとにサービス コントロール マネージャーからリクエスト SERVER_CONTROL_INTEGORTTE を受け取ります。
私のサービスを Windows 2008 サーバー マシンで実行すると、サービスは 1 分ごとにサービス コントロール マネージャーから SERVER_CONTROL_INTEGORTTE リクエストを受信するため、サービスの実際の機能は実行されません。その特定のマシンでのみこの問題に直面していますが、他のマシンでは正常に動作しています。一部のリンクは、この問題がファイアウォールに起因することを示唆しています。ファイアウォールをオフにしても、この問題に直面しています。この問題を解決するためのアイデアを提案してください。
php - IIS/PHP 権限を Windows サービス コントロール マネージャー (SCM) に提供する
そのため、次のように Windows 7 サービスのステータスにアクセスするために PHP 関数を呼び出しています。
ローカルにインストールされた WAMP インスタンスで実行すると、関数は予想どおり情報の配列を返します。
IIS で実行すると、エラー ステータス 5 が返されます。ドキュメントによると、これは次のエラーに対応します。
ということで、PHP環境が動いているUSERNAMEphpinfo()
を調べてみました。WAMP サイトでは、サービスは私のユーザー ID (Windows ローカル管理者グループに属している) で実行されています。
IIS バージョンでは、ユーザーはF6729-44TP6S7$
(私のコンピューターの名前の後に が続く$
) です。おそらく、解決策は、Windows のサービス コントロール マネージャー (SCM) で必要な特権をこのユーザーに付与することです。
ただし、問題は、IIS (または Windows) の内部動作について、このユーザー ID がどこから来たのかを知るのに十分な知識がないことです (つまり、必要な特権を付与する方法がわからないということです)。ユーザーがコンピュータ管理コンソールに存在せず、IIS 管理ツールで定義されている場所も見つかりません。
問題は、この PHP 関数を IIS で実行できるようにするには、何をする必要があるかということです。IIS の下で PHP マネージャーに必要な権限を付与するにはどうすればよいですか。あるいは、PHP マネージャーを実行するユーザー ID を変更するにはどうすればよいですか?
ravendb - ServiceControl Beta 7.15 RavenDB エラー - MessagesViewIndex でインデックス作成機能を実行できませんでした
含めると役立つ情報 製品名:
バージョン:
スタックトレース:
説明:
ServiceControl を Beta6 から Beta7.15 にアップグレードしたところ、サービスを開始したときに次のエラーが発生し (投稿の下部を参照)、ハングしているように見えます。指示に従って、次のスクリプトを使用して以前のデータベースを削除したことに注意してください。
また、次の設定を使用して ServiceControl 構成ファイルを構成しました。Beta 6 でServiceControl/Hostname
and設定を使用して成功しました。提供された指示をServiceControl/ExposeRavenDB
追加ExpirationProcessTimerInSeconds
して使用しました。HoursToKeepMessagesBeforeExpiring
ご提供いただけるご支援をいただければ幸いです。