• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:TELNETについて)

TELNETからPowerPointを起動させることってできるのでしょうか?

このQ&Aのポイント
  • クライアントPC(WindowsXP)からサーバ(Windows2003)にtelnetでログインして、サーバ上のPowerPointファイルを操作(Openして更新)したいのですが、上手くいきません。
  • telnet上でPowerPointのファイル名をたたいても、ファイルが開けていないようなんです。
  • リモートデスクトップでサーバに入ると該当ファイルは更新されていません。

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

  • ベストアンサー
  • crossgate
  • ベストアンサー率65% (78/119)
回答No.6

>DCOMの構成についてはMicrosoft PowerPointプレゼンテーション、Microsoft PowerPointスライドのプロパティで以下の設定です。 >場所:このコンピュータでアプリケーションを実行する(←プレゼンの場合はデフォルトで選択されていて変更できない) >セキュリティ:起動とアクティブ化のアクセス許可、アクセス許可、構成のアクセス許可で全項目に許可を与えています。 >ID:起動したユーザー 特に問題ないように見えますね。 >Telnet関連もしくはネットワーク関連で何か設定しなければいけないのでしょうか?? >Telnetのログオンプロパティを「アカウント」指定から「ローカル システムアカウント:デスクトップとの対話をサービスに許可」に変えたんですが、結果は変わらずでした。 私は「ローカル システムアカウント」で「デスクトップとの対話をサービスに許可」のチェックは外してましたが、チェックを付けてもOKでした。 そもそもバッチで更新する以上は対話型ではないので。。。 そういえばその辺りが問題なんですかね? MSはOfficeのオートメーションを正式サポートしてないので。  http://support.microsoft.com/default.aspx?scid=kb;ja;257757 後は、PowerPoint2007だとダメということもあるのでしょうか? すみません、私は2007を使ってないのでその辺りは良く分かりません。

sheepcat
質問者

お礼

crossgateさん 返信が遅くなってしまい申し訳ありません。 crossgateさんが載せてくれたサイトをよく読むと、 「Office のオートメーションをサーバーサイドで 使用する際の問題」の中に該当するもの↓がありました。 ・CreateObject 関数および CoCreateInstance 関数が次のいずれかの実行時エラー メッセージを返し、オートメーションに対して起動できません。 回避策はなかったのですが・・。 OPENXML形式の使用も考え、色々と試行しましたが 扱う対象ファイルは2003バージョンのためこちらもスムーズな やり方はできそうにありませんでした。 結局、telnetを使わずにサーバー上で直接EXEを 実行させる方法で落ち着きそうです。 お付き合いいただいてありがとうございました! 一緒に考えてくださって、とても助かりました。

すると、全ての回答が全文表示されます。

その他の回答 (5)

  • crossgate
  • ベストアンサー率65% (78/119)
回答No.5

>ウインドウが上がる環境がなくても起動できるということですね。。 >上書き保存も可能ですか? 前回は「プロセスが起動すること」を試しただけだったので、同じ環境でソースを変えて、更新できることも確認しました。 ソースは最後に貼り付けておきますので、こっちでも試してみてください。 >>こいつはチェックしてますか? >>  http://support.microsoft.com/kb/308409/ja > >このサイトも見たのですが、CreateObjectで起動させている場合には >当てはまらないものと思っていました。 >「Office アプリケーションにコマンド ライン スイッチを指定するためにコードを使用して、 >Office アプリケーションの .exe ファイルを起動する」というのに当たるんでしょうか。 あ、これは私の見間違いでした。 失礼しました。 確かにGetObjectの話しなので該当しないですね。 >telnet接続するアカウントにアプリの起動許可があるか?ということであれば許可を与えています。 >ローカルに加えリモートからの起動、アクティブ化、リモートアクセス、フルコントロールの許可があります。 そうですか。それなら動きそうなものですが。 もしかして、PowerPointだけ2007以外のバージョンも入っていてレジストリがおかしな状態になっているとか。。。そんなことはないでしょうね。  http://support.microsoft.com/kb/292491/ja [ソース] Module Module1   Sub Main()     Dim oPP As PowerPoint.Application     Dim oPresSet As PowerPoint.Presentations     Dim oPres As PowerPoint.Presentation     oPP = CreateObject("PowerPoint.Application")     oPP.Visible = True     oPresSet = oPP.Presentations     '既存ファイルオープン     oPres = oPresSet.Open("D:\tmp\test.ppt", , , True)     'スライド追加     oPres.Slides().Add(1, PowerPoint.PpSlideLayout.ppLayoutText)     'スライドの1ページ目にテキストボックス追加     oPres.Slides(1).Shapes.AddTextbox(Microsoft.Office.Core.MsoTextOrientation.msoTextOrientationHorizontal, 100, 100, 200, 50).TextFrame.TextRange.Text = "書き込みテスト"     '更新     oPres.Save()     oPres.Close()     System.Runtime.InteropServices.Marshal.ReleaseComObject(oPres)     oPres = Nothing     System.Runtime.InteropServices.Marshal.ReleaseComObject(oPresSet)     oPresSet = Nothing     oPP.Quit()     System.Runtime.InteropServices.Marshal.ReleaseComObject(oPP)     oPP = Nothing     GC.Collect()   End Sub End Module

