5个有用的vb windows脚本,可自动使用计算机

从网站监控到系统报告,学习如何用这些神奇的VB脚本自动化所有事情,你现在可以在Windows中编写代码。...

无论您是IT分析师还是普通计算机用户,都可能需要经常在PC上执行许多任务。VB脚本是按比例缩小的Visual Basic程序,用作Windows脚本,可以执行任何操作,从调出有关计算机硬件的重要信息,到停止和启动服务或重置网络卡片。

vb-scripts-automate-windows

可以学习如何以正常的方式完成所有这些单独的事情,或者使用批处理文件来完成它们。但是VB脚本比批处理脚本好,因为它们更灵活。如果您将以下脚本存储在一个公共位置,以便在需要时快速到达,那么您可以在很短的时间内完成这些任务。您只需双击脚本,回答一个提示,任务就完成了。

看看下面的vbwindows脚本,如果你看到任何你想使用的,只要复制并粘贴到记事本或其他编码笔记工具的脚本,并保存为WSF文件。

准备windows脚本

只要您用.WSF扩展名命名了文件,下面详细描述的每个脚本都将只需双击即可运行,并且您还将代码从以下开始括起来:

<job>
<script language="VBScript">

并用以下代码结束代码:

WScript.Quit
</script>
</job>

这可以确保Windows能够识别脚本所用的语言,并正确地处理它。

1使用windows脚本获取计算机信息

Windows提供了称为WMI或Windows Management Instrumentation的东西,它为脚本提供了访问操作系统组件的接口。实际上,您可以对WMI运行查询,以获取有关系统的当前实时信息。Microsoft提供了您可以对系统进行的所有查询类别的完整列表。

我们已经介绍了如何使用VBA将计算机信息拉入Excel,但是您可以使用Excel之外的简单VB脚本来完成同样的操作。

在本例中,我们将查询系统中的处理器信息(系列、**商和核心数)、电池信息(描述和状态)和逻辑磁盘信息(名称、剩余可用空间和总体大小)。然后我们将所有这些信息输出到一个CSV文件中,以便于查看。

第一步是设置用于输出到CSV文件的FileSystemObject,并创建文件:

Set oFSO = CreateObject("Scripting.FileSystemObject")
sFile1 = "MyComputerInfo.csv"
Set oFile1 = oFSO.CreateTextFile(sFile1, 1)

下一步是设置WMI查询并执行它:

strQuery = "SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor"
Set colResults = GetObject("winmgmts://./root/cimv2").ExecQuery( strQuery )

最后,对结果进行排序并将信息输出到CSV文件。如果你想让自己更漂亮,可以在这篇文章的前面加上几行字来帮助你的输出文件看起来更好:

oFile1.WriteLine "Processor Information"
oFile1.WriteLine "------"
For Each objResult In colResults
strResults = "Family:,"+CStr(objResult.Family)
oFile1.WriteLine strResults
strResults = "Manufacturer:,"+CStr(objResult.Manufacturer)
oFile1.WriteLine strResults
strResults = "Number of Cores:,"+CStr(objResult.NumberOfCores)
oFile1.WriteLine strResults
Next

如果现在运行代码,则输出如下:

windows script computer information

在接下来的两段代码中,您只需重复并更改查询以查找附加信息。以下是电池信息查询:

oFile1.WriteLine ""
strQuery = "SELECT Description,Status FROM Win32_Battery"
Set colResults = GetObject("winmgmts://./root/cimv2").ExecQuery( strQuery )
oFile1.WriteLine "Battery Information"
oFile1.WriteLine "------"
For Each objResult In colResults
strResults = "Status:,"+CStr(objResult.Description)
oFile1.WriteLine strResults
strResults = "Description:,"+CStr(objResult.Status)
oFile1.WriteLine strResults
Next

下面是逻辑磁盘查询的下一节:

oFile1.WriteLine ""
strQuery = "Select Name, FreeSpace, Size from Win32_LogicalDisk"
Set colResults = GetObject("winmgmts://./root/cimv2").ExecQuery( strQuery )
oFile1.WriteLine "Disk Information"
oFile1.WriteLine "------"
'Identify the Logical Disk Space
For Each objResult In colResults
strResults = "Name:,"+CStr(objResult.Name)
oFile1.WriteLine strResults
strResults = "Free Space:,"+CStr(objResult.FreeSpace)
oFile1.WriteLine strResults
strResults = "Disk Size:,"+CStr(objResult.Size)
oFile1.WriteLine strResults
Next

最后,记住通过关闭文件并将对象设置为“Nothing”来关闭代码:

oFile1.Close
Set oFile1 = Nothing
set colResults = Nothing
strResults = ""

将所有代码放入新的.WSF文件中,运行它,您的输出如下所示:

只需将上面的查询交换为您想要获取信息的任何其他计算机设备或软件,您只需单击鼠标即可随时获得完整的系统报告。

2停止和启动服务

有时某些服务会出现问题,需要快速重启才能重新正常运行。当您被迫运行有时有点缺陷的服务器软件时,尤其如此。

