2010-11-20 134 views
5

我開發了一個使用Excel 2007 COM自動化轉換某些xls文件的服務器應用程序。它作爲Windows Datacenter實例上的服務啓動,並在其自己的用戶下運行,並且必須更改DCOM安全設置(「以交互式用戶身份啓動」)才能使其工作。當用戶註銷時,Excel COM自動停止工作

問題是,當我註銷(通過RDP)時,它停止工作。我登錄,它再次運作。

有沒有人有同樣的問題?我很高興現在有任何幫助。

回答

7

好了,我不能讓Excel的在沒有交互式用戶的情況下運行,不會有大量的DCOMCNFG欺騙行爲。所以我簡單地爲運行服務的用戶配置了autologin(有關說明,請參閱http://support.microsoft.com/kb/315231)。

這具有在服務器啓動時,該用戶將作爲交互式控制檯會話登錄的效果。與RDP會話不同,這是永久性的,並使Excel很高興。

  • 創建文件夾C:\ Windows \ System32下[或SysWOW64中] \設置\ systemprofile \桌面
  • 確保默認打印機

    誰擁有做類似的事情在普靈魂其他提示

  • 更改Excel的DCOMCNFG設置(mmc -32,添加「組件服務」)以使用交互式帳戶運行
  • 更改全局DCOM默認設置爲允許本地訪問,本地啓動和本地訪問爲用戶激活服務e運行於

祝你好運!

+0

你的意思是執行你提到的「其他提示」模擬一個永遠在線的交互式用戶嗎? – mateolargo 2011-11-01 01:39:00

+0

使用自動登錄是一種安全風險。你如何以這種方式保護你的服務器? – 2017-01-04 19:53:43

2

有一個叫Excel Services件事應該使人們有可能使用SharePoint運行Excel作爲一種服務,這將允許它與任何人登錄自動運行。

+0

嗨喬爾,感謝您的回覆! :)當我調試時,我實際上已經在想你了,注意到Excel比Word或Powerpoint更難自動化,需要登錄的交互式用戶來操作。你可能知道爲什麼,在內部工作。我知道Sharepoint提供的MS Office服務,但不幸的是,我正在爲SharePoint的直接競爭對手開發此服務。^_ ^我會發布我在下面找到的解決方案。乾杯! – 2010-11-21 23:11:29

1

我有這個問題,我發現答案其實是在DCOM Configuration.

我做了以下解決這個問題:

  1. 打開Excel DCOM屬性
  2. 圍棋到Identity選項卡
  3. 選擇This User
  4. 輸入有權訪問Excel的用戶的憑據

您可能需要轉到Security選項卡,並確保您在上面指定的用戶具有適當的權限。

完成此操作後,我仍然可以在使用Excel COM Automation庫的同時註銷服務器。

0

如果這是運行Excel中的帳戶管理員,那麼這將工作:

對於64位(x64),在該文件夾:C:\ WINDOWS \ Syswow64資料\ CONFIG \ systemprofile \桌面 爲32位(x86),創建該文件夾:C:\ WINDOWS \ system32 \設置\ systemprofile \桌面 否則,要解決此問題,請按照下列步驟操作:

  1. 登錄到你的服務器作爲管理員
  2. 轉到「開始「 - >」運行「並輸入」MMC comexp.msc/32「
  3. 轉到Microsoft Excel應用程序的屬性,在標識下將其更改爲來自啓動用戶的交互式用戶(默認設置)。
  4. 轉到Microsoft Office Excel 2007工作簿的屬性,在標識下,將其更改爲來自啓動用戶的交互用戶(默認設置)。
  5. 轉到安全選項卡Microsoft Excel應用程序,並選擇自定義 「啓動和激活權限」,並添加帳戶(在其下運行Excel)到它,並給它「本地啓動」和「本地激活」權限
  6. 轉到安全選項卡用於Microsoft Office Excel 2007工作簿,並選擇自定義 「訪問權限」,並添加帳戶(在其下運行Excel)到它,並給它「本地控制」權限
0

服務器端:

A)將「交互式用戶」切換爲「此用戶」

  • C:\的Windows \ Syswow64資料\ CONFIG \ systemprofile \桌面
  • C:\ WINDOWS \ system32 \設置\ systemprofile

    B) 「這個用戶」 創建這些文件夾後只能\桌面

C)等待...步驟B)觸發的Windows自動創建:

  • C:\ Users \ Default \ Desktop

請注意「交互式用戶」的定義是捎帶在任何活動的登錄用戶到服務器上。因此,當沒有用戶在服務器上處於活動狀態時,無法啓動MS Office。

也就是說,該解決方案是已經提出的解決方案的混合體。我在Win 2012R2上使用Office 2013(x86)。我的問題是用Word(使用WordToPDF)。

詳細的步驟B:

  • 登錄到服務器>開始>運行DCOMCNFG.EXE(發射組件服務)>控制檯根>組件服務>計算機>我的電腦> DCOM配置...
  • 滾動到「Microsoft Word 97 - 2003文檔」或「Microsoft Excel應用程序」(即,無論您需要啓動MS Office的任何東西)...
  • 右鍵單擊它,然後選擇「屬性」>「標識」選項卡>選擇「此用戶」>爲服務器上的MS Office訪問某些用戶輸入憑據。 (I使用具有管理員權限的用戶。),用於步驟C

詳細說明:

  • 等待變化從5分鐘到過夜。或者,手動創建此文件夾(如果該文件夾不存在,並且您急於完成測試)。