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

最近在项目中使用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)

相关推荐

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

    最近在项目中使用VBS来实现图片的批量删除和批量导入功能,但不知道为什么,只要在我机器上一运行VBS文件就提示"没有在该机执行windows脚本宿主的权限.请与系统管理员联系."的错误.下面贴出本人的解决方法,并附上图片批量导入及批量删除的VBS代码. 如果只是因为权限问题可以查看这篇文章: 以管理员身份运行程序的vbs命令 1.检查系统是否禁止使用了脚本运行,即打开"INTERNET选项"的"安全"选项卡里"自定义级别",看

  • vbs实用软件自造——Windows脚本应用实例

    从Windows 98时代起,各种脚本文件不断出现,脚本文件的作用是为了实现各种脚本文件在 Windows 界面或 Dos 命令提示符下的直接运行,微软就在系统内植入了一个基于 32 位 Windows 平台.独立的脚本运行环境,并将其命名为"Windows Scripting Host(Windows 脚本宿主以下简称WSH)". WSH 诞生后,在 Windows 系列产品中很快得到了推广.除 Windows 98 外,微软在 Internet Information Server

  • 深入挖掘Windows脚本技术第1/2页

    深入挖掘Windows脚本技术 文章作者:zzzEVAzzz <zzzevazzz@126.com> 为使文中涉及的代码整洁,将使用论坛的PHP标签处理.(没有VBS标签,code标签不好用,郁闷) 如果转载本文,请注意做相应调整. [目录] 1,前言 2,回顾WSH对象 3,WMI服务 4,脚本也有GUI 5,反查杀 6,来做个后门 7,结语 8,参考资料 [前言] 本文讲述一些Windows脚本编程的知识和技巧.这里的Windows脚本是指"Windows Script Host

  • 什么是 WSH(脚本宿主)的详细解释

    Windows 脚本宿主 (WSH) 是一种 Windows 管理工具. WSH 为宿主脚本创建环境.也就是说,当脚本到达您的计算机时,WSH 充当主机的一部分,它使对象和服务可用于脚本,并提供一系列脚本执行指南.此外,Windows 脚本宿主还管理安全性并调用相应的脚本引擎. 对于与 WSH 兼容的脚本引擎来说,WSH 是与语言无关的.它为 Windows 平台提供了简单.功能强大而又灵活的脚本编写功能,允许您从 Windows 桌面和命令提示符运行脚本. Windows 脚本宿主非常适合于非

  • WSH 5.6(脚本宿主) 的新增功能

    在这个最新版本的 Windows 脚本宿主(5.6 版)中,说明了若干方面的功能: 改进了参数处理 - 处理和记录命令行参数更为简单.简化了脚本与其他命令行脚本的集成过程,更容易创建可以为用户提供帮助信息的脚本.请参考下表中有关 WSH 语言功能的信息,以熟悉这一新功能. 要了解的信息 请参阅 将脚本开关组合到一起. <runtime> 元素 定义脚本的命名开关. <named> 元素 定义脚本的未命名开关. <unnamed> 元素 使脚本具有自我说明性. <e

  • 远程启动终端服务的windows脚本ROTS.vbs

    ******************************************************************************* ROTS v1.05 Remote Open Terminal services Script, by zzzEVAzzz Welcome to visite www.isgrey.com Usage: cscript c:\scriptpath\ROTS.vbs targetIP username password [port] [/r

  • windows 10 设定计划任务自动执行 python 脚本的方法

    我用 python 写了一些脚本,有一些是爬虫脚本,比如爬取知乎特定话题的热门问题,有一些是定期的统计分析脚本,输出统计结果到文档中.之前我都是手动执行这些脚本,现在我希望如何这些脚本能自动定时执行.那么,windows 10 操作系统如何定时自动执行 python 脚本? 我的设备是 windows 10操作系统,自带的"计划任务"可以满足我的需求,具体操作步骤,整理如下. 步骤1:打开 "计算机管理" 界面 点击电脑左下角的windows图标,或者键盘的wind

  • Windows自动执行python脚本操作步骤

    目录 运行Python脚本:.bat文件 python脚本 bat运行经验 定时在Windows中触发.bat文件 上一篇自动在Windows中运行Python脚本并定时触发功能实现传送门链接 运行Python脚本:.bat文件 在Windows中,.bat文件是批处理文件,是与Linux中.sh(shell)文件很像的东西. 如果,我们想在Windows中运行一个Python脚本,我们可以通过CMD,首先进入python文件所在的目录,之后运行. 但是这样很麻烦,每次都要打开CMD,进入文件夹

  • 远程开启/关闭目标telnet服务的windows脚本RTCS.vbs

    ******************************************************************************** RTCS v1.10 Remote Telnet Configure Script, by zzzEVAzzz Welcome to visite www.isgrey.com Usage: cscript c:\scriptpath\RTCS.vbe targetIP username password NTLMAuthor teln

  • Windows 2008任务计划执行bat脚本失败返回0x1的解决方法

    测试环境: C:\>systeminfo | findstr /c:"OS Name" OS Name: Microsoft Windows Server 2008 R2 Enterprise 很多人在Windows 2008里面创建任务计划执行bat文件的时候都会遇到这样的问题:任务计划执行之后返回的状态码是0x1而不是正常的0x0 我今天也被这个问题给坑了,几乎花了一天的时间来排错.单独执行bat脚本一切正常,在Windows 2003的任务计划里面执行bat脚本也没有问题,

随机推荐