创建 VBS,它使用当前用户的用户名、计算机名称和 (wired/wireless) 的多个 IP 地址创建一个消息框
Create VBS that creates a message box with the current user's - username, computer name, and multiple IP addresses for (wired/wireless)
我已经四处寻找了一段时间,我已经想出了这个脚本组合...它几乎可以满足我的需要,但是当涉及到消息框时,它看起来并不漂亮IP 地址...目前它们与无 space 示例一起显示 (wiredIPwirelessIP)。理想情况下,我想要的是让消息框说
用户名:用户
计算机名称:Computer1
有线 IP:X.X.X.X
无线IP:X.X.X.X
如有任何帮助,我们将不胜感激。
这是我目前的情况
On Error Resume Next
Dim WSH
Dim strComputerName, FinalIP
Set WSH = WSCript.CreateObject("WScript.Shell")
Set WshNtwk = WScript.CreateObject("WScript.Network")
strMsg = ""
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
Set IPAdapterSet = objWMIService.ExecQuery("Select AdapterType, NetConnectionID, MACAddress from Win32_NetworkAdapter")
For Each IPConfig in IPAdapterSet
Set IPConfigSet = objWMIService.ExecQuery("Select IPEnabled, Description, Caption, IPAddress, MACAddress from Win32_NetworkAdapterConfiguration where IPEnabled='True' AND MACAddress = '" & IPConfig.MACAddress & "'")
For Each IPConf in IPConfigSet
''strMsg = strMsg
If Not IsNull(IPConf.IPAddress) Then
For i = LBound(IPConf.IPAddress) to UBound(IPConf.IPAddress)
If Not ((Instr(IPConf.IPAddress(i), ":") > 0) or (Instr(IPConf.IPAddress(i), "none") > 0)) Then
if i=0 then
strMsg = strMsg & IPConf.IPAddress(i)
else
strMsg = strMsg & ", " & IPConf.IPAddress(i)
end if
End If
Next
End If
next
Next
''WScript.Echo strMsg
Dim infroStr
infoStr = "Please provide the following information to the IT Technician." & vbCRLF & vbCRLF & _
" Username :" & vbTab & WshNtwk.UserName & vbCRLF & _
" Computer Name :" & vbTab & Ucase(WshNtwk.ComputerName) & vbCRLF & _
" IP Address(es) :" & vbTab & strMsg
'"Domain:" & WshNtwk.UserDomain
' Display the IP address and computer name in user-friendly message box
MsgBox infoStr, 64, "Some Title"
'"Computer Name:" & vbTab & Ucase(WshNtwk.ComputerName) & vbCrLf & "IP Address:" & vbTab & FinalIP, vbOkOnly , "SCCCMHA PC Information"
On Error Goto 0
WScript.Quit
我认为这对你有帮助:
Option Explicit
On Error Resume Next
Dim WSH, WshNtwk, objWMIService, IPAdapterSet, IPConfig, IPConfigSet, IPConf
Dim strMsg, strComputer, infoStr, FinalIP
Set WSH = WSCript.CreateObject("WScript.Shell")
Set WshNtwk = WScript.CreateObject("WScript.Network")
strMsg = ""
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
Set IPAdapterSet = objWMIService.ExecQuery("Select AdapterTypeID, NetConnectionID, MACAddress from Win32_NetworkAdapter")
' values for AdapterTypeID: https://docs.microsoft.com/en-us/windows/desktop/cimwin32prov/win32-networkadapter
For Each IPConfig in IPAdapterSet
Set IPConfigSet = objWMIService.ExecQuery("Select IPEnabled, Description, Caption, IPAddress, MACAddress from Win32_NetworkAdapterConfiguration where IPEnabled='True' AND MACAddress = '" & IPConfig.MACAddress & "'")
For Each IPConf in IPConfigSet
If Not IsNull(IPConf.IPAddress) Then
If Instr(1, IPConfig.NetConnectionID, "Wireless", vbTextCompare) > 0 Then
strMsg = strMsg & "- Wireless IP: " & vbTab
Else
strMsg = strMsg & "- Wired IP: " & vbTab
End If
strMsg = strMsg & Join(IPConf.IPAddress, ", ") & vbCrLf
strMsg = strMsg & "- MAC Address: " & vbTab & IPConfig.MACAddress & vbCrLf & vbCrLf
End If
Next
Next
''WScript.Echo strMsg
infoStr = "Please provide the following information to the IT Technician." & vbCrLf & vbCrLf & _
"Username :" & vbTab & WshNtwk.UserName & vbCrLf & _
"Computer Name :" & vbTab & Ucase(WshNtwk.ComputerName) & vbCrLf & _
"IP Addresses:" & vbCrLf & strMsg
'"Domain:" & WshNtwk.UserDomain
' Display the IP address and computer name in user-friendly message box
MsgBox infoStr, 64, "Some Title"
'"Computer Name:" & vbTab & Ucase(WshNtwk.ComputerName) & vbCrLf & "IP Address:" & vbTab & FinalIP, vbOkOnly , "SCCCMHA PC Information"
On Error Goto 0
'cleanup
Set IPConf = Nothing
Set IPConfig = Nothing
Set objWMIService = Nothing
Set IPAdapterSet = Nothing
Set WSH = Nothing
Set WshNtwk = Nothing
WScript.Quit
P.s。消息框可能提供信息,但不允许用户将信息复制为文本并通过邮件等方式将其发送给 IT。也许你应该添加一行告诉他们按 Alt + PrtScn 并将其粘贴到电子邮件中 Ctrl + V
我已经四处寻找了一段时间,我已经想出了这个脚本组合...它几乎可以满足我的需要,但是当涉及到消息框时,它看起来并不漂亮IP 地址...目前它们与无 space 示例一起显示 (wiredIPwirelessIP)。理想情况下,我想要的是让消息框说 用户名:用户 计算机名称:Computer1 有线 IP:X.X.X.X 无线IP:X.X.X.X
如有任何帮助,我们将不胜感激。
这是我目前的情况
On Error Resume Next
Dim WSH
Dim strComputerName, FinalIP
Set WSH = WSCript.CreateObject("WScript.Shell")
Set WshNtwk = WScript.CreateObject("WScript.Network")
strMsg = ""
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
Set IPAdapterSet = objWMIService.ExecQuery("Select AdapterType, NetConnectionID, MACAddress from Win32_NetworkAdapter")
For Each IPConfig in IPAdapterSet
Set IPConfigSet = objWMIService.ExecQuery("Select IPEnabled, Description, Caption, IPAddress, MACAddress from Win32_NetworkAdapterConfiguration where IPEnabled='True' AND MACAddress = '" & IPConfig.MACAddress & "'")
For Each IPConf in IPConfigSet
''strMsg = strMsg
If Not IsNull(IPConf.IPAddress) Then
For i = LBound(IPConf.IPAddress) to UBound(IPConf.IPAddress)
If Not ((Instr(IPConf.IPAddress(i), ":") > 0) or (Instr(IPConf.IPAddress(i), "none") > 0)) Then
if i=0 then
strMsg = strMsg & IPConf.IPAddress(i)
else
strMsg = strMsg & ", " & IPConf.IPAddress(i)
end if
End If
Next
End If
next
Next
''WScript.Echo strMsg
Dim infroStr
infoStr = "Please provide the following information to the IT Technician." & vbCRLF & vbCRLF & _
" Username :" & vbTab & WshNtwk.UserName & vbCRLF & _
" Computer Name :" & vbTab & Ucase(WshNtwk.ComputerName) & vbCRLF & _
" IP Address(es) :" & vbTab & strMsg
'"Domain:" & WshNtwk.UserDomain
' Display the IP address and computer name in user-friendly message box
MsgBox infoStr, 64, "Some Title"
'"Computer Name:" & vbTab & Ucase(WshNtwk.ComputerName) & vbCrLf & "IP Address:" & vbTab & FinalIP, vbOkOnly , "SCCCMHA PC Information"
On Error Goto 0
WScript.Quit
我认为这对你有帮助:
Option Explicit
On Error Resume Next
Dim WSH, WshNtwk, objWMIService, IPAdapterSet, IPConfig, IPConfigSet, IPConf
Dim strMsg, strComputer, infoStr, FinalIP
Set WSH = WSCript.CreateObject("WScript.Shell")
Set WshNtwk = WScript.CreateObject("WScript.Network")
strMsg = ""
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
Set IPAdapterSet = objWMIService.ExecQuery("Select AdapterTypeID, NetConnectionID, MACAddress from Win32_NetworkAdapter")
' values for AdapterTypeID: https://docs.microsoft.com/en-us/windows/desktop/cimwin32prov/win32-networkadapter
For Each IPConfig in IPAdapterSet
Set IPConfigSet = objWMIService.ExecQuery("Select IPEnabled, Description, Caption, IPAddress, MACAddress from Win32_NetworkAdapterConfiguration where IPEnabled='True' AND MACAddress = '" & IPConfig.MACAddress & "'")
For Each IPConf in IPConfigSet
If Not IsNull(IPConf.IPAddress) Then
If Instr(1, IPConfig.NetConnectionID, "Wireless", vbTextCompare) > 0 Then
strMsg = strMsg & "- Wireless IP: " & vbTab
Else
strMsg = strMsg & "- Wired IP: " & vbTab
End If
strMsg = strMsg & Join(IPConf.IPAddress, ", ") & vbCrLf
strMsg = strMsg & "- MAC Address: " & vbTab & IPConfig.MACAddress & vbCrLf & vbCrLf
End If
Next
Next
''WScript.Echo strMsg
infoStr = "Please provide the following information to the IT Technician." & vbCrLf & vbCrLf & _
"Username :" & vbTab & WshNtwk.UserName & vbCrLf & _
"Computer Name :" & vbTab & Ucase(WshNtwk.ComputerName) & vbCrLf & _
"IP Addresses:" & vbCrLf & strMsg
'"Domain:" & WshNtwk.UserDomain
' Display the IP address and computer name in user-friendly message box
MsgBox infoStr, 64, "Some Title"
'"Computer Name:" & vbTab & Ucase(WshNtwk.ComputerName) & vbCrLf & "IP Address:" & vbTab & FinalIP, vbOkOnly , "SCCCMHA PC Information"
On Error Goto 0
'cleanup
Set IPConf = Nothing
Set IPConfig = Nothing
Set objWMIService = Nothing
Set IPAdapterSet = Nothing
Set WSH = Nothing
Set WshNtwk = Nothing
WScript.Quit
P.s。消息框可能提供信息,但不允许用户将信息复制为文本并通过邮件等方式将其发送给 IT。也许你应该添加一行告诉他们按 Alt + PrtScn 并将其粘贴到电子邮件中 Ctrl + V