安裝 PrintManager 和 SQL Server 所遇到的問題

來源:互聯網
上載者:User
server|問題
安裝 Autodest PrintManager 所遇到的問題 / 安裝 SQL Server 所遇到的問題

  為了參考一下列印伺服器的工作流程,特地找了個Autodest PrintManager 來看看。

  Autodest PrintManager的安裝步驟:
 
  步驟一.PrintManager資料庫安裝
  步驟二.PrintManager Web網站安裝
  步驟三.PrintManager列印服務安裝
  步驟四.註冊

  主要是在“步驟一.PrintManager資料庫安裝”碰上了問題。
  問題1:
  PrintManager資料庫需要安裝在有Sql Server的機器上,所以得先安裝Sql Server。
  安裝SQL Server2000時,系統彈出一個警告資訊框,顯示"以前的某個程式安裝已在安裝電腦上建立掛起的檔案操作。運行安裝程式之前必須重新啟動電腦!"。
  重啟後問題依舊。
  於是上google搜尋:
  出現最多的文章是"一次SQL Server 2000 安裝奇遇",但卻不知所云,文章並沒找到問題實質;
  繼續搜尋,終於找到答案了,刪除HKEY_LOCAL_MACHINE YSTEM\CurrentControlSet\Control ession Manager\PendingFileRenameOperations即可。

  造成問題的直接原因牽涉到一個老問題————PsDriver,參看附錄。

  問題2:
  安裝SQL Server2000後,繼續安裝PrintManager資料庫,提示錯誤"[DBNETLIB][Connection(Connect()).]SQL Server does not exists or access denied."
  查閱PrintManagerde文檔,原來是PrintManager要求Sql Server的sa使用者必須設定口令,於是不得不重裝一次Sql Server。


  由於只是想看看PrintManager是如何工作的,所以註冊與否並不重要。不過用SoftIce簡單跟了下,PrintManager的註冊保護似乎並不是很複雜,有空時可以試試。

附錄:PsDriver的老問題

  PsDriver是很久以前的東西了。

  簡單地講,PsDriver就是在Window2000下,建立一個虛擬印表機,其他的Application可以方便地通過這個印表機產生PS檔案,再加上Acrobat  Distillr的配合,就可以產生PDF了。

  現在由於Print Manager的緣故又把它牽扯出來了,儘管目前涉及的只是個小問題而已。

  PsDriver是調用AddPrinterDriver來安裝印表機的。

  AddPrinterDriver的調用者只需要把有關的驅動程式拷貝到目錄:%SYSTEM% pool\drivers\w32x86

  調用AddPrinterDriver時,系統會把這些檔案拷貝到目錄:%SYSTEM% pool\drivers\w32x86\3

  具體到PPD:
  第一次安裝時,系統把PPD檔案拷貝到"%SYSTEM% ystem32 pool\drivers\w32x86\3"下,並產生一個BPD檔案。當重複安裝時,系統會根據PPD檔案的修改日期來決定是否更新PPD。如果PPD是新的,替換掉舊的PPD,也就是再拷貝一次;否則,do nothing!

  現在的問題是,如果最開始提供的PPD檔案是唯讀話,系統只是拷貝檔案,檔案屬性不會改變。當需要更新PPD時,因為"%SYSTEM% ystem32 pool\drivers\w32x86\3"下的PPD也是唯讀,系統拷貝將會失敗!!!
  於是,系統會修改註冊表,在:
  HKEY_LOCAL_MACHINE YSTEM\CurrentControlSet\Control ession Manager\
  下寫入一個索引值:
  PendingFileRenameOperations = "\??\C:\WINNT ystem32 pool\DRIVERS\W32X86\3\New\test.ppd\??\C:\WINNT ystem32 pool\DRIVERS\W32X86\3\test.ppd\??\C:\WINNT ystem32 pool\drivers\W32X86\3\Old\test.ppd\??\C:\WINNT ystem32 pool\drivers\W32X86\3\Old"
  最後的尾巴沒了,可以看出,前面一段是指出在系統重啟時,用C:\WINNT ystem32 pool\DRIVERS\W32X86\3\New\test.ppd覆蓋C:\WINNT ystem32 pool\DRIVERS\W32X86\3\test.ppd,這樣以達到更新PPD的目的。
  註:這是典型的安裝驅動的處理策略,但在目標檔案是可讀的情況下,這樣是行不通的。

  後面一段代碼尾巴沒了,不明所以。

  重啟機器後,實際的情況為:
  PendingFileRenameOperations = "\??\C:\WINNT ystem32 pool\drivers\W32X86\3\Old\test.ppd"

  顯然這是不合文法的,而且只能手工刪除,正是它的存在,導致了上述SQL Server的安裝錯誤!!!

  補充一下,這個問題早已經處理過了,就是在安裝時,去掉PPD的唯讀屬性即可。現在之所以碰到問題只是因為註冊表裡的垃圾沒清理乾淨而已。

  過幾天整理一下PsDriver,弄一個比較友好的小工具出來。




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.