`
yangzhiyong77
  • 浏览: 958884 次
文章分类
社区版块
存档分类
最新评论

vbs脚本大全,配有实例

 
阅读更多

1 VBS取得本机IP
strComputer = "."
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")
Set IPConfigSet = objWMIService.ExecQuery("Select IPAddress from
Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE")
For Each IPConfig in IPConfigSet
If Not IsNull(IPConfig.IPAddress) Then
For Each strAddress in IPConfig.IPAddress
WScript.Echo strAddress
Next
End If
Next
2 取得本机电脑名
strComputer = "."
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")
Set colComputers = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
For Each objComputer in colComputers
Wscript.Echo objComputer.Name
Next
4 检查升级包
strComputer = "."
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")
Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
Wscript.Echo objOperatingSystem.ServicePackMajorVersion & "." &
objOperatingSystem.ServicePackMinorVersion
Next
5 检查 Hot Fix
strComputer = "."
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")
Set colQuickFixes = objWMIService.ExecQuery ("Select * from Win32_QuickFixEngineering")
For Each objQuickFix in colQuickFixes
Wscript.Echo "Description: " & objQuickFix.Description
Wscript.Echo "Hot Fix ID: " & objQuickFix.HotFixID
Next
6 检查本地管理员数目
Set objNetwork = CreateObject("Wscript.Network")
strComputer = objNetwork.ComputerName
Set objGroup = GetObject("WinNT://" & strComputer & "/Administrators,group")
For Each objUser in objGroup.Members
Wscript.Echo objUser.Name
Next
7 磁盘系统
strComputer = "."
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")
Set colDisks = objWMIService.ExecQuery("Select * from Win32_LogicalDisk Where DriveType =
3")
For Each objDisk in colDisks
Wscript.Echo "Disk drive: "& objDisk.DeviceID & " -- " & objDisk.FileSystem
Next
8 检测自动登录是否开启
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objReg=GetObject("winmgmts://" & strComputer & "/root/default:StdRegProv")
strKeyPath = "Software/Microsoft/Windows NT/CurrentVersion/WinLogon"
strValueName = "AutoAdminLogon"
objReg.GetDWORDValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName,dwValue
If dwValue = 1 Then
Wscript.Echo "Auto logon is enabled."
Else
Wscript.Echo "Auto logon is disabled."
End If
9 关闭自动登录
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objReg=GetObject("winmgmts://" & strComputer & "/root/default:StdRegProv")
strKeyPath = "Software/Microsoft/Windows NT/CurrentVersion/WinLogon"
strValueName = "AutoAdminLogon"
dwValue = 0
oReg.SetDWORDValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, dwValue
10 检查Guest是否禁用
Set objNetwork = CreateObject("Wscript.Network")
strComputer = objNetwork.ComputerName
Set objUser = GetObject("WinNT://" & strComputer & "/Guest")
If objUser.AccountDisabled Then
Wscript.Echo "The Guest account is disabled."
Else
Wscript.Echo "The Guest account is enabled."
End If
11 关闭Guest
Set objNetwork = CreateObject("Wscript.Network")
strComputer = objNetwork.ComputerName
Set objUser = GetObject("WinNT://" & strComputer & "/Guest")
If objUser.AccountDisabled Then
Wscript.Echo "The Guest account is already disabled."
Else
objUser.AccountDisabled = True
objUser.SetInfo
Wscript.Echo "The Guest account has been disabled."
End If
12 检索本地共象
strComputer = "."
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")
Set colShares = objWMIService.ExecQuery("Select * from Win32_Share")
For each objShare in colShares
Wscript.Echo "Name: " & objShare.Name
Wscript.Echo "Path: " & objShare.Path
Wscript.Echo "Type: " & objShare.Type
Next
13 脚本检索一个文档夹下.txt文档 汗哦 值得学习
Set objWMIService = GetObject("winmgmts://./root/cimv2")
Set colFiles = objWMIService.ExecQuery("SELECT * FROM CIM_DataFile WHERE Path = '//Documents
and Settings//Administrator//桌面//' AND Drive = 'E:' AND Extension = 'txt'")
Wscript.Echo "Number of .txt files found: " & colFiles.Count
for each aa in colFiles
NL=NL & vbcrlf & aa.name
next
Wscript.Echo NL
14 我如何向用户显示一个用来选择文档的对话框?
问:
嗨,Scripting Guy!有没有什么方法能够让我使用脚本向用户显示一个对话框,供用户选择文档使用?
-- BF
答:
您好,BF。假如您使用的是 Windows 2000,我们不知道实现此操作的方法,至少操作系统中没有内置这
样的方法。但假如您使用的是 Windows XP,情况就不同了。在 Windows XP 上,您能够使用
“UserAccounts.CommonDialog”对象向用户显示一个标准的“文档打开”对话框。能够用类似以下代码
的脚本:
Set objDialog = CreateObject("UserAccounts.CommonDialog")
objDialog.Filter = "All Files|*.*" objDialog.InitialDir = "C:/" intResult =
objDialog.ShowOpen
If intResult = 0 Then Wscript.Quit Else Wscript.Echo objDialog.FileName End If
这是个小脚本,所以让我们逐行进行解释吧。我们首先创建一个对 UserAccounts.CommonDialog 对象
的对象引用(名为“objDialog”)。接着,我们配置对话框的“筛选”属性。我们要显示任何文档,所
以我们将筛选配置成这样:
objDialog.Filter = "All Files|*.*"
假如我们只想显示文本文档,那该怎么办?在这种情况下,我们将使用以下筛选:
objDialog.Filter = "Text Files|*.txt"
您也许能够看出他是如何运行的:我们为文档类型提供说明 (Text Files),然后插入一个竖线分隔符
(|),最后使用标准的通配符来指示任何 .txt 文档 (*.txt)。是不是想默认显示 .txt 文档,然后为用
户提供查看任何文档的选项?那么能够使用以下代码:
objDialog.Filter = "Text Files|*.txt|All Files|*.*"
试一试,您就明白我们的意思了。
然后,我们指定默认文档夹。默认情况下,我们希望对话框显示位于驱动器 C 的根文档夹中的文档,所
以我们这样配置“InitialDir”属性:
objDialog.InitialDir = "C:/"
希望显示 C:/Windows 文档夹中的文档吗?那么能够使用以下代码:
objDialog.InitialDir = "C:/Windows"
不必担心:这是个真正的“文档打开”对话框,所以您能够随意单击,并且能够随时停下来。您从
C:/Windows 开始并不意味着您只能打开该文档夹中的文档。
最后,我们使用下面这行代码显示对话框:
intResult = objDialog.ShowOpen
现在,我们只需坐下来,等待用户选择文档并单击“确定”(或等待用户单击“取消”)。假如用户单
击“取消”,则变量 intResult 将被配置为 0。在我们的脚本中,我们检查 intResult 的值,假如是 0
,我们将只需要使用 Wscript.Quit 来终止此脚本。
但是假如用户实际上选择了文档并单击了“确定”,那该怎么办?在这种情况下,intResult 将被配置为
-1,“FileDialog”属性将被配置为所选文档的路径名。我们的脚本只回显路径名,这意味着我们将得到
类似以下内容的输出:
C:/WINDOWS/Prairie Wind.bmp
不用说,您并不局限于只回显文档路径。实际上,您能够使用 WMI、FileSystemObject 或一些其他技术
来绑定该文档,然后对其执行删除、复制、压缩或检索文档属性等操作 — 您对文档能够执行的操作差不
多都能够对他执行。
但无论如何,您都需要使用脚本。
顺便说一句,使用此方法,您一次只能选择一个文档,而不能按住“Ctrl”键选择多个文档。有一种方法
能够选择多个文档,至少在 XP 电脑上能够,但是我们只能将此问题留到以后的专栏中讨论了。
15 我如何确定进程是在哪个帐户下运行的?
问:
嗨,Scripting Guy!我有一个脚本,他返回关于电脑上运行的任何进程的信息,只是我不知道如何获
得这些进程在其下运行的用户帐户的名称。您能够帮助我吗?
-- DL
答:
您好,DL。是的,我们能够帮助您。确定进程是在哪个帐户下运行的,实际上相当简单,只是如何着手执
行此操作并不是特别显而易见的。假如您和大多数人相同,那么您可能会通过扫描 Win32_Process 类的
属性来查找名为 Account 或 UserName 或类似的属性。您很有可能很难找到。出现这种情况的原因是:
Win32_Process 没有能够告诉您进程在哪个帐户下运行的属性。
您需要使用“GetOwner”方法来捕获此信息。下面这个脚本能够告诉您 Microsoft Word (Winword.exe)
在哪个帐户下运行:
strComputer = "."Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")
Set colProcessList = objWMIService.ExecQuery _ ("Select * from Win32_Process Where Name =
'Winword.exe'")
For Each objProcess in colProcessList objProcess.GetOwner strUserName, strUserDomain
Wscript.Echo "Process " & objProcess.Name & " is owned by " _ & strUserDomain & "/" &
strUserName & "."Next
我们最感兴趣的是下面这行代码:
objProcess.GetOwner strNameOfUser, strUserDomain
我们在此所做的就是调用“GetOwner”方法。GetOwner 返回两个“输出参数”,一个返回负责该进程的
用户的名称,一个返回该用户所属的域。为捕获这两个输出参数,我们需要为 GetOwner 方法提供两个变
量。在这个示例脚本中,我们使用了两个分别叫做 strUserName 和 strUserDomain 的变量。名称能够随
意选择;您能够将变量称为 A 和 B 或 X 和 Y 或任何其他您想要的名称。
但是,变量的顺序不能随意配置:返回的第一个值总是用户名,第二个值总是域。这意味着,假如您希望
用 X 表示用户名,用 Y 表示域,那么您要确保您的代码像下面这行代码相同:
objProcess.GetOwner X, Y
调用 GetOwner 之后,我们就可直接回显进程名和任何者。请注意,我们能够稍微来点儿花样儿 – 使用
域/用户格式。这样,我们就能够回显类似于“fabrikam/kenmyer”的名称。
下面附带提供了另一个脚本,该脚本能够列出电脑上的任何进程连同各个进程的任何者:
strComputer = "."Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")
Set colProcessList = objWMIService.ExecQuery _ ("Select * from Win32_Process")
For Each objProcess in colProcessList objProcess.GetOwner strUserName, strUserDomain
Wscript.Echo "Process " & objProcess.Name & " is owned by " _ & strUserDomain & "/" &
strUserName & "."Next
可能有人感到奇怪,2005 年 1 月 3 日正好是 Microsoft 员工的正式休息日。那么今天为什么会有“嗨
,Scripting Guy!”专栏?这只能是由于 Microsoft 脚本专家表现出来的对工作的难以置信的奉献和投
入精神。或,也可能是由于某个脚本专家 – 还说不出他或她的名字 – 没有意识到今天是假日,所以
照常来了(而且是在早上 7 点啊!)。
16 能够将脚本的输出复制到剪贴板吗?
问:
嗨,Scripting Guy!有办法将脚本输出复制到剪贴板吗?
-- ZW, Marseilles, France
答:
您好,ZW.假如您不介意用一些疯狂的解决方法,那么实际上将脚本输出复制到剪贴板相当容易。首先,
您需要构造一个字符串,其中包含想要的输出。然后,创建 Internet Explorer 的一个实例,然后在其
中打开一个空白页。接着,利用 Internet Explorer 对象模型的内置功能,将字符串复制到剪贴板;特
别是, 能够使用 clipboardData.SetData 方法来实现这个技巧。将某些数据复制到剪贴板的示例脚本如
下:
strCopy = "This text has been copied to the clipboard."
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate("about:blank")
objIE.document.parentwindow.clipboardData.SetData "text", strCopy
objIE.Quit
运行脚本,然后打开 Notepad,然后单击“粘贴”;应该能够看到所复制的字符串。
顺便说一下,任何这一切都是在“幕后”发生的,Internet Explorer 并不会真的出现在屏幕上。这是因
为,在默认情况下,通过脚本创建的任何 IE 实例在运行时都是隐藏的,除非您利用如下语句将其显示出
来:
objIE.Visible = True

分享到:
评论

相关推荐

    VBS实例 44个 vbs脚本实例

    VBS实例 44个 vbs脚本实例, VBS取QQ-TM号码的自动登录命令行.vbs 妙用脚本清除电脑中的痕迹.vbs 后台字典文件管理器.vbs 定时关机.vbs 列出管理工具集.vbs 旁注查询工具.vbs 中文姓名笔画计算(VBS脚本版).vbs ...

    vbs 编程实例vbs 编程实例

    vbs 编程实例vbs 编程实例vbs 编程实例vbs 编程实例vbs 编程实例vbs 编程实例vbs 编程实例vbs 编程实例vbs 编程实例vbs 编程实例vbs 编程实例vbs 编程实例vbs 编程实例vbs 编程实例vbs 编程实例vbs 编程实例vbs 编程...

    VBS脚本对象实例大全.chm

    VBS脚本对象实例大全 包括所有VBS对象 和一些VBS开发实例

    VBS脚本代码经典实例

    压缩文件中包含了近100个本人收集和实际应用的所有脚本,代码详细,涉及Windows账号,AD域管理,操作系统,注册表,文件读写,网络,端口扫描等等vbs代码,经典快下哦,vbs交流请加群70539804,本人是群主

    wincc vbs脚本手册

    wincc vbs脚本手册 西门子 组态 脚本

    vbs脚本实例,关闭打开程序

    VBS脚本实例,用来判断指定的进程是否存在,关闭指定的进程,打开执行的程序

    vbs脚本手册

    VBS脚本运行库手册之一(磁盘操作) VBS脚本运行库手册之二(磁盘操作) VBS脚本运行库手册之三(管理文件夹) VBS脚本运行库手册之四(管理文件夹) VBS脚本运行库手册之五(文件夹属性) VBS脚本运行库手册之...

    VBS脚本大全

    VBS脚本常用代码整理,VBS是基于Visual Basic的脚本语言。VBS的全称是:Microsoft Visual Basic Script Edition。(微软公司可视化BASIC脚本版)

    wincc VBS脚本加密破解

    wincc VBS脚本加密破解

    helloworld vbs 脚本

    helloworld vbs 脚本hellohelloworld vbs 脚本world vbs 脚本helloworld vbs 脚本helloworld vbs 脚本helloworld vbs 脚本

    c++调用vbs脚本函数(Qt)

    Qt工程,c++代码调用vbs脚本函数,一个很简单的demo,参考学习

    按键精灵VBS脚本实例源码及详解

    按键精灵VBS脚本实例源码及详解按键精灵VBS脚本实例源码及详解按键精灵VBS脚本实例源码及详解

    VBS脚本常用代码大全2011整理.pdf

    VBS脚本常用代码大全2011整理.pdf

    WinCC常用C和VBS脚本.pdf

    WinCC常用的C脚本和VBS脚本对变量进行置位,复位,取反,读写变量;

    Vbs脚本编程简明教程

    Vbs脚本编程简明教程Vbs脚本编程简明教程Vbs脚本编程简明教程Vbs脚本编程简明教程Vbs脚本编程简明教程

    wincc 趋势曲线VBS脚本

    博途V15 wincc使用VBS脚本添加删除趋势曲线,文件为添加删除曲线脚本

    c#调用VBS脚本

    c#(winform)调用VBS脚本 c#(winform)调用VBS脚本

    js&vbs脚本实例

    js,vbs,脚本 js&vbs脚本实例

    vbs脚本手册.doc

    vbs脚本手册

    vbs脚本,设置默认打印机

    vbs脚本,设置默认打印机, 服务器管理员可以用于用户登录后指定默认打印机.

Global site tag (gtag.js) - Google Analytics