sheepcat
質問者

補足

>前回は「プロセスが起動すること」を試しただけだったので、同じ環境でソースを変えて、更新できる>ことも確認しました。 >ソースは最後に貼り付けておきますので、こっちでも試してみてください。 試してみましたが、ダメでした・・orz どちらも、やはりCreateObjectでエラーになってしまいます。 エラー内容も変わらず「Activeコンポーネントを作成できません」です。 変えたのはファイル名の部分だけですので、 環境の問題な気がします。 DCOMの構成についてはMicrosoft PowerPointプレゼンテーション、Microsoft PowerPointスライドのプロパティで以下の設定です。 場所:このコンピュータでアプリケーションを実行する(←プレゼンの場合はデフォルトで選択されていて変更できない) セキュリティ:起動とアクティブ化のアクセス許可、アクセス許可、構成のアクセス許可で全項目に許可を与えています。 ID:起動したユーザー Excel、Wordも同様の設定です。 Telnet関連もしくはネットワーク関連で何か設定しなければいけないのでしょうか?? Telnetのログオンプロパティを「アカウント」指定から「ローカル システムアカウント:デスクトップとの対話をサービスに許可」に変えたんですが、結果は変わらずでした。

すると、全ての回答が全文表示されます。
  • crossgate
  • ベストアンサー率65% (78/119)
回答No.4

環境は結構違いますが、少し試してみました。 ちゃんと動きますね。 [環境] ・telnetサーバ、クライアントともにWinXP SP3(サーバはtelnetサービスを上げてTCP/23ポートに穴を開けただけ) ・クライアントからサーバへの接続は、サーバのログオン済みユーザ ・Officeは2003 SP3 ・VBは2008 Express ・処理はExcelとPowerPointをオープンしてクローズするだけ  プロセスが上がっていることを確認したいのでスリープを仕込んでみる [結果] ・telnet接続で実行してExcel、PowerPointのプロセス起動を確認。但しウインドウは上がらない。   → ActiveXのエラーは出ない    sheepcatさんはコンソールかどこかに出てるんですよね? ・サーバで直実行してExcel、PowerPointのプロセス起動を確認。ウインドウは上がる。 [あれこれ] ・こいつはチェックしてますか?   http://support.microsoft.com/kb/308409/ja ・PowerPointで問題があると言うのは、CreateObjectでActiveXのエラーが出ているということで判断されたと言うことで良いですか?  (ファイルが更新されてないからという理由ではないですよね?CreateObjectでエラーなら更新されないでしょうが) ・DCOMの構成はちゃんとできてますか? [ソース] Module Module1   Sub Main()     ' とりあえずExcel     Dim oExcel As Excel.Application     Dim oBooks As Excel.Workbooks     Dim oBook As Excel.Workbook     oExcel = CreateObject("Excel.Application")     oExcel.Visible = True     oBooks = oExcel.Workbooks     oBook = oBooks.Open("D:\tmp\test.xls")     oBook.Close(False)     System.Runtime.InteropServices.Marshal.ReleaseComObject(oBook)     oBook = Nothing     System.Runtime.InteropServices.Marshal.ReleaseComObject(oBooks)     oBooks = Nothing     oExcel.Quit()     System.Runtime.InteropServices.Marshal.ReleaseComObject(oExcel)     oExcel = Nothing     ' 本題のPowerPoint     Dim oPP As PowerPoint.Application     Dim oPresSet As PowerPoint.Presentations     Dim oPres As PowerPoint.Presentation     oPP = CreateObject("PowerPoint.Application")     oPP.Visible = True     oPresSet = oPP.Presentations     oPres = oPresSet.Open("D:\tmp\test.ppt", , , True)     System.Threading.Thread.Sleep(10000) 'ここでプロセスがあがることを確認     oPres.Close()     System.Runtime.InteropServices.Marshal.ReleaseComObject(oPres)     oPres = Nothing     System.Runtime.InteropServices.Marshal.ReleaseComObject(oPresSet)     oPresSet = Nothing     oPP.Quit()     System.Runtime.InteropServices.Marshal.ReleaseComObject(oPP)     oPP = Nothing     GC.Collect()   End Sub End Module

sheepcat
質問者

補足

