中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-19 04:11
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]请大家看看这个脚本有什么问题 查看 826 回复 8
楼 主 [求助]请大家看看这个脚本有什么问题 发表于 2008-08-07 13:19 ·  中国 四川 成都 联通
新手上路
积分 12
发帖 5
注册 2008-08-07 12:46
UID 122892
性别 男
状态 离线
找到一段代码,用于设置Windows下的网络连接认证属性
但执行的时候始终提示第2行字符1有8004100E的代码错误
请各位高手指正,谢谢!


const HKEY_LOCAL_MACHINE = &H80000002
Set oReg=GetObject("Winmgmts:rootdefault:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards"
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
Dim oreg2
Set oreg2 = WScript.CreateObject("WScript.Shell")
strKeyPath = "HKLM\" & strKeyPath & "\"
strKeyPath2 = "SOFTWARE\Microsoft\EAPOL\Parameters\Interfaces\"
binValue = Array(&H05, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H40, &H0d, &H00, &H00, &H00, &H20, &H00, &H00, &H00, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H0d, &H00, &H00, &H00, &H28, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H28, &H00, &H00, &H00, &H05, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00)
For Each subkey In arrSubKeys
strSubkeyPath = strKeyPath & subkey & "\ServiceName"
strValue = oreg2.RegRead(strSubKeyPath)
strSubkeyPath2 = strKeyPath2 & strValue
Returnvalue = oreg.SetBinaryValue(HKEY_LOCAL_MACHINE, strSubkeyPath2, "1", binValue)
If Returnvalue <> 0 Or Err.Number <> 0 Then
oreg.CreateKey HKEY_LOCAL_MACHINE, strSubkeyPath2
oreg.SetBinaryValue HKEY_LOCAL_MACHINE, strSubkeyPath2, "1", binValue
End If
Next
2 发表于 2008-08-07 13:26 ·  中国 江苏 苏州 吴江区 电信
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
UID 99089
性别 男
状态 离线
Set oReg=GetObject("Winmgmts:\\rootdefault\StdRegProv")
3 发表于 2008-08-07 13:36 ·  中国 四川 成都 联通
新手上路
积分 12
发帖 5
注册 2008-08-07 12:46
UID 122892
性别 男
状态 离线
Originally posted by huahua0919 at 2008-8-7 01:26 PM:
Set oReg=GetObject("Winmgmts:\\rootdefault\StdRegProv")

谢谢!
但是运行后提出“远程服务不存在或不可用”
4 发表于 2008-08-07 13:47 ·  中国 江苏 苏州 吴江区 电信
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
UID 99089
性别 男
状态 离线
这个应该是连接到远程主机注册表的。如果对方的注册表禁止远程修改则无效。
或则没指定主机则回出现这样的提示
5 发表于 2008-08-07 13:51 ·  中国 四川 成都 联通
新手上路
积分 12
发帖 5
注册 2008-08-07 12:46
UID 122892
性别 男
状态 离线
Originally posted by huahua0919 at 2008-8-7 01:47 PM:
这个应该是连接到远程主机注册表的。如果对方的注册表禁止远程修改则无效。
或则没指定主机则回出现这样的提示

Remote Registry服务已经开启
执行这个的目的是获取本机的网络连接,然后修改该网络连接的认证设置
执行的途径是通过域分发,不过现在就在脚本这里卡住了……
6 发表于 2008-08-07 14:03 ·  中国 江苏 苏州 吴江区 电信
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
UID 99089
性别 男
状态 离线
这个我盲
既然是通过域,好象有个ip策略不知可否分发?
7 发表于 2008-08-07 14:41 ·  中国 四川 成都 联通
新手上路
积分 12
发帖 5
注册 2008-08-07 12:46
UID 122892
性别 男
状态 离线
分发不存在任何问题,就是脚本一直无法被正确执行
也不知道脚本哪个地方错了……
8 发表于 2008-08-07 15:11 ·  中国 江苏 苏州 吴江区 电信
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
UID 99089
性别 男
状态 离线

Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")

strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards"
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
Dim oreg2
Set oreg2 = WScript.CreateObject("WScript.Shell")
strKeyPath = "HKLM\" & strKeyPath & "\"
strKeyPath2 = "SOFTWARE\Microsoft\EAPOL\Parameters\Interfaces\"
binValue = Array(&H05, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H40, &H0d, &H00, &H00, &H00, &H20, &H00, &H00, &H00, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H0d, &H00, &H00, &H00, &H28, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H28, &H00, &H00, &H00, &H05, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00)
For Each subkey In arrSubKeys
strSubkeyPath = strKeyPath & subkey & "\ServiceName"
strValue = oreg2.RegRead(strSubKeyPath)
strSubkeyPath2 = strKeyPath2 & strValue
Returnvalue = oreg.SetBinaryValue(HKEY_LOCAL_MACHINE, strSubkeyPath2, "1", binValue)
If Returnvalue <> 0 Or Err.Number <> 0 Then
oreg.CreateKey HKEY_LOCAL_MACHINE, strSubkeyPath2
oreg.SetBinaryValue HKEY_LOCAL_MACHINE, strSubkeyPath2, "1", binValue
End If
Next
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
Sosoul +1 2008-08-07 15:36
9 发表于 2008-08-07 15:36 ·  中国 四川 成都 联通
新手上路
积分 12
发帖 5
注册 2008-08-07 12:46
UID 122892
性别 男
状态 离线
Originally posted by huahua0919 at 2008-8-7 03:11 PM:
Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\defaul ...

呵呵,终于成功了!其实还差一行
我把完整的补充一下

const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards"
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
Dim oreg2
Set oreg2 = WScript.CreateObject("WScript.Shell")
strKeyPath = "HKLM\" & strKeyPath & "\"
strKeyPath2 = "SOFTWARE\Microsoft\EAPOL\Parameters\Interfaces\"
binValue = Array(&H05, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H80, &H04, &H00, &H00, &H00, &H20, &H00, &H00, &H00, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H33, &H11, &H22, &H0d, &H00, &H00, &H00, &H28, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H28, &H00, &H00, &H00, &H05, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00, &H00)
For Each subkey In arrSubKeys
strSubkeyPath = strKeyPath & subkey & "\ServiceName"
strValue = oreg2.RegRead(strSubKeyPath)
strSubkeyPath2 = strKeyPath2 & strValue
Returnvalue = oreg.SetBinaryValue(HKEY_LOCAL_MACHINE, strSubkeyPath2, "1", binValue)
If Returnvalue <> 0 Or Err.Number <> 0 Then
oreg.CreateKey HKEY_LOCAL_MACHINE, strSubkeyPath2
oreg.SetBinaryValue HKEY_LOCAL_MACHINE, strSubkeyPath2, "1", binValue
End If
Next
论坛跳转: