Jump to content

Recommended Posts

Posted (edited)

@Arthur / @Steve21 or anyone else

 

Using version 2 of powershell at work but am going to attempt to install version 3 on my laptop ( not sure if it will work or not due to restrictions possibly )

 

I have the below script but want it converting to powershell

 

const HKEY_CURRENT_USER = &H80000001
const HKEY_LOCAL_MACHINE = &H80000002
Const ForReading = 1, ForWriting = 2, ForAppending = 8 
strComputer = "."
Set StdOut = WScript.StdOut
Dim username, asset, hdd, manuhdd
Dim colIPResults, objFile, objFSO, objNIC, objWMI, objWSHNetwork, strAddresses, strIPAddress, strWQL, strComp, osVer
Dim strRAM
dim filesys, filetxt
dim newfolder
Dim usbPath
Dim spVer
Dim strSerial, strModel, strVendor, strNumModel
Set objNetwork = CreateObject("Wscript.Network")
Set filesys = CreateObject("Scripting.FileSystemObject")
username = objNetwork.username
strComputer = objNetwork.ComputerName
usbPath = Replace(WScript.ScriptFullName, WScript.ScriptName, "")

Sub DestroyObjects()
If IsObject(objWMI) Then Set objWMI = Nothing
If IsObject(objWSHNetwork) Then Set objWSHNetwork = Nothing
End Sub

Dim strMAC
Set objWSHNetwork = CreateObject("WScript.Network")
Set objWMI = GetObject("WinMGMTS:root\cimv2")
strWQL = "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'True'"
Set colIPResults = objWMI.ExecQuery(strWQL)
For Each objNIC In colIPResults
For Each strIPAddress in objNIC.IPAddress
If strAddresses = "" Then
strAddresses = strIPAddress
Else
strAddresses = strAddresses
End If
Next
strMAC = objNIC.MACAddress
Next

'IPAddress


'Set objWMIService = GetObject("WinMGMTS:root\cimv2")
'Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=True",,48)
'For Each objItem in colItems
'  strMAC = objItem.MACAddress
'Next

If strAddresses ="0.0.0.0" Or strAddresses ="" or strAddresses = "undefined" Then
   strAddresses = "No Connection Detected or invalid ip address"
Else
   strAddresses = strAddresses
End If

DestroyObjects()

'Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
'Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)
'For Each Item In colItems
'manu = Item.Manufacturer
'    model = Item.Model    
'Next

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystemProduct",,48)
For Each objItem in colItems
Select Case objItem.Vendor
Case "Dell Inc.":

strSerial = objItem.IdentifyingNumber
strModel = objItem.Name
strVendor = objItem.Vendor 
strNumModel = objItem.Version

If strNumModel = "" Or IsNull(strNumModel)=true Then
strNumModel = "N/A"
End If


Case "LENOVO":

strSerial = objItem.IdentifyingNumber
strNumModel =  objItem.Name
strVendor =  objItem.Vendor 
strModel = objItem.Version


End Select

Next






Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PhysicalMemory", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
totalMemory = 0
For Each item In colItems
   totalMemory = totalMemory + item.Capacity / (1024^2)
Next
strRam = FormatNumber((totalMemory / 1024), 2) & " Gb"

'Set colItems = objWMIService.ExecQuery("Select * from Win32_BIOS")
'For Each objItem in colItems
'    serial = objItem.SerialNumber
'Next

Set colItems = objWMIService.ExecQuery("Select * from Win32_SystemEnclosure")
For Each objItem in colItems
If Len(objItem.SMBIOSAssetTag) <= 0 Then
   asset = "N/A"
Else
   asset =  objItem.SMBIOSAssetTag
   
End If
Next

Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")

strKeyPath = "HARDWARE\DESCRIPTION\System\CentralProcessor\0"
strValue = "ProcessorNameString"

objRegistry.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValue,strScriptStatus

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery("select * from Win32_DiskDrive where Name like '%PHYSICALDRIVE0%'")
For Each objDisk in colDisks
    
           hdd = ConvertSize(objDisk.Size)
           manuhdd = Int(objDisk.Size /(1000000000)) & " GB" 

Next

Set oWMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set QueryWMI = oWMI.ExecQuery("SELECT * FROM Win32_OperatingSystem")
For Each oItem In QueryWMI
spVer = oItem.Caption & " with Service Pack " & oItem.ServicePackMajorVersion
osVer = oItem.Version
Next

