Postgresql

錯誤:無法在 TEMP 環境變數路徑中寫入

  • February 18, 2021

我正在PostgreSQL 9.2.4-1-windows.exe安裝Windows 7 64.Service Pack 1

我得到以下,看起來相當有名的錯誤:

出現錯誤。

無法在 TEMP 環境變數路徑中寫入。

這會在啟動時*立即發生。*我看到 postgresql 飛濺,然後發生此錯誤。

到目前為止,我在網際網路上找到的所有東西,我都試過了。這包括:

  1. 禁用所有防病毒軟體。我也停止了啟動中的一切。
  2. 檢查.VBS腳本的文件關聯。沒有任何異常(已註冊 Windows 腳本主機)
  3. Windows Script Host已啟用。
  4. 我嘗試以管理員和其他具有管理員權限的使用者身份安裝。
  5. 我已經HKLM\SOFTWARE\PostgreSQL\Installations手動創建了密鑰並賦予它完整的權限。
  6. 我已經Everyone完全訪問C:\Users\[username]\AppData\Local\Tempc:\temp

基本上,前 10 名Google點擊中的所有內容。

我正在使用 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。

引用自:https://dba.stackexchange.com/questions/50273