`
zheyiw
  • 浏览: 1022016 次
  • 性别: Icon_minigender_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 学习 1号基础教程 visual basic script

    这个“VBS学习1号基础教程”是为初学者准备的,旨在帮助他们掌握VBS的基本概念、语法结构以及常见应用。 在VBS的学习过程中,首先要了解的是它的基本语法。VBS是一种弱类型的语言,这意味着变量在声明时无需指定...

    VBS脚本学习指南,适合初学者

    ### VBS脚本学习指南——基础知识与应用 #### 一、VBS脚本概述 VBS,即Microsoft Visual Basic Script Edition(微软可视化BASIC脚本版),是Microsoft为Windows操作系统提供的一种轻量级脚本语言。它基于Visual ...

    VBS学习资料 实用的参考资料

    这份“VBS学习资料 实用的参考资料”包含了两个关键文件:“VBSCRIP5教程.CHI”和“VBSCRIP5教程.CHM”。.CHI 文件通常是帮助文件的索引,用于快速查找和导航教程内容;而 .CHM 文件是一种微软的 Compiled ...

    电脑学习vbs整蛊代码.vbs

    电脑学习vbs整蛊代码.vbs电脑学习vbs整蛊代码.vbs电脑学习vbs整蛊代码.vbs电脑学习vbs整蛊代码.vbs电脑学习vbs整蛊代码.vbs电脑学习vbs整蛊代码.vbs电脑学习vbs整蛊代码.vbs电脑学习vbs整蛊代码.vbs电脑学习vbs整蛊...

    vbs学习经典教程 Visual Basic Script

    "VBS学习经典教程 Visual Basic Script" VBS(Visual Basic Script)是一种基于 Windows 的脚本语言,它的全称是 Microsoft Visual Basic Script Edition。VBS 是 Visual Basic 的一个抽象子集,是系统内置的,用它...

    VBS也疯狂-好用的VBS学习工具及资料集

    1. VBS基础 VBS的基础知识涵盖了变量声明、数据类型、控制结构和函数。VBS支持的数据类型包括String(字符串)、Integer(整数)、Double(双精度浮点数)、Boolean(布尔值)、Date(日期/时间)、Object(对象)等...

    学习VBS的初级入门教程

    ### 学习VBS的初级入门教程 #### VBS简介 VBS,即Microsoft Visual Basic Scripting Edition,是由微软开发的一种脚本语言。它是一种轻量级的语言,...希望本文能够为你提供一个良好的起点,开启你的VBS学习之旅。

    VBS学习笔记

    ### VBS学习笔记知识点概述 本篇学习笔记围绕VBS(Visual Basic Script Edition)这一脚本语言展开,详细记录了作者在学习过程中整理的核心概念、语法结构与实用技巧。VBS是一种广泛应用于Windows系统下的自动化...

    VBS学习资料

    VBS学习资料的涵盖范围广泛,包括但不限于以下几个核心知识点: 1. **基础语法**:VBS使用类似的VB语法,包括变量声明(Dim、Const)、数据类型(String、Integer、Date等)、流程控制(If...Then...Else、For......

    VBS学习(入门)

    掌握VBS,意味着能够更高效地处理日常计算机操作中的重复任务,提高工作和学习效率。然而,由于VBS的安全性限制和跨平台能力的缺失,在现代编程领域,它更多地被视为一种辅助工具而非主流编程语言。尽管如此,VBS在...

    教程名称_VBS脚本语言学习(八)

    在"教程名称_VBS脚本语言学习(八)"中,我们将深入探讨VBS的核心概念、语法结构以及实际应用。 一、VBS基础 1. 变量与数据类型:VBS支持多种数据类型,包括String(字符串)、Integer(整型)、Double(双精度浮点...

    vbs学习教程

    这个“vbs学习教程”应该包含了一系列关于VBS的基础知识,帮助初学者快速入门。 首先,VBS是一种解释型的、面向对象的脚本语言,它不需要编译就能直接运行。在Windows环境中,VBS通常与Windows Script Host (WSH) ...

    vbs学习工具

    本压缩包中的"vbs学习工具"包含了帮助文档和电子书,是学习VBS的宝贵资源。 一、VBS基础 VBS是一种弱类型的语言,它使用变量无需预先声明类型,自动根据赋值确定。基本数据类型包括:字符串(String)、数值...

    vbs实例,方便大家学习vbs

    vbs实例,方便大家学习vbs,提高你的编程水平

    vbs的学习文件

    dim a1,a2,b1,b2,c1,c2  a1=2:a2=4  b1=32:b2=67  c1=12:c2=898  msgbox co(a1,a2)  msgbox co(b1,b2)  msgbox co(c1,c2)  function co(t1,t2) '我们使用function定义了一个新的函数 ...

    一个十分详细的VBS学习笔记

    VBS,全称为Visual Basic Script,是一种轻量级的脚本语言,主要用于Windows环境下的自动化任务和网页交互。本文将详细解析VBS中的循环语句...继续学习VBS,你将能够熟练地运用这些基础概念来创建复杂的自动化脚本。

    vbs学习资源自用1111

    vbs学习资源自用1111

    VBS学习资料.exe

    VBS学习资料.exe

    VBS vbs脚本实现获取屏幕分辨率.vbs

    亲测可用! 很有意思的小脚本,VBS vbs脚本实现获取屏幕分辨率,大家一起学习分享啊! 本人将会不定期的上传一些经过测试可用的vbs小程序。

    vbs bat 脚本学习资料汇编 chm doc

    【标题】"vbs bat 脚本学习资料汇编 chm doc" 涵盖了VBScript(Visual Basic Script)和批处理(BAT)脚本的基础与进阶知识,结合了多种格式的文档资源,如CHM(Microsoft HTML Help)和DOC(Microsoft Word文档),...

Global site tag (gtag.js) - Google Analytics