はじめまして、いつも参考にさせてもらっています。seaと申します。サーバ上で作成した、exeファイルをクライアントPCには配布せず、サーバ内に置いてあるものを起動させたいのですが・・・更に、クライアントPCには.Net、VB2005をインストールせずに使用したいのです。何方か、方法をご存知ないでしょうか?サーバ環境: Server2003 開発ソフト:VisualBasic 2005 Office Xp クライアント環境: WinXp Office Xpよろしくお願いします。
> サーバ内に置いてあるものを起動させたいのですが・・・特定の時刻に起動させたいなら、サーバ上の「タスク」に割り当てれば済むでしょう。手動起動でも良いのなら、リモートデスクトップでサーバに接続してアプリを起動してやれば OK かと。クライアントからの指示に応じて起動させたいのであれば、その指示というのがどのような状況で行われるのかによって、適切な方法も異なるかと。(少なくとも、クライアント側にはアプリを配置しないようですし)
返事が遅れて申し訳ありません。魔界の仮面弁士さんありがとうございます。> 特定の時刻に起動させたいなら、サーバ上の「タスク」に割り当てれば済むでしょう。年一の使用なのですが、ユーザ部で手動起動による操作を要望されています。> 手動起動でも良いのなら、リモートデスクトップでサーバに接続して> アプリを起動してやれば OK かと。業務用件により、リモートデスクトップでの接続が制限されている為、内部で調整が必要です。(サーバ管理部門・ユーザ側との調整。特にサーバ管理部門が難関)他にも無いか自分でもいろいろ調べているのですが・・・
> 年一の使用なのですが、ユーザ部で手動起動による操作を要望されています。そもそも、その「手動起動」とは、どのような指示を指しているのでしょうか?> 業務用件により案を出しても、後出しで「それでは駄目」と言われては困ってしまうので、他にも制限事項等があるようであれば、予め提示いただけると助かります。で。普通はクライアントから何かの処理を行うなら、クライアント側に何らかのツールが必要ですよね。でも、今回それは禁止されている、と。それでも、クライアント側に自作アプリ等を追加せずに実現するとなると:<案1> サーバ側処理を Windows サービスにしておき、リモートから On/Off する。<案2> サーバ側処理を Web アプリにしておき、ブラウザを使って処理を呼び出す。<案3> サーバ側でアプリを常駐させておき(またはサービスとして起動しておき)、 特定のフォルダの内容を監視するようにしておく。 そのフォルダ自体は 共有フォルダ / FTP /WebDAV のいずれかで公開しておき、 クライアントからは、そのフォルダに特定のファイルを配置することで、 サーバ上のアプリが処理を開始するようにしておく。<案4> WMI を使用可能にしておき、リモート接続の Win32_Process クラスで呼び出す。<案5> DCOM として登録しておき、リモート インスタンスを作成して呼び出す。<案6> WshRemote オブジェクトを使って、リモートのスクリプトから処理する。
魔界の仮面弁士さん、お世話になります> そもそも、その「手動起動」とは、どのような指示を指しているのでしょうか?単純にユーザがexeを起動して、処理プログラムを実行したいだけなのですが。 > 他にも制限事項等があるようであれば、予め提示いただけると助かります。他に制限事項・要件はありません。前回までに提示させて頂いた内容で変更はないです。> <案1> サーバ側処理を Windows サービスにしておき、リモートから On/Off する。> > <案2> サーバ側処理を Web アプリにしておき、ブラウザを使って処理を呼び出す。> > <案3> サーバ側でアプリを常駐させておき(またはサービスとして起動しておき)、> 特定のフォルダの内容を監視するようにしておく。> そのフォルダ自体は 共有フォルダ / FTP /WebDAV のいずれかで公開しておき、> クライアントからは、そのフォルダに特定のファイルを配置することで、> サーバ上のアプリが処理を開始するようにしておく。> > <案4> WMI を使用可能にしておき、リモート接続の Win32_Process クラスで呼び出す。> > <案5> DCOM として登録しておき、リモート インスタンスを作成して呼び出す。> > <案6> WshRemote オブジェクトを使って、リモートのスクリプトから処理する。ご提示頂いた、案1〜6を内部でも検討し、ユーザ側にも説明してみようと思います。他の方法が無いかも調査中ですので、良い方法・結果が得られましたらここにも提示して見たいと思います。ありがとうございました
> > そもそも、その「手動起動」とは、どのような指示を指しているのでしょうか?> 単純にユーザがexeを起動して、処理プログラムを実行したいだけなのですが。つまり「サーバ上で処理プログラムを実行させる」ための『起動処理』には、「クライアント上で 単純にユーザがexeを起動する」ようになっている、という事ですね?となると、その起動用 exe というのは、具体的にはどのような物なのでしょうか?クライアントには『.NET Framework をインストールしない』ことになっている以上、そのクライアント上で実行させる exe は、.NET 製にすることはできないのですから、当然、別の言語で作成されたもの(または、OS 標準の exe 等)しかありえませんよね。
魔界の仮面弁士さん、お世話になっております。また、お手数お掛けして申し訳ないです。> つまり「サーバ上で処理プログラムを実行させる」ための『起動処理』には、> 「クライアント上で 単純にユーザがexeを起動する」ようになっている、という事ですね?仰る通りです。 > クライアントには『.NET Framework をインストールしない』ことになっている以上、> そのクライアント上で実行させる exe は、.NET 製にすることはできないのですから、> 当然、別の言語で作成されたもの(または、OS 標準の exe 等)しかありえませんよね。他でも検索・調査したのですが、.Net FrameWorkのインストールが必要不可欠なようなのでユーザ側を含めて、再度検討致します。自分の興味もあるので、引続き調査等は行うつもりでいます。魔界の仮面弁士さんいろいろありがとうございました。