用于创建注册表项的vbscript正在运行,现在它不是。有任何想法吗?

时间:2011-06-06 13:08:14

标签: windows vbscript

我有一个在Windows Server 2003计算机上创建注册表项的vbscript。这个脚本已经运行了大约一年了,但最近它停止了工作。我认为Windows更新必须更改某些内容,可能是安全设置,从而不再允许执行此脚本。该脚本使用以下函数在HKEY_LOCAL_MACHINE \ SOFTWARE \ ODBC \ ODBC.INI \中为新的ODBC连接创建一个条目:

Function CreateRegKey (sComputer, hTree, sKey)
  Dim oRegistry
  Dim lResult   
  Set oRegistry = GetObject("winmgmts:{impersonationLevel=impersonate}//" & sComputer & "/root/default:StdRegProv")
  lResult = oRegistry.CreateKey(hTree, sKey)
  If (lResult = 0) And (Err.Number = 0) Then
     CreateRegKey = 0
  Else
     CreateRegKey = 1
     msgbox("Create Key " & sKey & " Failed")
  End If
  Set oRegistry = Nothing
End Function

此函数调用如下:

Const HKEY_LOCAL_MACHINE    = &H80000002
sPath = "SOFTWARE\ODBC\ODBC.INI\" & DataSourceName 
'Create ODBC entry
If (0 = CreateRegKey(sComputer, HKEY_LOCAL_MACHINE, sPath)) Then
  ....
Else    
  ....
End If

有没有人知道Windows更新可能导致此脚本突然停止工作?脚本在以下行停止:

lResult = oRegistry.CreateKey(hTree, sKey)

它不会出错或其他任何内容。它只是停在那条线上。

任何人都知道这里出了什么问题以及如何解决这个问题?感谢。

编辑:我现在得到CreateKey返回的错误号。它返回以下内容:

Err.Number:-2147023533

Err.Description:无法使用已在使用的ID启动新的登录会话

有谁知道造成这种情况的原因以及如何解决这个问题?感谢。

1 个答案:

答案 0 :(得分:1)

错误代码-2147023533(0x80070553)的描述为:

  

无法使用已在使用的ID启动新的登录会话。

搜索此代码和说明会显示:

尝试一下,看看它是否有帮助。