問題タブ [servicecontroller]
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.
c# - 適切なアクセス許可を使用してASP.NET/C#でサービスを開始する
私のWebサイト(ASP.NET/C#で記述)で、モデレーターが特定のサービスを開始できるようにしたい。私がこれのために持っているコードは次のとおりです:
これを実行すると、「コンピューターでInvidualFileConversionサービスを開くことができません」というエラーが表示され、「アクセスが拒否されました」という追加のメッセージが表示されます。
これが権限の問題であることは知っていますが、適切な権限を自分に与えるにはどうすればよいですか? 私が書くべき答えを持って来ないでください:、私がそれを試したのにそれがうまくいかなかったからです。また、これらの数行のコードで必要な場合は、これをWebサイト全体に設定するのに最適な方法ではないと思います。
編集:これをコードに追加しましたが、それでも機能しません。同じ場所で同じ例外が発生します。これで、次のようになります。
私は次のような偽装クラスを持っています:
したがって、検証は機能しますが、問題は解決しません。権限にまだ問題があると思います。これを変更するにはどうすればよいですか。
編集2:私が取った次のステップはこれを含みます:
- IDがユーザー(管理者グループのメンバー)に設定されるアプリプールを作成します。
- サービスの「ログオン」を同じユーザーに設定します。
- Webアプリを再度実行した後も、失敗します。
ただし、コードにクレデンシャルとして管理者アカウントを入力すると、機能します。(アプリプールとサービスで管理者を使用しなかった場合でも...)
つまり、Administratorアカウントでは必要なものを取得できますが、自分で作成して管理者権限を持つアカウントでは取得できません。管理者の資格情報を利用できるようにするのはそれほど安全ではないと思うので、自分で作成したユーザーでこれを機能させたいと思っています。
ちなみに、私が作業しているサーバーには、管理者権限はあるが「管理者」アカウントではないアカウントがあります。
編集3:これは奇妙になっています。私は今は機能しているようですが:-偽装方法なしで(機能しませんでした)。-ロブが言ったことをやっただけです。定義したユーザーを持つ独自のアプリケーションプールがあります。Windowsサービスには、そのユーザーも指定されています。(ユーザーはサービスとしてログオンする権利を受け取りました)-これで、動作しているようです。-しかし、私のWebサイトでデバッグすると、アクセスが拒否されます。しかし、ブラウザとそのIPを介して自分のWebサイトにアクセスするだけで、サービスを開始できます。
要約すると:-なりすまし方法は機能しません。-サービスにユーザーも指定されている場合は、currectユーザーで自分で作成したアプリプールを使用するだけで機能します。ただし、デバッグモードでは機能しません(まだアクセスが拒否されています)。
この投稿は大きくなりつつあり、まだ実際に読んでいる人はいないかと思います。しかし、それでも誰かが私に詳細を教えてくれるでしょうか。将来どこかでまた失敗するのではないかと思います。
コメントをいただければ幸いです。フローリス
windows-services - ServiceController がサービスを停止できないようです
次のコードを使用して、ローカル マシンで Windows サービスを停止しようとしています (Topshelf.Host問題がある場合、サービスは です)。
timeout1 時間に設定されていますが、サービスが実際に停止されることはありません。奇妙なことに、サービス MMC スナップイン内から、最初は「停止中」の状態で表示されますが、しばらくすると「開始済み」に戻ります。ただし、手動で停止しようとすると、エラーが発生します。
ここで何か不足していますか?
c# - C# クエリ Windows サービス
リモート サーバーで実行されている Windows サービスにクエリを実行し、マシン名、サービス名、およびステータスをデータベースに書き込むアプリケーションを使用しています。
ただし、スタートアップの種類 (自動、手動、無効) もキャプチャしてみたいと思います。スタートアップの種類のオプションがないサービス コントローラーを使用していたので、管理クラスの使用を検討し始めました。このクラスには必要なものがすべて含まれているように見えますが、リモート サーバーに対して使用する方法がわかりません。サービスコントローラーの場合、私はこれを行っていました:
管理クラスでこれを試しました:
しかし、もちろんうまくいきませんでした。管理クラスを使用してリモート マシンからサービスを取得する方法を知っている人はいますか? または、サービス コントローラーを使用してスタートアップの種類を取得する別の方法はありますか?
また、両方を組み合わせて、管理クラスの foreach ステートメントをサービス コントローラー内に配置しようとしましたが、無限ループに陥りました。
c# - リモート マシンの C# サービス ステータス
私はプロのプログラマーなので、自分が何をしているのかわかりません :)
重大な注意事項です。いいえ、私は決して専門家ではありません。しかし、私は問題を抱えており、それを修正する方法がわかりません。良いことは、私は(私が思うに)問題が何であるかを知っているということです。ここにいる誰かが助けてくれることを願っています。
問題のあらすじはこちら。サーバーとデータベースの管理タスクを実行するフォームを C# で作成しています。クリックすると、「y」サーバー上の「x」サービスのサービスステータスを返すボタンがあります。ステータスは、画面上のテキスト ボックスに出力されます。
これが私のコードです:
「サーバー」で「サービス」を開けません。これはリモート サーバーであるため、これは資格情報/セキュリティの問題であると想定しています。ただし、Spooler サービスに問題はありません。
私の質問は...このサーバーにユーザーIDとパスワードを渡して、認証または実行して、これらのサービスのステータスを確認できるようにするにはどうすればよいですか。それが問題です。誰かがそれが問題だと思わない場合は、どこが間違っているのか教えてください:)
service - リモート マシンからサービスを開始および停止できない
リモートマシンにいくつかのウィンドウサービスがあります。マシンからサービス コントローラーを使用してそのサービスを開始および停止できません。
service - Windows MSI インストーラーでのサービス コントロール権限の変更
だから今、コマンドを使用してWindowsサービスの権限を変更しようとしています: sc sdset SERVICENAME PERMISSIONS
これをアクションとして MSI インストーラーに配置しましたが、正常に実行されるようです。ただし、sc には権限を設定するための管理者権限が必要であり、MSI インストーラー内でそれを行う方法が見つからないようです。コマンド runas /user:administrator を使用してみましたが、残念ながらインストーラーを実行するマシンによって異なる可能性があります。
任意のヒント?
c# - ServiceController[]をObservableにするWPF
そのため、ローカル ウィンドウ サービスに関する情報を表示するデータ グリッドを作成しようとしています。特に、サービスの表示名とステータスを表示し、クリックして開始または停止するボタンが必要です。ボタンの方法をうまくリンクできますが、サービスのステータスは変わりません。このプロパティをデータグリッドで監視できるようにする方法を提案し、ステータスに基づいてオンザフライでボタンを開始から停止に変更することもできます。可能であれば、停止コマンドをボタン コマンドにしたいと考えています。
助言がありますか?
windows-services - ServiceController で開始された Windows サービスは、WMI 接続の実行時に「RPC Server not available」をスローします
インストーラーを使用して Windows サービスをインストールし、ServiceControllerを使用して開始しました。
サービスは問題なく開始されているように見えますが、サービスがリモート コンピュータに対して WMI 呼び出しを実行しようとすると、例外がスローされます。
サービスが実行されているマシンから、サービスが接続しようとしている同じマシンに WBEMTest で接続しようとしましたが、正常に動作します。
また、Services.msc から手動でサービスを開始すると、完全に機能します。ServiceController には何が欠けていますか?
.net - ServiceControllerと偽装を使用してリモートWindowsサービスを開始する
リモートサービスのオンとオフを切り替えることができる必要がある.NETMVC3アプリケーションがあります。これを行うために、私はWindowsIdentity.Impersonate()を介して特定のユーザーアカウントを偽装しています。ユーザーのアクセス許可をテストするために、ユーザーとしてログインしsc.exe \\[server] start [service]、コマンドプロンプトから実行できます。また、アプリケーションが匿名で実行されるため、偽装コマンドが期待どおりに機能していることもわかっています。したがって、.偽装せずにローカルマシン()のサービスを制御することはできませんが、偽装してローカルサービスを制御することはできます。しかし、それをまとめてローカルサービスではなくリモートサービスを開始しようとすると、常に「コンピューターでサービスを開くことができません」というエラーが表示さ[service]れます。[server]
誰かが同様の問題を経験したことがありますか?sc.exeが問題なく動作することに気付くまでは、.NETの問題ではなくサーバー構成であると期待していました。これが私が使用しているクラスの短縮バージョンです:
追加の注意事項:サーバーの代わりに、ドメイン上の別のWindows 7 PCにアプリケーションを指定し、偽装資格情報をそのPCの所有者の資格情報に変更すると、実際には問題なくサービスをリモートで制御できます。
リクエストに応じて、ここになりすましコードを追加しています。もう少し長いので、我慢してください。
サービスを開始または停止する直前に、このコードを呼び出します。
サービスを一覧表示して、個々のサービスのステータスを(ここで行うように)問題なく取得できることは注目に値するかもしれません。問題が発生するのは、サービスを開始または停止するときだけです。
c# - ServiceController クラスを使用して Windows サービスと通信する
service1 と service2 の 2 つのサービスで構成される Windows サービス プロジェクトがあります。2 つのサービス間で通信するにはどうすればよいでしょうか。たとえば、service1 によって service2 を開始するにはどうすればよいでしょうか。ServiceController クラスを使用してこれを行うことはできますか? これを行うために何を提案しますか?