重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

初投稿です。よろしくお願いします。

現在、諸事の事情により、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権限


何とかしたいのですが、方法のご指導をよろしくお願いします。

A 回答 (1件)

可能性として考えられるのは、「マクロ」ですね。


マクロを含んだExcelファイルを普通に開いた場合、
マクロの警告がでますよね。(セキュリティレベルにも
よりますが)
ですから、ASP.NETで同様なことを行っても、
マクロの警告が出ていて、応答待ち状態になっていませんか?

もしそうだとしたら、
・セキュリティレベルを下げる
・マクロを使用せずに、マクロと同等な処理をASP.NET側で実行する。
・・マクロを使用せずに、マクロと同等な処理をVBSで記述し、VBSをバッチファイル化し、ASP.NETから起動する。

こんなところでしょうか?

この回答への補足

すみません、書き忘れてました。

・セキュリティレベルを下げる
EXCELファイルをダブルクリックしてマクロが動く(ファイルを書き出す)ことは確認してます。
セキュリティも「低」にしております。

・マクロを使用せずに、マクロと同等な処理をASP.NET側で実行する。
それはごもっともなのですが、大人の事情というやつで・・・

・マクロを使用せずに、マクロと同等な処理をVBSで記述し、VBSをバッチファイル化し、ASP.NETから起動する。
やはり、vbs等でおこなうほうがいいのかな・・・と思ったりしています。

補足日時:2008/01/25 23:36
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!