• ベストアンサー

ATコマンドがSYSTEM権限で実行される為、メールスロットへ書き込めない

現在、windows-2003サーバーでVC.NETで開発しています。プロセスAはメールスロットを読み込み用にオープンし、これに、プロセスBがデータ(コマンド)を書き込みます。 両プロセスともに、Administratorで実行時は、問題ないのですが、プロセスAをatコマンドを使用して、起動すると、このプロセスはSYSTEM権限で実行されてしまいます。その為、このプロセスにコマンドを発行しようとして、プロセスBが(administrator権限)メールスロットを書き込み用にオープンすると、access deniedでエラーとなってしまいます。プロセスAは、毎日定時に起動する為、atコマンドを使用する必要があります。 プロセスBは、コマンドとして使用する為、atコマンドによる起動はできません。この前提で、メールスロットへエラーにならずに書き込むことができるでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

atコマンドでタスクを登録するのではなく、GUI(「アクセサリ」->「システムツール」->「タスク」)から登録するのはダメなのですか?

tatsu99
質問者

お礼

回答ありがとうございます。ATコマンドにしたいというのは、顧客の要望です。従って、出来るだけATコマンドの方向で、いきたいと、考えています。しがしながら、Bonjin様が提示された方法で、運用上問題ないことが判明すれば、その方法も検討してみます。ありがとうございました。

tatsu99
質問者

補足

ありがとうございます。自己解決しました。GUI(「アクセサリ」->「システムツール」->「タスク」)の画面を開くと、ATサービスのアカウントがあり、システムアカウント以外でも実行することが出来ました。よって、access deniedの発生はなくなりました。この画面を教えていただいてありがとうございました。

