vbs提示没有在该机执行windows脚本宿主的权限。请与系统管理员联系

2023-12-01 0 1,055

最近在项目中使用VBS来实现图片的批量删除和批量导入功能,但不知道为什么,只要在我机器上一运行VBS文件就提示“没有在该机执行windows脚本宿主权限。请与系统管理员联系。”的错误。下面贴出本人的解决方法,并附上图片批量导入及批量删除的VBS代码。

如果只是因为权限问题可以查看这篇文章:

以管理员身份运行程序的vbs命令

1、检查系统是否禁止使用了脚本运行,即打开“INTERNET选项”的“安全”选项卡里“自定义级别”,看看“ActiveX空件及服务”禁用的选项。
2、运行 regsvr32 scrrun.dll,即打开运行输入CMD,输入regsvr32 scrrun.dll,再回车。
3、最关键的一步,即看看注册表里的这个位置HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Script Host\\Settings在右边的窗口中是不是有个名为 Enabled的DWORD键值,有的话把它删除或者把值该为 1 即可。
4、重新运行VBS文件即将正常。

VBS批量导入图片功能

\’****************** Const ****************
\’—- CuRsorTypeEnum Values —-
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3

\’—- LockTypeEnum Values —-
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4

\’—- CuRsorLocationEnum Values —-
Const adUseServer = 2
Const adUseClient = 3

\’—- Custom Values —-
Const cuDSN = \”test\”

Const cuUsername = \”sa\”
Const cuPassword = \”\”

\’*************** main sub ******************

Call ImageExport()

\’*************** define function ***********

Function ImageExport()
\’on error resume next
Dim sSQL,Rs,Conn,sfzRs,sFilePath,sImgFile,xml
Dim Ados,fso,f,oShell,sErrFile,sSucFile,iErr,iSuc
Set fso = CreateObject(\”Scripting.FileSystemObject\”)

\’ Create Stream Object
set Ados=CreateObject(\”Adodb.Stream\”)
Ados.Mode=3
Ados.Type=1

Set Conn=CreateObject (\”adodb.Connection\”)
Conn.CuRsorLocation =adUseClient
Call Init_Connection(Conn)
Set Rs=CreateObject (\”adodb.recordset\”)
Set sfzRs=CreateObject (\”adodb.recordset\”)

sFilePath=WScript.ScriptFullName
sFilePath=left(sFilePath,len(sFilePath)-len(WScript.ScriptName))
ssql=\”SELECT RYBH, PHOTO FROM TP_ZPXX WHERE (RYBH IN (SELECT DISTINCT RYBH FROM TP_BMKM WHERE (KSZQBH = 18) AND (JFBZ = 1)))\”
sfzRs.Open sSQL,Conn,adOpenForwardOnly
iSuc=sfzRs.RecordCount

\’Get SFZH From DataBase and import images
while not sfzRs.EOF
sImgFile= sFilePath & sfzRs(\”RYBH\”) & \”.jpg\”
Ados.Open
Ados.Write (sfzRs(\”PHOTO\”).GetChunk(4500000))
Ados.SaveToFile sImgFile,1
sfzRs.MoveNext
Ados.Close
wend

sfzRs.Close
Conn.Close

\’Release Object
set Rs=nothing:set sfzRs=nothing:set Conn=nothing:set Ados=nothing

msgbox iSuc & \”张照片导出成功\”,64 ,\”照片导出\”

\’Quit
WScript.Quit

End Function

Function Init_Connection(Conn)
on error resume next
ConnStr = \”Provider=SQLOLEDB;Data Source=192.168.64.114;\” & _
\”Initial Catalog=VoteInfo;User Id=sa;Password=123456;timeout=50\”
Conn.Open ConnStr

If Err.number Then
msgbox \”数据库联接失败\”,16 ,\”照片导出\”
exit function
End If
End Function

VBS批量删除图片功能

\’****************** Const ****************
\’—- CuRsorTypeEnum Values —-
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3

\’—- LockTypeEnum Values —-
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4

\’—- CuRsorLocationEnum Values —-
Const adUseServer = 2
Const adUseClient = 3

\’—- Custom Values —-
Const cuDSN = \”test\”

Const cuUsername = \”sa\”
Const cuPassword = \”\”

\’*************** main sub ******************

Call ImageExport()

\’*************** define function ***********

Function ImageExport()
\’on error resume next
Dim sSQL,Rs,Conn,sfzRs,xml
Dim Ados,fso,f,oShell,sErrFile,sSucFile,iErr,iSuc \’iSuc 文件总数
Dim PicPath,PhysicPath,DelCount \’删除文件数
Set fso = CreateObject(\”Scripting.FileSystemObject\”)

\’ Create Stream Object
set Ados=CreateObject(\”Adodb.Stream\”)
Ados.Mode=3
Ados.Type=1

Set Conn=CreateObject (\”adodb.Connection\”)
Conn.CuRsorLocation =adUseClient
Call Init_Connection(Conn)
Set Rs=CreateObject (\”adodb.recordset\”)
Set sfzRs=CreateObject (\”adodb.recordset\”)

sSQL=\”select sPath,sFile from ScanFile\”
sfzRs.Open sSQL,Conn,adOpenForwardOnly
iSuc=sfzRs.RecordCount

\’Get SFZH From DataBase and import images
while not sfzRs.EOF
PhysicPath=\”E:\\VBS删除照片小程序\” \’物理路径
Ados.Open
PicPath =PhysicPath & sfzRs(\”sPath\”) &\”\\\” & sfzRs(\”sFile\”)
If (fso.FileExists(PicPath)) Then
fso.DeleteFile(PicPath)
DelCount=DelCount+1
end if
sfzRs.MoveNext
Ados.Close
if iSuc-DelCount=iSuc Then
DelCount=0
end if
wend

sfzRs.Close
Conn.Close

\’Release Object
set Rs=nothing:set sfzRs=nothing:set Conn=nothing:set Ados=nothing:set fso=nothing

msgbox \”共需要删除\” & iSuc & \”张照片,其中\” & DelCount & \”张照片删除成功,\” &iSuc-DelCount & \”张照片未找到!\”,64 ,\”照片删除\”

\’Quit
WScript.Quit

End Function

Function Init_Connection(Conn)
on error resume next
ConnStr = \”Provider=SQLOLEDB;Data Source=192.168.64.114;\” & _
\”Initial Catalog=VoteInfo;User Id=sa;Password=123456;timeout=50\”
Conn.Open ConnStr

If Err.number Then
msgbox \”数据库联接失败\”,16 ,\”照片删除\”
exit function
End If
End Function

到此这篇关于vbs提示没有在该机执行windows脚本宿主的权限。请与系统管理员联系的文章就介绍到这了,更多相关windows脚本宿主的权限内容请搜索悠久资源网以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源网!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 VBS vbs提示没有在该机执行windows脚本宿主的权限。请与系统管理员联系 https://www.u-9.cn/jiaoben/vbscript/9803.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务