錯誤:無法在 TEMP 環境變數路徑中寫入
我正在
PostgreSQL 9.2.4-1-windows.exe
安裝Windows 7 64
.Service Pack 1
我得到以下,看起來相當有名的錯誤:
出現錯誤。
無法在 TEMP 環境變數路徑中寫入。
這會在啟動時*立即發生。*我看到 postgresql 飛濺,然後發生此錯誤。
到目前為止,我在網際網路上找到的所有東西,我都試過了。這包括:
- 禁用所有防病毒軟體。我也停止了啟動中的一切。
- 檢查
.VBS
腳本的文件關聯。沒有任何異常(已註冊 Windows 腳本主機)Windows Script Host
已啟用。- 我嘗試以管理員和其他具有管理員權限的使用者身份安裝。
- 我已經
HKLM\SOFTWARE\PostgreSQL\Installations
手動創建了密鑰並賦予它完整的權限。- 我已經
Everyone
完全訪問C:\Users\[username]\AppData\Local\Temp
和c:\temp
我正在使用 32 位版本,但 64 位版本安裝失敗並出現相同的錯誤。我能夠在具有類似配置的其他機器上成功安裝。
我還能嘗試什麼?
安裝日誌文件:
日誌開始於 2013 年 9 月 20 日 11:55:16 首選安裝模式:qt 嘗試在模式 qt 模式下初始化安裝程序 qt 成功初始化執行 C:\Users\chad\AppData\Local\Temp/postgresql_installer_67b274715d/temp_check_comspec.bat 腳本退出程式碼:0
腳本輸出:“測試正常”
腳本標準錯誤:
找不到系統資料庫項 HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-9.2 數據目錄。將變數 iDataDirectory 設置為空值找不到系統資料庫項 HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-9.2 基本目錄。將變數 iBaseDirectory 設置為空值找不到系統資料庫項 HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-9.2 服務 ID。將變數 iServiceName 設置為空值找不到系統資料庫項 HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-9.2 服務帳戶。將變數 iServiceAccount 設置為空值找不到系統資料庫項 HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-9.2 超級使用者。將變數 iSuperuser 設置為空值找不到系統資料庫項 HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-9.2 Branding。將變數 iBranding 設置為空值找不到系統資料庫項 HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-9.2 版本。將變數 brandingVer 設置為空值 找不到系統資料庫項 HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-9.2 快捷方式。將變數 iShortcut 設置為空值找不到系統資料庫項 HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-9.2 DisableStackBuilder。將變數 iDisableStackBuilder 設置為空值 將變數 brandingVer 設置為空值 找不到系統資料庫項 HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-9.2 快捷方式。將變數 iShortcut 設置為空值找不到系統資料庫項 HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-9.2 DisableStackBuilder。將變數 iDisableStackBuilder 設置為空值 將變數 brandingVer 設置為空值 找不到系統資料庫項 HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-9.2 快捷方式。將變數 iShortcut 設置為空值找不到系統資料庫項 HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-9.2 DisableStackBuilder。將變數 iDisableStackBuilder 設置為空值
$$ 11:55:21 $$現有基礎目錄: $$ 11:55:21 $$現有數據目錄: $$ 11:55:21 $$使用品牌:PostgreSQL 9.2 (x86) $$ 11:55:21 $$使用超級使用者:postgres 和服務帳戶:NT AUTHORITY\NetworkService $$ 11:55:21 $$使用服務名稱:postgresql-9.2 執行 cscript //NoLogo “C:\Users\chad\AppData\Local\Temp\postgresql_installer_67b274715d\prerun_checks.vbs” 腳本退出程式碼:1 腳本輸出:輸入錯誤:文件副檔名“.vbs”沒有腳本引擎。
腳本 stderr:程序以錯誤退出程式碼結束
執行 cscript //NoLogo “C:\Users\chad\AppData\Local\Temp\postgresql_installer_67b274715d\prerun_checks.vbs” 時出錯:程序以錯誤退出程式碼結束
我在 Windows 7 64 位上遇到了這個問題,以下解決方案對我有用(通過http://igordcard.blogspot.com/2012/03/unable-to-write-inside-temp-environment.html) :
為什麼
要了解為什麼會發生此錯誤,我轉到我的 TEMP 文件夾並從 PostgreSQL 安裝程序中讀取日誌:
C:\Users\myuser\AppData\Local\Temp\bitrock_installer.log
其中提到了一個有趣的細節:
Input Error: There is no script engine for file extension ".vbs".
因此,我從 TEMP 文件夾中選擇了另一個文件,即安裝程序使用的實際腳本:
C:\Users\myuser\AppData\Local\Temp\prerun_checks.vbs
並嘗試使用 cscript 通過控制台執行它:
Input Error: There is no script engine for file extension ".vbs".
我進行了更多研究,發現與 vbs 副檔名關聯的文件類型已更改。就我而言,通過記事本++。安裝 Notepad++ 後,我將一些文件副檔名與其關聯(包括 vbs),因此在檢測腳本類型時會出現問題(這不應該發生)。
解決方案
執行
regedit
,導航到HKEY_CLASSES_ROOT\.vbs
(預設)鍵並將其更改回字元串VBSFile
。就我而言,它之前已更改為 Notepad++_file。