Set filetxt = filesys.OpenTextFile(usbPath & "\" & ucase(username) & " - " & Trim(strComputer) & ".htm" , 2, True) 
'filetxt.WriteLine "Username,Manufacturer,Serial Number,Model,Computer Name,RAM,HDD,Asset Tag,Processor"
'filetxt.WriteLine ucase(username) & "," & manu & "," & serial & "," & model & "," & strComputer & "," & strRAM & "," & hdd & "( " & manuhdd & " )" &  "," & asset & "," & strScriptStatus

filetxt.WriteLine "Computer Spec for : " & strComputer & ""
filetxt.WriteLine ""
filetxt.WriteLine ""
filetxt.WriteLine ""
filetxt.WriteLine "Username :"
filetxt.WriteLine "" & ucase(username) & ""
filetxt.WriteLine ""

filetxt.WriteLine ""
filetxt.WriteLine "Operating System & Service Pack Level :"
filetxt.WriteLine "" & spVer & ""
filetxt.WriteLine ""

filetxt.WriteLine ""
filetxt.WriteLine "Operating System Version :"
filetxt.WriteLine "" & osVer & ""
filetxt.WriteLine ""

filetxt.WriteLine ""
filetxt.WriteLine "Manufacturer :"
filetxt.WriteLine "" & strVendor & ""
filetxt.WriteLine ""

filetxt.WriteLine ""
filetxt.WriteLine "Serial Number :"
filetxt.WriteLine "" & strSerial & ""
filetxt.WriteLine ""

filetxt.WriteLine ""
filetxt.WriteLine "Numerical Model :"
filetxt.WriteLine "" & strNumModel & ""
filetxt.WriteLine ""

filetxt.WriteLine ""
filetxt.WriteLine "Model Name :"
filetxt.WriteLine "" & strModel & ""
filetxt.WriteLine ""

filetxt.WriteLine ""
filetxt.WriteLine "Computer Name :"
filetxt.WriteLine "" & strComputer & ""
filetxt.WriteLine ""

filetxt.WriteLine ""
filetxt.WriteLine "I.P Address :"
filetxt.WriteLine "" & strAddresses & ""
filetxt.WriteLine ""

'filetxt.WriteLine ""
'filetxt.WriteLine "MAC Address :"
'filetxt.WriteLine "" & strMAC & ""
'filetxt.WriteLine ""

filetxt.WriteLine ""
filetxt.WriteLine "Total RAM :"
filetxt.WriteLine "" & strRAM & ""
filetxt.WriteLine ""

filetxt.WriteLine ""
filetxt.WriteLine "Actual HDD Capacity :"
filetxt.WriteLine "" & HDD & ""
filetxt.WriteLine ""

filetxt.WriteLine ""
filetxt.WriteLine "Manufacturer HDD Capacity :"
filetxt.WriteLine "" & manuhdd & ""
filetxt.WriteLine ""

filetxt.WriteLine ""
filetxt.WriteLine "Asset Tag :"
filetxt.WriteLine "" & asset & ""
filetxt.WriteLine ""

filetxt.WriteLine ""
filetxt.WriteLine "Processor :"
filetxt.WriteLine "" & Trim(strScriptStatus) & ""
filetxt.WriteLine ""

filetxt.WriteLine ""
filetxt.WriteLine "A.D Description :"
filetxt.WriteLine "" & ProperCase(username) & space(1) & strModel & space(1) & "(" & strSerial & ")" & ""
filetxt.WriteLine ""

filetxt.WriteLine ""
filetxt.WriteLine ""
filetxt.WriteLine "
"
filetxt.WriteLine "==========================================================="


Dim ObjExec
Dim strFromProc
Dim strOutput
'output.innerhtml = ""
Set objShell = CreateObject("WScript.Shell")
Set ObjExec = objShell.Exec("%comspec% /c ipconfig /all 2>&1")
Do
   strFromProc = ObjExec.StdOut.ReadLine()
   strOutput = strOutput & strFromProc & "
"
   
Loop While Not ObjExec.Stdout.atEndOfStream

filetxt.WriteLine ""
filetxt.WriteLine "" & strOutput & ""
filetxt.WriteLine ""





filetxt.Close 

msgbox ucase(username) & vbcrlf & spVer & vbcrlf & osVer & vbcrlf & strVendor & vbcrlf & strModel & " ( " & strNumModel & " ) " & vbcrlf & strSerial & vbcrlf & asset & vbcrlf & vbcrlf & strComputer & vbcrlf & strAddresses  & vbcrlf & strScriptStatus & vbcrlf & strRAM & vbcrlf & hdd & "( " & manuhdd & " )" & vbcrlf & ProperCase(username) & space(2) & strModel & space(2) & "(" & strSerial & ")"

wscript.sleep 1000


Function ConvertSize(Size) 
Do While InStr(Size,",") 'Remove commas from size 
   CommaLocate = InStr(Size,",") 
   Size = Mid(Size,1,CommaLocate - 1) & _ 
       Mid(Size,CommaLocate + 1,Len(Size) - CommaLocate) 
Loop

Suffix = " Bytes" 
If Size >= 1024 Then suffix = " KB" 
If Size >= 1048576 Then suffix = " MB" 
If Size >= 1073741824 Then suffix = " GB" 
If Size >= 1099511627776 Then suffix = " TB" 

Select Case Suffix 
   Case " KB" Size = Round(Size / 1024, 1) 
   Case " MB" Size = Round(Size / 1048576, 1) 
   Case " GB" Size = Round(Size / 1073741824, 1) 
   Case " TB" Size = Round(Size / 1099511627776, 1) 
End Select

ConvertSize = Size & Suffix 
End Function

Function ProperCase(sText)
   '*** Converts text to proper case e.g.  ***'
   '*** surname = Surname                  ***'
   '*** o'connor = O'Connor                ***'
    
       Dim a, iLen, bSpace, tmpX, tmpFull
    
       iLen = Len(sText)
       For a = 1 To iLen
       If a <> 1 Then 'just to make sure 1st character is upper and the rest lower'
           If bSpace = True Then
               tmpX = UCase(mid(sText,a,1))
               bSpace = False
           Else
           tmpX=LCase(mid(sText,a,1))
               If tmpX = " " Or tmpX = "'" Or tmpX ="." Then bSpace = True
           End if
       Else
           tmpX = UCase(mid(sText,a,1))
       End if
       tmpFull = tmpFull & tmpX
       Next
       ProperCase = tmpFull
   End Function

Set objMemory = Nothing
Set objWMIService = Nothing



 

Thank you :)

Edited by mac_shinobi

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...