我试图在我的WinXP机器上安装PostgreSQL 9(postgresql-9.0.3-1-windows.exe),并在开始时得到以下错误:
一些search引擎提出了一些build议,build议Windows脚本宿主可能被禁用 。 我已经检查过,WSH肯定是启用的,所以它一定是别的。 问题是,什么?
我可以看到一个名为prerun_checks.vbs的文件是在%TEMP%中创build的,当我尝试手动运行这个文件时,我得到以下结果:
这看起来像一个权限错误。 然而,我是一个pipe理员,我已经给了自己完全控制的临时文件夹,它仍然无法正常工作。
任何帮助赞赏。
在我的情况下,该解决方案与NotePad++
是打开.vbs
文件的默认应用程序有关。 如果你有相同的情况,这里有一个精心设计的解决方案:
http://igordcard.blogspot.co.il/2012/03/unable-to-write-inside-temp-environment.html
简而言之,在注册表中,您需要转到HKEY_CLASSES_ROOT\.vbs
,并将(Default)
条目重新设置为字符串VBSFile
。
正如我上面提到的那样,我们的IT负责人出现了,立刻就知道问题所在:它是McAfee。 它阻止任何东西在TEMP文件夹中运行,包括Windows脚本宿主脚本。 在安装过程中禁用McAfee可为我解决问题。
所以,如果你看到这个问题,请尝试禁用你的反病毒。
下一页的答案帮助了我。 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需要与我公司的安全团队的特殊票据实际上…所以我安装使用二进制文件,遵循本指南的有用的指南 。
总之,从这里下载二进制文件,解压,进入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
文件夹的完整路径。
为了防止进一步的问题,您还应该排除数据目录(Postgres放置其数据的地方)被病毒扫描程序扫描
在我的情况下,这是另一个应用程序,导致这个问题。 不是记事本++。 对于遇到此问题的其他人,可以先删除C:\Documents and Settings\UserName\Local Settings\Temp
所有文件,以便在再次尝试安装postgresql时能够轻松找到bitrock_installer.log
并查看其中的说明。 将注册表的HKEY_CLASSES_ROOT
, .vbs
部分中的(默认)键更改为VBSFile解决了它。
试图在Windows 7 64位上安装32位版本时遇到此问题。
试用64位的安装套件没有提供任何错误,但其他人提供的解决方案也是有效的。
在我的情况下,我已经下载迈克菲清除工具MCPR(迈克菲消费者产品删除) ,清除了McAfee卸载后的尾部。
先前具有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
以上所有都不适合我。 我得到一个错误,如:
脚本输出: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
检查系统TEMP目录中的日志(如果安装程序能够写入)。 有很多关于错误的信息。
我的问题是,VBS文件与文本编辑器(可能反病毒软件是罪魁祸首)相关联。
在这里你可以找到一些reg编辑脚本来恢复默认行为: http : //www.nilpo.com/2009/07/windows-xp/restoring-vbs-vbscript-script-file-file-file-associations/#more- 107
干杯
记事本++关联.vbs文件类型时发生。 您可以打开记事本++ – >首选项 – > fileAssociation从注册的exts中删除.vbs。 关闭记事本++。 尝试再次安装Postgres。
我的问题是Smad-Av禁用Windows脚本运行,只有通过我记得这个线程。 我只需右键单击Smad-Av图标并选择Windows Script和Macro Forever。
在我的情况下更改注册表中的HKEY_CLASSES_ROOT,.vbs部分(默认)键到VBSFile解决它。 BlueFish抓取.vbs文件关联。
我的解决方案与#5类似,并解释了McAfee如何以及为什么会破坏您的vbscript注册。
显然,当我在我的电脑上安装了McAfee防病毒软件时,就会使Windows脚本主机需要运行.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”。
迈克菲显然安装了一个劫持vbscript.dll的DLL,以便尝试保护坏脚本运行。 当我卸载McAfee赞成微软
安全基础知识,迈克菲没有恢复注册表路径(“不是我的问题”),当然,在卸载过程中,McAfee DLL,被从该位置删除,所以vbscript.dll注册实际上指向NOWHERE和NOTHING。
编写防病毒软件必须有更好的方法,以便在卸载用户的操作系统,关闭功能或更换注册时不会禁用该操作系统。 请参阅以下内容:
https://kc.mcafee.com/corporate/index?page=content&id=KB71660
我有一个64位的操作系统。 注册表路径在多个位置被更改。
常规类ID应该指向“C:\ Windows \ System32 \ vbscript.dll”64位文件。
“Wow6432Node”注册表路径应该指向“C:\ Windows \ SysWOW64 \ vbscript.dll”32位文件。
是的,64位位于“32”文件夹中,而32位位于“SysWOW64”文件夹中。 微软在迁移到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”路径。 改变这个固定我的安装问题。