web-dev-qa-db-ja.com

WindowsへのPostgreSQL 9のインストール:「TEMP環境パス内に書き込むことができません。」

WinXPマシンにPostgreSQL 9(postgresql-9.0.3-1-windows.exe)をインストールしようとすると、最初に次のエラーが表示されます。

Unable to write inside TEMP environment variable path.

グーグルでいくつかのアドバイスを提案した Windows Scripting Hostが無効になっている可能性があります 。私は確認しましたが、WSHは確実に有効になっているので、別のものでなければなりません。質問は、何ですか?

prerun_checks.vbsというファイルが%TEMP%に作成されていることを確認できます。これを手動で実行しようとすると、次のようになります。

enter image description here

権限エラーのようです。しかし、私は管理者であり、tempフォルダの完全な制御権を自分に与えましたが、それでも機能しません。

助けてくれてありがとう。

24
Charles Roper

上記の質問を終えていたところ、ITの問題が発生し、問題はすぐにわかりました。それはMcAfeeです。 anythingがWindows Scripting Hostスクリプトを含むTEMPフォルダーで実行されるのを防ぎます。インストール中にMcAfeeを無効にすると、問題が解決しました。

したがって、この問題が発生した場合は、ウイルス対策を無効にしてみてください。

7
Charles Roper

私の場合、解決策は、NotePad++ファイルを開くためのデフォルトのアプリケーションである.vbsに関連していました。同じ状況の場合は、複雑な解決策があります。

http://igordcard.blogspot.co.il/2012/03/unable-to-write-inside-temp-environment.html

簡単に言えば、レジ​​ストリでHKEY_CLASSES_ROOT\.vbsに移動し、(Default)エントリを文字列VBSFileに戻す必要があります。

32
Zach-M

次のページの答えは私を助けました。 http://forums.enterprisedb.com/posts/list/3040.page

  1. run-> regedit、エクスポートを使用してレジストリのバックアップを作成
  2. HKEY_LOCAL_MACHINE-> SOFTWARE-> Classes-> CLSID-> B54F3741-5B07-11cf-A4B0-00AA004A55E8}-> InprocServer32
  3. C:\ Windows\System32\vbscript.dllとして新しい値でレジストリエントリを変更します。

実際、HKEY_LOCAL_MACHINE-> SOFTWARE-> Classes-> CLSID-> B54F3741-5B07-11cf-A4B0-00AA004A55E8}の3つのエントリがあり、最初のエントリを上記のように設定すると、動作します。

5
steven.yang

他の誰かがこれに関する情報を探していて、ここで運がない場合は、以下を参照することをお勧めします。

http://wiki.postgresql.org/wiki/Troubleshooting_Installation

メーリングリストのフォローアップについては、以下をお読みください:

http://wiki.postgresql.org/wiki/Guide_to_reporting_problems

3
Craig Ringer

まあ、私の場合は何もうまくいきませんでした。McAffeeを無効にするには、実際に会社のセキュリティチームに特別なチケットが必要だったので、このガイドに従ってバイナリを使用してインストールしました 役立つガイド

要約すると、バイナリを here からダウンロードして解凍し、pgsqlフォルダ内に移動して、そこにlogおよびdataディレクトリを作成します。コマンドプロンプトを開き、pgsql\binフォルダーがある場所に移動して、initdb -U postgres -A password -E utf8 -W -D POSTGRESQL_ROOT\dataを実行します

次のコマンドを実行すると、サーバーを起動および停止できます

"POSTGRESQL_ROOT/bin/pg_ctl" -D "POSTGRESQL_ROOT/data" -l "POSTGRESQL_ROOT/log/pgsql.log" start

そして

"POSTGRESQL_ROOT/bin/pg_ctl" -D "POSTGRESQL_ROOT/data" -l "POSTGRESQL_ROOT/log/pgsql.log" stop

ここで、POSTGRESQL_ROOTはpgsqlフォルダーへの絶対パスです。

2
adinutzyc21

上記のすべてが私にはうまくいきませんでした。次のようなエラーが発生しました:

スクリプト出力:CScriptエラー:このマシンではWindowsスクリプトホストアクセスが無効になっています。詳細については、管理者にお問い合わせください。

だからいくつかのグーグルの後で私は解決策を見つけました:次のキーに移動します:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Script Host\Settings

右側のパネルに、[有効]と表示されます。エントリ0が表示される場合は、WindowsマシンでWindowsスクリプトホストアクセスが無効になっていることを意味します。

それをダブルクリックし、値のデータ1を指定して有効にします。

値1はWindowsスクリプトホストを有効にします。値0はWindowsスクリプトホストを無効にします。

windows 10に移動

HKEY_CURRENT_USER\Software\Microsoft\Windows Script Host\Settings

2
adongo

私の問題は、Windowsスクリプトの実行を無効にするSmad-Avでした。このスレッドを通過した後でないと、覚えていませんでした。私はSmad-Avアイコンを右クリックしてAllow Windows-Script&Office-Macro(Permanent)を選択しました。