如果您想在服务重启过程中节省一分钟左右的时间,只需将下面的脚本存储在一些方便的地方。它将提示您输入要重新启动的服务的名称,然后它将完全这样做。

由于停止和启动服务需要管理权限,因此需要将以下代码放在脚本的开头,以赋予脚本提升的权限:

If Not WScript.Arguments.Named.Exists("elevate") Then
CreateObject("Shell.Application").ShellExecute WScript.FullName _
, """" & WScript.ScriptFullName & """ /elevate", "", "runas", 1
WScript.Quit
End If

完成后,添加其余代码以运行用户输入的输入框,启动命令窗口,并向其发送“net stop”和“net start commands”:

Set cmdShell = CreateObject("WScript.Shell")
strServiceName=Inputbox("Inter Service to Stop","Input Required")
cmdShell.Run "cmd.exe"
WScript.Sleep 1000
cmdShell.SendKeys "net stop "+strServiceName
cmdShell.SendKeys "{Enter}"
WScript.Sleep 1000
cmdShell.SendKeys "net start "+strServiceName
cmdShell.SendKeys "{Enter}"
WScript.Sleep 1000
cmdShell.SendKeys "Exit"
cmdShell.SendKeys "{Enter}"

就这些。不需要到处寻找服务工具。只需运行这个脚本,并在几秒钟内停止和启动任何服务。

三。更改注册表设置,默认管理员密码

按照下面的剧本,我们将一石二鸟。这个脚本将向您展示如何用VB脚本编辑注册表。它还将为您提供一个脚本,允许您通过编辑这些注册表设置来设置默认的Windows用户名和密码。

下面是它的工作原理。首先,由于编辑注册表需要管理员权限,因此需要为脚本设置提升的权限:

If Not WScript.Arguments.Named.Exists("elevate") Then
CreateObject("Shell.Application").ShellExecute WScript.FullName _
, """" & WScript.ScriptFullName & """ /elevate", "", "runas", 1
WScript.Quit
End If

首先运行两个输入框,询问用户要使用的用户名和密码:

strUserName=Inputbox("Enter the default User Name","Input Required")
strPassword=Inputbox("Enter the default Password","Input Required")

接下来,设置shell对象,并将这些值写入相应的注册表项:

Set wshShell = CreateObject( "WScript.Shell" )
wshShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName", strUserName, "REG_SZ"
wshShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultPassword", strPassword, "REG_SZ"
Set wshShell = Nothing

就这些。“RegWrite”方法允许您使用vbwindows脚本将任何值写入任何注册表项。你所要知道的就是正确的道路。

运行脚本并回答提示。

输入的值将直接**脚本中设置的注册表设置中。

发挥周围的脚本和调整它到你喜欢的。你可以编辑任何你喜欢的注册表项,所以要有创意!

4重置网络连接

使用VB脚本重置网络连接是我们在MakeUseOf之前所讨论的。下面的版本实际上是缩小的,实现起来简单得多。它不会提示单个网卡,而是重置所有活动连接,希望这些连接能够解决您可能存在的任何网络问题。

与其他需要管理员权限的脚本一样,您需要在提升权限的开始处添加节。从上面的脚本复制代码。

接下来,创建WMI对象并查询它以获得系统上已启用的网络适配器列表:

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "oot\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_NetworkAdapter Where NetEnabled = 'True'")

最后,遍历所有启用的适配器并重置它们:

For Each objItem in colItems
objItem.Disable
WScript.Sleep 1000
objItem.Enable
Next

这将重置所有活动的网络适配器,这通常是解决恼人的网络问题的最快方法。把这个脚本放在手边,当你有一个缓慢的网络或其他奇怪的网络问题时,请先尝试它。

5ping设备或网站

我把最喜欢的vbwindows脚本保存到最后。这是一个我实际上设置为一个预定的任务在我的家用电脑上,并有它运行几次,每天只是为了检查我的网站是否是活跃的。我有脚本电子邮件给我,如果网站关闭。您可以使用此脚本监视网络上的重要服务器或计算机,并在脚本无法ping设备时向自己发送电子邮件。

首先,为要ping的目标设置脚本,创建shell对象,然后运行ping命令。

strTarget = "topsecretwriters.com"
Set WshShell = WScript.CreateObject("WScript.Shell")
Ping = WshShell.Run("ping -n 1 " & strTarget, 0, True)

使用Select Case语句遍历Ping结果并做出相应的响应。如果结果返回为零,那么您就知道站点(或服务器)处于联机状态,您无需执行任何操作。如果它返回“1”,那么ping失败,您需要做些什么。在我的例子中,我使用Windows CDO对象发送电子邮件:

