WinXPマシンにPostgreSQL 9(postgresql-9.0.3-1-windows.exe)をインストールしようとすると、最初に次のエラーが表示されます。
グーグルでいくつかのアドバイスを提案した Windows Scripting Hostが無効になっている可能性があります 。私は確認しましたが、WSHは確実に有効になっているので、別のものでなければなりません。質問は、何ですか?
prerun_checks.vbsというファイルが%TEMP%に作成されていることを確認できます。これを手動で実行しようとすると、次のようになります。
権限エラーのようです。しかし、私は管理者であり、tempフォルダの完全な制御権を自分に与えましたが、それでも機能しません。
助けてくれてありがとう。
上記の質問を終えていたところ、ITの問題が発生し、問題はすぐにわかりました。それはMcAfeeです。 anythingがWindows Scripting Hostスクリプトを含むTEMPフォルダーで実行されるのを防ぎます。インストール中にMcAfeeを無効にすると、問題が解決しました。
したがって、この問題が発生した場合は、ウイルス対策を無効にしてみてください。
私の場合、解決策は、NotePad++
ファイルを開くためのデフォルトのアプリケーションである.vbs
に関連していました。同じ状況の場合は、複雑な解決策があります。
http://igordcard.blogspot.co.il/2012/03/unable-to-write-inside-temp-environment.html
簡単に言えば、レジストリでHKEY_CLASSES_ROOT\.vbs
に移動し、(Default)
エントリを文字列VBSFile
に戻す必要があります。
次のページの答えは私を助けました。 http://forums.enterprisedb.com/posts/list/3040.page
実際、HKEY_LOCAL_MACHINE-> SOFTWARE-> Classes-> CLSID-> B54F3741-5B07-11cf-A4B0-00AA004A55E8}の3つのエントリがあり、最初のエントリを上記のように設定すると、動作します。
他の誰かがこれに関する情報を探していて、ここで運がない場合は、以下を参照することをお勧めします。
http://wiki.postgresql.org/wiki/Troubleshooting_Installation
メーリングリストのフォローアップについては、以下をお読みください:
まあ、私の場合は何もうまくいきませんでした。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
フォルダーへの絶対パスです。
上記のすべてが私にはうまくいきませんでした。次のようなエラーが発生しました:
スクリプト出力: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
私の問題は、Windowsスクリプトの実行を無効にするSmad-Avでした。このスレッドを通過した後でないと、覚えていませんでした。私はSmad-Avアイコンを右クリックしてAllow Windows-Script&Office-Macro(Permanent)を選択しました。
さらなる問題を回避するには、ウイルススキャナーによるスキャンからデータディレクトリ(Postgresがデータを置く場所)も除外する必要があります。
私の場合、HKEY_CLASSES_ROOTの(デフォルト)キーを変更すると、レジストリの.vbsセクションがVBSFileに解決されました。 BlueFishは、.vbsファイルの関連付けを取得します。
Windows 7 64ビットに32ビットバージョンをインストールしようとすると、この問題が発生しました。
64ビットのインストールキットを試してもエラーは発生しませんでしたが、他のユーザーが提示した解決策も有効です。
私の場合、問題を引き起こしたのは別のアプリケーションでした。 Notepad ++ではありません。この問題が発生した他のユーザーは、最初にC:\Documents and Settings\UserName\Local Settings\Temp
内のすべてのファイルを削除することで診断できるため、postgresqlを再度インストールしてその手順を表示すると、bitrock_installer.log
を簡単に見つけることができます。 。レジストリのHKEY_CLASSES_ROOT
、.vbs
セクションの(デフォルト)キーをVBSFileに変更すると解決しました。
これは古いスレッドですが、Windows 10でも同じ問題が発生しました。
TEMP環境パス内に書き込むことができません
次の手順で解決
wscript.exe
を実行します現在のユーザーの修正
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をインストールできます
私は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
私の場合、マカフィーの削除ツールをダウンロードしました 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を正常にインストールしました
レジストリをいじる前に、WSHが実際に無効になっているかどうかを確認します。そのためには、DOSボックスでwscript.exeを実行します。
「Windows Script Host Settings」というダイアログボックスが表示された場合は、WSHが有効になっており、PostgreSQLのインストールに関する問題は他の問題に関連しているはずです。 「このマシンではWindowsスクリプトホストアクセスが無効になっています。詳細は管理者にお問い合わせください」というエラーボックスが表示される場合、WSHは無効になっており、PostgreSQLのインストールに関する問題はそれに関連している(または関連していない)可能性があります。
私にとって、私の問題はWindowsスクリプトに関連していました。タスクバーの非表示のアイコンにあるsmadavアイコンを右クリックし、[WindowsスクリプトとOfficeマクロを許可する(永続)]をオンにすることでこれを解決しました。次に、PostgreSQLセットアップを再度ダブルクリックします。
システムのTEMPディレクトリのログを確認します(インストーラーがログを書き込むことができる場合)。エラーに関する多くの情報があります。
私の問題は、VBSファイルがテキストエディターに関連付けられていることでした(おそらくウイルス対策ソフトウェアが原因です)。
ここでは、デフォルトの動作に戻すためのいくつかのreg編集スクリプトを見つけることができます。 http://www.nilpo.com/2009/07/windows-xp/restoring-vbs-vbscript-script-file-file-associations /#more-107
乾杯
私のソリューションは#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
一時ディレクトリで、私の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には次のディレクトリ間にシンボリックリンクがあることがわかります。
何らかの理由で、「TMP」および「TEMP」ユーザー変数が「AppData」パスではなく「Local Settings」パスを参照していました。これを変更すると、インストールの問題が修正されました。
最初にレジストリエディターに移動し、次にHKEY_CURRENT_USER>ソフトウェア> Microsoft> Windowsスクリプトホスト>設定>デフォルト> 1に値データを追加を選択し、OKをクリックします。できた!
私は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/
notepad ++が.vbsファイルタイプを関連付けると発生します。 Notepad ++-> Preferences-> fileAssociationを開くことができます。登録されたextsから.vbsを削除します。 notepad ++を閉じます。 Postgresを再インストールしてください。
Smad Avを無効にしても、それでも機能しませんでした。そこで、Smad Avトレイアイコンを右クリックして、[WindowsスクリプトとOfficeマクロを許可する(永続)]を選択しました。