動いたんですか! >telnet接続で実行してExcel、PowerPointのプロセス起動を確認。但しウインドウは上がらない。   → ActiveXのエラーは出ない    sheepcatさんはコンソールかどこかに出てるんですよね?    はい、コンソール上にエラー内容を出力しています。  ウインドウが上がる環境がなくても起動できるということですね。。  上書き保存も可能ですか? >こいつはチェックしてますか?   http://support.microsoft.com/kb/308409/ja このサイトも見たのですが、CreateObjectで起動させている場合には 当てはまらないものと思っていました。 「Office アプリケーションにコマンド ライン スイッチを指定するためにコードを使用して、 Office アプリケーションの .exe ファイルを起動する」というのに当たるんでしょうか。 >PowerPointで問題があると言うのは、CreateObjectでActiveXのエラーが出ているということで判断されたと言うことで良いですか?  (ファイルが更新されてないからという理由ではないですよね?CreateObjectでエラーなら更新されないでしょうが)  エラー内容に加えて、WordとExcelの処理も同バッチで処理しているのですが、  そちらが問題なく処理できているためPowerPointまたはtelnetの問題と判断しました。 >DCOMの構成はちゃんとできてますか?  すみません、まだDCOMについてはよく分かっていないので回答が的外れかもしれません。  telnet接続するアカウントにアプリの起動許可があるか?ということであれば許可を与えています。  ローカルに加えリモートからの起動、アクティブ化、リモートアクセス、フルコントロールの許可があります。  他に設定しなければいけないものがあるでしょうか?  ますます分からなくなってしまいました。  アプリの起動方法、操作方法はcrossgateさんとほぼ変わらないのですが、ソースを頂いてひとまず試してみます。  

すると、全ての回答が全文表示されます。
  • crossgate
  • ベストアンサー率65% (78/119)
回答No.3

>PowerPointだから不可能、ということでしょうか。 >EXCELのファイルは開くことができています。 > >本来はVBで作成したバッチでOfficeファイルを更新するのですが、 >Word・Excelが問題なく処理できるのに対して、PowerPointだけが >処理できません。 サーバプログラムをキックするのか。。。 まあ、そりゃそうか(^ ^;失礼しました。 特にPowerPointだからどうこうということではないです。 ともかく、私が回答できるかどうかは分からないですが、よく分からないことがあるので外堀を埋めるために質問です。 ・サーバにリモートデスクトップ接続してバッチを実行したらちゃんと動きますか? ・実際に処理するのはバッチですか?それともPowerPoint側に仕込んだマクロか何かですか?  (何を更新するのかも気になりますがそれはさておき) ・開こうとしているPowerPointの拡張子って何ですか? ・VBのバージョンって何ですか?(2008とか2010あたり?)

sheepcat
質問者

補足

>ともかく、私が回答できるかどうかは分からないですが、 >よく分からないことがあるので外堀を埋めるために質問です。 ありがとうございます。 よろしくお願いします。 >サーバにリモートデスクトップ接続してバッチを実行したらちゃんと動きますか? はい。問題なく実行できます。 >実際に処理するのはバッチですか?それともPowerPoint側に仕込んだマクロか何かですか? バッチで処理を行います。 >・開こうとしているPowerPointの拡張子って何ですか? pptになります。 VBでCreatObject("PowerPoint.Application")でPowerPointを起動しているのですが、 telnetで実行する際にはその部分で『ActiveX コンポーネントを作成できません』 というエラーが起きます。 pptxで検証した際にも同様のエラーが起きています。 >VBのバージョンって何ですか? 2008になります。 先の補足で説明が足りない部分がありました。 (↓以外も足りないところだらけですが。すみません。) PowerPointファイルが開けるのか確かめた、というのは バッチからではなく、直接telnetコンソールからファイル名をたたいたのです。 その場合もサーバ側のファイルには反応がありませんでした。 エラーも返ってこず、何も起きない状態でした。 PowerPointを操作する場合は、表示ができないとダメらしいのですが そのあたりが問題なのでしょうか。

すると、全ての回答が全文表示されます。
  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.2

サーバにPowerPointが入ってないとか。

sheepcat
質問者

補足

サーバにはOffice2007をインストールしています。 (Word、Excel、PowerPoint入ってます)

すると、全ての回答が全文表示されます。
  • crossgate
  • ベストアンサー率65% (78/119)
回答No.1

telnetはテキストベースの通信なので、GUI操作はできません。 リモートデスクトップが使えるならそちらで更新してはどうでしょうか? 更新したいファイルを置いているフォルダを共有するという手もありますが。

sheepcat
質問者

補足

回答ありがとうございます。 >telnetはテキストベースの通信なので、GUI操作はできません。 PowerPointだから不可能、ということでしょうか。 EXCELのファイルは開くことができています。 本来はVBで作成したバッチでOfficeファイルを更新するのですが、 Word・Excelが問題なく処理できるのに対して、PowerPointだけが 処理できません。 原因がわからず、とりあえずPowerPointファイルがそもそも開けるのか 確かめてみたところそれもできなかったため、先の質問をさせていただきました。 リモートデスクトップでやってしまいたいのですが、 手段としてはtelnetが外せない状況なのです。

すると、全ての回答が全文表示されます。