- 締切済み
ASP.NETからEXCEL起動
初投稿です。よろしくお願いします。 現在、諸事の事情により、ASP.NETからサーバ上のEXCELのマクロを実行しようとしてますが、起動できずに困っております。 過去ログを探してみて、偽装とDCOMの構成は行いました。 EXCELが実行できるならと思い、ATコマンドでもbatでもたたいてみましたが、 マクロの実行はできませんでした。 諸兄のご助言をお願いしたく思います。 【環境】 OS:WinXP Pro SP2 VisualStadio.Net 2003 Framework1.1 IIS 5.1 MicrosoftOffice 2003 【やりたいこと】 ASP.NETで作成したプログラム上でブラウザのボタンを押したとき、 サーバーのC:\check.xlsを Dim p As Process = Process.Start("EXCEL", "C:\check.xls") で起動し、 書いてあるマクロを実行したい。 【現状】 タスクマネージャで確認したところ、 EXCEL.exe ユーザ名ASPNET は表示されたが マクロは動かなかった。 デバッグで System.Security.Principal.WindowsIdentity.GetCurrent().Name を行ったところ、"マシン名\testuser"となり、 偽装は成功しているよう。 【準備したこと】 1.DCOMの構成のユーザ追加: 管理ツール/コンポーネントサービス/コンポーネントサービス/コンピュータ/マイコンピュータ/DCOMの構成/Microsoft Excel アプリケーションのプロパティ/セキュリティ/ の 「起動とアクティブ化のアクセス許可」のカスタマイズ項目を編集し、testuser とASPNETを追加 「アクセス許可」のカスタマイズ項目を編集し、testuserと ASPNETを追加 2.偽装の有効化: Web.configに <identity impersonate="true" userName="testuser" password="testuser" /> を追加 testuserはAdministrator権限 何とかしたいのですが、方法のご指導をよろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kokorone
- ベストアンサー率38% (417/1093)
可能性として考えられるのは、「マクロ」ですね。 マクロを含んだExcelファイルを普通に開いた場合、 マクロの警告がでますよね。(セキュリティレベルにも よりますが) ですから、ASP.NETで同様なことを行っても、 マクロの警告が出ていて、応答待ち状態になっていませんか? もしそうだとしたら、 ・セキュリティレベルを下げる ・マクロを使用せずに、マクロと同等な処理をASP.NET側で実行する。 ・・マクロを使用せずに、マクロと同等な処理をVBSで記述し、VBSをバッチファイル化し、ASP.NETから起動する。 こんなところでしょうか?
補足
すみません、書き忘れてました。 ・セキュリティレベルを下げる EXCELファイルをダブルクリックしてマクロが動く(ファイルを書き出す)ことは確認してます。 セキュリティも「低」にしております。 ・マクロを使用せずに、マクロと同等な処理をASP.NET側で実行する。 それはごもっともなのですが、大人の事情というやつで・・・ ・マクロを使用せずに、マクロと同等な処理をVBSで記述し、VBSをバッチファイル化し、ASP.NETから起動する。 やはり、vbs等でおこなうほうがいいのかな・・・と思ったりしています。