関連するQ&A

  • ATコマンドに関して

    教えて下さい。 Windows2000でATコマンドを用いてタスクを作成しようと考えていますが、ATコマンドで実行しようとしているexeファイル等がネットワーク上にあった場合は、やはり実行できないのでしょうか。。。 権限がSYSTEMという理由で。。。 仮にできないとした場合、Windows2000で上記のようにネットワーク上にあるexeファイルを実行させるようなタスクを組むコマンドはないでしょうか? GUIではなく、どうしてもコマンドが必要です。 よろしくお願いします。

  • 「管理者権限で実行」を選ばなくても、最初から管理者権限で実行させたいの

    「管理者権限で実行」を選ばなくても、最初から管理者権限で実行させたいのですが たまにある種のソフトがあって、Administratorでログインしているのに、さらに、「管理者権限で実行」を選んで起動しないと正常に動かないソフトがあります。 そういうソフトが幾つかあります。 これをいちいち、「管理者権限で実行」を選ばなくても、最初から管理者権限で実行させたいのですが、どうしたら良いのでしょうか。 標準ユーザーを別に作れば良いかと思って作ってみましたが駄目です。 そもそも、Administratorと管理者権限の違いってなんなのでしょう。 また、これは音楽ソフトの一つなのですが、「管理者権限で実行」を選ばないと動作しない部分があるので、それを選んで起動すると、今度は、そのために再生デバイスに音が行かなくて音が出ないみたいです。どうしたらよいのでしょうか。

  • システムアカウントの権限エラーの対処法を教えてください。

    社内でネットワークの管理をお手伝いしているものです。 DOSプロンプトのATコマンドを用いて、他サーバーのファイルをコピーするBATファイルが、アクセス権限エラーで異常終了してしまいます。。。 手で実行すると、問題なく処理を終了するのですが、ATコマンドによる自動起動となると、エラーとなります。。。 どうやら、自動起動はATコマンドのためだということが、こちらの欄で教えていただけたのですが、では、“SYSTEMアカウントで正常に実行するにな?”ということがわかりません。。 あるサーバーのSYSTEMアカウントに対して、他サーバーにアクセス権限を与えることは可能でしょうか? また、具体的な方法がわかれば、お教えください。 よろしくお願いします。

  • SYSTEM権限でプロセス機動

    いつもお世話になっております。 ただ今仕事で業務アプリを開発しているのですが、題記の件で立ち往生しております。 有識者の方がいらっしゃいましたら、ご教授いただければ幸いです。 【やりたいこと】 Windows2000Server,及びWindowsServer2003上でアプリを実装したときに、 ログオフでアプリケーションを殺さないようにする。 【経緯】 WindowsServer2008対応にて、今までセッション0でダイアログ表示を 行っていたアプリをユーザセッションに表示するように変更しました。 その際にUIを行うプロセスを新たに起動(CreateProcessAuUser()を用いて) するようにしたのですが、このUIを起動するとログインユーザ(Administrator権限) になってしまいます。 タスクマネージャ上でユーザがSYSTEMになっているプロセスは ログオフ後にログインしなおすとそのままアプリが残っているのに対し、 UIプロセスはWindowsによって異常終了してしまいます。 このことから、SYSTEM権限でプロセスを起動すれば良いのではないか? っと考えたのですが、はたして可能なのでしょうか? ・サービスプログラムからの起動 ・ATコマンドを使用して起動 ・スクリプト起動?(すいません、これはイマイチ分かっていません) 上記の場合にはSYSTEMになるということはわかったのですが、 SYSTEMで起動しているプロセスから起動することは可能なのでしょうか。 もし可能な場合どのように起動すればよいのかを教えていただきたく、よろしくお願いいたします。 尚、WindowsServer2008上ではプロセスが死ぬことは仕様としてあるのですが、 過去バージョンと同等機能(ログオフしてもプロセスが生きている)を維持しなくてはならないため、 本件のような仕様になっています。 どうぞよろしくお願いいたします。

  • ATコマンドのVBSを実行方法について

    ATコマンドはコマンドプロント又はバッチファイルで実行する方法だと思っています。 コマンドプロントでVBSの起動文の書き方を教えて下さい。 またVBSでATコマンドの起動方法を教えて頂けませんか よろしくお願いします。

  • WindowsNT/2000のATコマンド

    代理でアップさせていただきました。 説明不足の点をご容赦頂き、下記の内容で判明、推測できる点、参考HP等をお教え頂けると助かります。 ---質問--- WindowsNT/2000でATコマンドを使用しています。 バッチファイルを起動しているのですが、バッチの中でパスが入っている 環境変数を使用しています。 コマンドラインから直接バッチを起動した場合と、ATコマンドにて起動 した場合とで、同じ環境変数項目のパスが異なっています。 ユーザーが異なっているためと思われますが、   通常:Administrator   ATコマンド:Default User ATコマンドで起動した場合もコマンドラインから起動した場合と同じ 状態にしたいのですが方法が判ったら教えて下さい。 尚、タスクを使うとユーザーが指定できるので問題なく動きます。 ---以上--- どうぞよろしくお願いいたします。

  • 管理者権限を与えたコマンド実行

    管理者権限の無いユーザーにパスワードを教えずにコマンドを実行させる方法がないか検討しています。 rusas コマンドでは可能なようですが、パスワードをプロンプト要求されることと、それを回避する方法も難しいようです。 psexecコマンドではユーザー名とパスワードをパラメタで渡すことが可能なようですが、リモートコンピュータでの実行が前提になっているのか、ローカルコンピュータ上での動作がうまくいかないようです。 やりたいことは、ネットワークで繋がっていないPCに対してのIPアドレスの変更です。 IPアドレスを変更していない状態で、PCを異動先へ持って行ってしまったため、リモートでの操作ができないためです。 netshコマンドでアドレスの変更は実現できるようですが、これをローカル管理者権限で動かすバッチさえできれば、そのバッチをcom化してパスワードが見えないようにすればなんとかなるのではないかと思っています。 psexec -u localuser -p password 動作させたいコマンド と入れると、 最後に動作させたいコマンド exited with error code 1 と出てきてエラーになります。 フルパスで入れると、エラーは出なくなります。 これで問題無いとしても、今度はフルパスで決まった場所にコマンドをコピーするのに苦労しますが、他に方法は無いでしょうか?

  • system関数を使いatコマンドで指定のCGIを実行したい

    system関数を使いatコマンドで別のCGIを時間指定で動作させたいのですが、 サーバー側でどうしても実行されず困っています。 サーバーに送り込む側のCGIの記述は以下のように記述しています。 =============================================================== #!/usr/bin/perl $command = "at 22:15 09/20/2007 < /var/www/cgi01nni/mailmg/send.csh"; system $command; exit; =============================================================== send.cshは以下のように記述しています。 =============================================================== #/bin/csh perl /var/www/cgi01nni/mailmg/send2.pl > /dev/null; exit 0 =============================================================== root権限にてsshでサーバーにアクセスし、以下のコマンドを入力して 実行した際は、send2.plは正常に動作します。 at 22:15 09/20/2007 < /var/www/cgi01nni/mailmg/send.csh /etc/at.allowはありませんが、 /etc/at.denyはあります。(中身は空) サーバーに送り込む側のCGIを実行した後に、sshでatqで見ると 以下のように確認ができます。 61 2007-09-20 22:15 a apache sshで実行した際は、当たり前ですが以下のように最後がrootになります。 61 2007-09-20 22:15 a root なんとかatを実行させたいのですが、わかる方がおりましたら、 ご教授のほどよろしくお願いいたします。

  • Vistaで、atコマンドが使えません。

    こんにちは。 Vistaで、atコマンドを使った、タスクスケジューリングができずに困っています。 例えば、管理者としてコマンドプロンプトを立ち上げ、 at 17:00 1.bat というコマンドを実行すると、 「新しいジョブをジョブ ID = 1 で追加しました。」 と表示されます。 その後、タスクスケジューラの「タスクスケジューラ ライブラリ」を見ると、 先程のジョブが、AT1という名前で、きちんと設定されています。 にもかかわらず、していした17:00になっても、1.batは実行されません。 1.batを、dirのような組み込みコマンドに変えても、実行されませんでした。 タスクスケジューリングに必要なサービスは全て起動しています。 具体的には、 DCOM Server Process Launcher Remote Procedure Call (RPC) Remote Procedure Call (RPC) Locator COM+ Event System System Service Notification Service COM+ System Application を、全て起動しています。 また、タスクスケジューラでのスケジューリングは、上手くいっています。 どうすれば、atコマンドを使う事ができるのでしょうか? 何か御存じの方がいらっしゃれば、是非、情報を提供して頂きたく思います。 では、よろしくお願い致します。

  • at コマンドで同時刻に登録されたプロセスの実行について

    このカテで良いのか迷いましたが質問させていただきます。 タイマー設定でメールを送信したいと思っています。 Webアプリケーション(Apache+PHP)で利用者が時刻を指定して 登録をすると、指定した時刻にメールが送信される仕組みです。 そこで、登録が発生したタイミングで at コマンド(シェル)を 発行し、atキューに溜める方式を取ろうと考えています。 仮に、同一時刻に数千件のat コマンドが登録された場合、 - それらのコマンドは同時に実行されるのでしょうか? - それとも登録された順等にシーケンシャルに実行されるのでしょうか? 前者の場合、数千件のプロセスが一時に同時に起動してしまう 自体は避けたいと思うので他の策を練ろうと思います。 ちなみにMTAはqmailです。 また、Webアプリケーションからの登録でタイマーメール送信をする際の at 登録以外の方式がありましたらご教授ください。 よろしくお願いします。

専門家に質問してみよう