VBscript - SQL连接失败SQL Server不存在或访问被拒绝

时间:2010-10-08 08:57:35

标签: sql-server windows-7 vbscript permissions adodb

这很奇怪。 我有这个字符串连接到与运行计算机的域相同的SQLServer,并将username与employeeID进行比较。然后获取该行并将其转储到lokal计算机注册表中。这适用于Windows XP,但似乎不适用于Windows 7.

我收到了这个确切的错误消息:

Line:39
Char:1
Error: [DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied. 
Code: 80004005
Source: Microsoft OLE DB Provider for SQL Server. 

这是脚本本身。我删除了实际的服务器名称。估计没人需要那些。

Set oConn = CreateObject("ADODB.Connection")
oConn.Open "Provider=sqloledb;Data Source=mysqlserver04\mysqlserver04;Initial Catalog=orginfo;Integrated Security=SSPI"
sSQL = "select top 1 * from dbo.Mal_personinfo where empid = '" & EID & "'"
'wscript.echo sSQL
set rs = oConn.Execute(sSQL)

set oSystem = CreateObject("WScript.Shell")
for iTeller = 0 to rs.fields.count - 1
    Text = Text & rs.fields(iTeller).Name & "=" & rs.fields(iTeller).Value & " - "
    oSystem.RegWrite "HKCU\Software\MalData\" & rs.fields(iTeller).Name,rs.fields(iTeller).Value,"REG_SZ"
next
'wscript.echo Text

为什么这适用于Windows XP而不适用于Windows 7?

1 个答案:

答案 0 :(得分:1)

由于您使用的是集成安全性,请告诉我您运行该应用程序的帐户。您是否将该帐户作为用户添加到数据库中?如果没有,而且它是一个管理员帐户,你可能依赖于旧的“管理员可以做的一切”,而在Windows 7下则不再适用。

要对此进行测试,请尝试运行提升的应用程序(右键单击exe并以管理员身份运行。)这将使其保持“admin-ness”并可能将其放入数据库。如果可行,请不要继续提升它,而是转到SQL并将自己添加为用户。然后应用程序应该可以正常工作。