さらなる問題を回避するには、ウイルススキャナーによるスキャンからデータディレクトリ(Postgresがデータを置く場所)も除外する必要があります。

私の場合、HKEY_CLASSES_ROOTの(デフォルト)キーを変更すると、レジストリの.vbsセクションがVBSFileに解決されました。 BlueFishは、.vbsファイルの関連付けを取得します。

1
YOGESH C UGALE

Windows 7 64ビットに32ビットバージョンをインストールしようとすると、この問題が発生しました。

64ビットのインストールキットを試してもエラーは発生しませんでしたが、他のユーザーが提示した解決策も有効です。

1
Valentin Despa

私の場合、問題を引き起こしたのは別のアプリケーションでした。 Notepad ++ではありません。この問題が発生した他のユーザーは、最初にC:\Documents and Settings\UserName\Local Settings\Temp内のすべてのファイルを削除することで診断できるため、postgresqlを再度インストールしてその手順を表示すると、bitrock_installer.logを簡単に見つけることができます。 。レジストリのHKEY_CLASSES_ROOT.vbsセクションの(デフォルト)キーをVBSFileに変更すると解決しました。

1
Nav

これは古いスレッドですが、Windows 10でも同じ問題が発生しました。

TEMP環境パス内に書き込むことができません

次の手順で解決

  1. 問題がWindowsスクリプトホストに関連していることを確認します。
  2. cmdからwscript.exeを実行します
  3. エラーが発生した場合は、Windows Script Hostが有効になっておらず、cmdを実行して解決できます。

現在のユーザーの修正

REG DELETE "HKCU\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled /f

ローカルマシンの修正

REG DELETE "HKLM\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled /f

いいえ、psqlをインストールできます

1
Philip

私はPostgreSQLのインストールで同じ問題を抱えていました(TEMP環境変数パスに書き込むことができません)。問題はWindowsスクリプトホストにあり、無効にされていました(これが問題かどうかをログファイルで確認してください)。この場所でレジスタエディタ(run-> regedit)を使用して有効にしますComputer\HKEY_CURRENT_USER\Software\Microsoft\Windows Script Host\Settingsその値を1に設定する

詳細については、次のWebリンクを確認してください。 http://1stopit.blogspot.com/2011/01/postgresql-83-and-84-fails-to-install.html

1
Saidoune

私の場合、マカフィーの削除ツールをダウンロードしました MCPR(マカフィーコンシューマー製品の削除) マカフィーのアンインストール後にいくつかのテーリングをクリーンアップしました。

以前にInprocServer32のような'c:\program files\common files\McAfee\systemcore\...'の値があったいくつかのレジストリエントリは、元の値に戻りました。

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{B54F3741-5B07-11cf-A4B0-00AA004A55E8}\InprocServer32\(default) = vbscript.dll
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{B54F3741-5B07-11cf-A4B0-00AA004A55E8}\InprocServer32\(default) = C:\Windows\SysWow64\vbscript.dll

その後、PostgreSQL 9.3を正常にインストールしました

1
Kerogi

レジストリをいじる前に、WSHが実際に無効になっているかどうかを確認します。そのためには、DOSボックスでwscript.exeを実行します。

「Windows Script Host Settings」というダイアログボックスが表示された場合は、WSHが有効になっており、PostgreSQLのインストールに関する問題は他の問題に関連しているはずです。 「このマシンではWindowsスクリプトホストアクセスが無効になっています。詳細は管理者にお問い合わせください」というエラーボックスが表示される場合、WSHは無効になっており、PostgreSQLのインストールに関する問題はそれに関連している(または関連していない)可能性があります。

私にとって、私の問題はWindowsスクリプトに関連していました。タスクバーの非表示のアイコンにあるsmadavアイコンを右クリックし、[WindowsスクリプトとOfficeマクロを許可する(永続)]をオンにすることでこれを解決しました。次に、PostgreSQLセットアップを再度ダブルクリックします。

0
Lashe

システムのTEMPディレクトリのログを確認します(インストーラーがログを書き込むことができる場合)。エラーに関する多くの情報があります。

私の問題は、VBSファイルがテキストエディターに関連付けられていることでした(おそらくウイルス対策ソフトウェアが原因です)。

ここでは、デフォルトの動作に戻すためのいくつかのreg編集スクリプトを見つけることができます。 http://www.nilpo.com/2009/07/windows-xp/restoring-vbs-vbscript-script-file-file-associations /#more-107

乾杯

0
qwlice

私のソリューションは#5に似ていますが、McAfeeがvbscript登録をどのように、そしてなぜ台無しにするかを説明しています。

どうやら、コンピューターにMcAfeeウイルス対策ソフトウェアがインストールされていると、Windows Scripting Hostが.VBSファイルを実行するために必要なvbscript.dll登録が打ち消されました。

エクスポートされた.REGファイルで:

[HKEY_CLASSES_ROOT\CLSID {B54F3741-5B07-11cf-A4B0-00AA004A55E8}\InprocServer32] @ = "C:\ Program Files\Common Files\McAfee\SystemCore\ScriptSn.20120327211246.dll"

これを「C:\ Windows\System32\vbscript.dll」に戻す必要があります。

McAfeeは明らかに、DLLをインストールし、不正なスクリプトの実行を保護するためにvbscript.dllをハイジャックします。Microsoftを優先してMcAfeeをアンインストールした場合

Security Essentials、McAfeeはレジストリパスを復元せず(「私の問題ではありません」)、もちろんMcAfee DLLはアンインストール中にその場所から削除されたため、vbscript.dllの登録は実際にはNOWHEREおよびNOTHINGを指しています。

それがアンインストールされたとき、または機能がオフにされたとき、または登録を置き換えたときに、ユーザーのオペレーティングシステムを無効にしないように、アンチウイルスソフトウェアを作成するより良い方法が必要です。以下を参照してください。

https://kc.McAfee.com/corporate/index?page=content&id=KB7166

64ビットOSを使用しています。レジストリパスがいくつかの場所で変更されました。

通常のクラスIDは、「C:\ Windows\System32\vbscript.dll」64ビットファイルを指す必要があります。

「Wow6432Node」レジストリパスは、「C:\ Windows\SysWOW64\vbscript.dll」32ビットファイルを指す必要があります。

はい、64ビットは「32」フォルダにあり、32ビットは「SysWOW64」フォルダにあります。 Microsoftは、64ビットに移行したときに、メインの「System32」実行フォルダーの名前を変更したくありませんでした。

HKEY_CLASSES_ROOT\CLSID {B54F3741-5B07-11cf-A4B0-00AA004A55E8} C:\ Windows\System32\vbscript.dll

HKEY_CLASSES_ROOT\Wow6432Node\CLSID {B54F3741-5B07-11cf-A4B0-00AA004A55E8} C:\ Windows\SysWOW64\vbscript.dll

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID {B54F3741-5B07-11cf-A4B0-00AA004A55E8} C:\ Windows\System32\vbscript.dll

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID {B54F3741-5B07-11cf-A4B0-00AA004A55E8} C:\ Windows\SysWOW64\vbscript.dll

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID {B54F3741-5B07-11cf-A4B0-00AA004A55E8} C:\ Windows\SysWOW64\vbscript.dll

0
Peter

一時ディレクトリで、私のbitrock_installer.logファイルには以下が含まれていました。

Executing cscript //NoLogo "C:\Users\MyUser\Local 
Settings\postgresql_installer_1b4eec8be6\prerun_checks.vbs"
Script exit code: 1

Script output:
Input Error: Can not find script file "C:\Users\MyUser\Local 
Settings\postgresql_installer_1b4eec8be6\prerun_checks.vbs".

Windowsには次のディレクトリ間にシンボリックリンクがあることがわかります。

  • C:\ Users\cpetrie\Local Settings\Temp
  • C:\ Users\cpetrie\AppData\Local\Temp

何らかの理由で、「TMP」および「TEMP」ユーザー変数が「AppData」パスではなく「Local Settings」パスを参照していました。これを変更すると、インストールの問題が修正されました。

0
Krys Petrie

最初にレジストリエディターに移動し、次にHKEY_CURRENT_USER>ソフトウェア> Microsoft> Windowsスクリプトホスト>設定>デフォルト> 1に値データを追加を選択し、OKをクリックします。できた!

0
yome

私はWindows 10でも同じ問題を抱えていましたが、実行可能ファイルをユーザー専用のTempフォルダーに書き込むことを許可するというOSの許可、またはその欠如が原因でした。

私の直感に従い、ユーザーのTempフォルダーをシステムと同じに変更して解決しました:Win + Pause/Breakでコンピューターのプロパティウィンドウを表示します(デスクトップのコンピューターアイコンを右クリックして、プロパティを手動で実行できます->プロパティ) ->左側のパネルで[システムの詳細設定]をクリックします-> [環境変数]をクリックし、[システム変数]-[変数]でTEMPおよびTMPの変数を見つけて、それらのパスをコピーします。次に、「管理者のユーザー変数」の「変数」で、TEMPおよびTMPの変数を見つけ、パスを貼り付けます。それはとにかくほとんど常に「C:\ Windows\TEMP」です;)

私が読んだこのサイトがあります: https://www.askvg.com/where-does-windows-store-temporary-files-and-how-to-change-temp-folder-location/

0
Alaster

notepad ++が.vbsファイルタイプを関連付けると発生します。 Notepad ++-> Preferences-> fileAssociationを開くことができます。登録されたextsから.vbsを削除します。 notepad ++を閉じます。 Postgresを再インストールしてください。

0
Muthu

Smad Avを無効にしても、それでも機能しませんでした。そこで、Smad Avトレイアイコンを右クリックして、[WindowsスクリプトとOfficeマクロを許可する(永続)]を選択しました。

0
Rexben