Select Case Ping
Case 0
Case 1
Set objMessage = CreateObject("CDO.Message")
Set objConfig = CreateObject("CDO.Configuration")
objConfig.Load -1
Set Flds = objConfig.Fields
With Flds
.Item ("http://schemas.microsoft.com/cdo/configuration/**tpusessl") = True
.Item ("http://schemas.microsoft.com/cdo/configuration/**tpauthenticate")=1
.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername")="[email protected]"
.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword")="xxxxxxxxxxxxxxxxx"
.Item ("http://schemas.microsoft.com/cdo/configuration/**tpserver")="**tp.gmail.com"
.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing")=2
.Item ("http://schemas.microsoft.com/cdo/configuration/**tpserverport")=465
.Update
End With
With objMessage
Set .Configuration = objConfig
.Subject = "Your site is offline"
.From = "[email protected]"
.To = "[email protected]"
.TextBody = "Hey, your website is offline."
.Send
End With
End Select

一旦脚本运行并且无法ping设备或网站,就会收到一条即时消息。

它的快速和简单,每一个有效的!

使用vb windows脚本控制计算机

这些只是一些很酷的例子,你可以用VB脚本来简化你的计算机使用。你还可以做很多其他的事情,比如用VB和Synctoy自动备份,自动执行telnet命令,甚至打开和控制应用程序窗口。

您在计算机上使用Windows脚本自动完成的一些事情是什么?你是用VB写的,还是使用其他工具,比如PowerShell?

  • 发表于 2021-03-11 20:14
  • 阅读 ( 409 )
  • 分类:编程

你可能感兴趣的文章

使用powershell而不是批处理脚本的5个原因

...改进。它有一些很好的生活质量特性,在编写脚本时非常有用,例如语法高亮显示、自动完成、选项卡式编辑和上下文相关帮助。 ...

  • 发布于 2021-03-15 16:49
  • 阅读 ( 277 )

7个简单的windows脚本,为您节省时间和精力

... 1关闭计算机 ...

  • 发布于 2021-03-15 21:37
  • 阅读 ( 280 )

Windows10中控制声音的9种有用方法

以前,很少有方法可以控制Windows计算机上的音量。然而,windows10在智能**、远程桌面连接、不同的软件修复等方面表现良好。现在在windows10中控制音量的方法比以往任何时候都多。 ...

  • 发布于 2021-03-20 21:08
  • 阅读 ( 297 )

如何在Windows10中启用内置的自动更正

...版不会随时间而改变。在该页上,按Ctrl+S将其保存到您的计算机。 ...

  • 发布于 2021-03-30 18:14
  • 阅读 ( 253 )

it怪人:如何保持同名文件同步

...中一个文件发生变化时,它们都会被更新。 此功能非常有用,特别是对于有时需要复制文件的开发人员或系统管理员。 工作原理 假设您是一名web开发人员,随着时间的推移,他已经收集了大量Javascript函数,您可以在维护的所...

  • 发布于 2021-04-11 19:32
  • 阅读 ( 118 )

极客学校:学习如何用powershell自动化windows

...数集没有。原因是,如果您正在从网络上已下载的另一台计算机更新帮助文件,您将使用顶部的参数集(包括SourcePath的参数集),如果您只想从Microsoft获取最新的文件,则无需指定源路径。 为了回答第二个问题,有一个特定的...

  • 发布于 2021-04-11 23:23
  • 阅读 ( 193 )

在windows上有50多个潜在危险的文件扩展名

...。 .MSI–Microsoft安装程序文件。这些应用程序可以在您的计算机上安装其他应用程序,但也可以通过.exe文件安装应用程序。 .MSP–Windows installer修补程序文件。用于修补使用.MSI文件部署的应用程序。 .COM–MS-DOS使用的原始程序类...

  • 发布于 2021-04-12 02:19
  • 阅读 ( 178 )

microsoft frontpage(microsoft frontpage)和网页设计(adobe dreamweaver)的区别

...接编辑代码,同时预览更改。 FrontPage是一个用于Microsoft Windows系列操作系统的HTML编辑器和网站管理软件工具。Mac OS的FrontPage版本于1998年发布,与Windows相比,该版本包含的功能更少,此后没有开发更新或更新的版本。Dreamweaver扩...

  • 发布于 2021-06-23 17:44
  • 阅读 ( 192 )

vb语言(vb)和vba(vba)的区别

...只使用visualbasic编程。初始版本之后的更新允许用户使用Windows API。VB通过提供定义这些组件的默认属性和操作来支持程序员。使用VB创建应用程序的优点是,在GUI中,应用程序的大部分功能都可以可视化地开发。它有许多工具可...

  • 发布于 2021-07-09 18:19
  • 阅读 ( 226 )

程序设计语言(programming language)和脚本语言(scripting language)的区别

...而正式的语言,它被设计用来使程序员能够将指令传达给计算机。编程语言可以用来创建程序。脚本语言通常是一种支持脚本的编程语言。脚本是用来控制其他程序的程序。 如今,电脑、智能**和互联网并不是奢侈品,而是大...

  • 发布于 2021-07-12 09:43
  • 阅读 ( 246 )
浅忆淡漠
浅忆淡漠

0 篇文章

相关推荐