Alex's Weblog

Weblog di Ermanno Goletto (Codename Alex - A Learning EXperience)
posts - 438, comments - 4214, trackbacks - 294

My Links

News

Il blog è stato
trasferito al
 seguente link:


DevAdmin Blog

Add my blog to Live

Foto

Curriculum Vitae


Il contenuto di questo blog e di ciascun post viene fornito “così come é”, senza garanzie, e non conferisce alcun diritto. Questo blog riporta il mio personale pensiero che non riflette necessariamente il pensiero del mio datore di lavoro.

Logo Creative Commons Deed


Logo MCTS

Logo MCSA

Logo MCP

Logo Microsoft Certified Business Management Solutions Professional

Microsoft Certified Business Management Solutions Specialist


Logo UGIdotNET UGIdotNET Contributor


Logo UGISS UGISS Contributor


Logo SysAdmin.it SysAdmin.it Staff


Article Categories

Archives

Post Categories

Blogs

Database

Development

Friends

IT

Knowledge Base

Links

MBS

MCP

MVP Sites

User Groups

Virtualization

Script per leggere il numero seriale del computer

Lo script in se non è nulla di che nel senso basta utilizzare WMI per leggere la proprietà SerialNumeber della classe Win32_BIOS, inrealtà lo scopo di questo script è quello di creare una template per simili esigenze ovvero:

  • Gestire script utilizzabili da riga di comando con possibilità di richiedere dati all'utente
  • Utilizzare WMI
  • Connettersi anche a computer remoti
  • Visualizzare in forma tabellare i risultati

Tutte queste esigenze di fatto sono semplicemente realizzabili se si utilizza l'oggetto Microsoft.CmdLib disponibile in Windows XP e Windows 2003 Server, per maggiori informazioni si veda il seguente Hey, Scripting Guy! Not-So-Hard Work Has Its Rewards, Too (purtroppo pare che su Vista non funzioni)

Per utilizzare l'oggetto occorre inserire il seguente codice nello script:

'*** Include common module
Dim objCmdLib : Set objCmdLib = CreateObject( "Microsoft.CmdLib" )
'*** Referring the script host to common module
Set objCmdLib.ScriptingHost = WScript.Application

Per controllare che lo script sia eseguito a riga di comando è possibile utilizzarre la funzione CheckScript:

'*** Check whether the script is run using CScript
If CInt(objCmdLib.checkScript()) <> CONST_CSCRIPT Then
 WScript.Echo (UseCscriptErrorMessage)
        WScript.Quit(EXIT_UNEXPECTED)
End If

Per richiedere le credenziali all'utente da riga di comando non visualizzando la password è possibile utilizzare il seguente codice utilizzano l'oggetto ScriptPW disponibile in Windows XP e Windows 2003:

'*** Require connection information to user
Dim strComputer, strDomain, strUser, strPassword, objPassword

Wscript.StdOut.Write "Please enter computer name or IP Address (. for local host):"
strComputer = Wscript.StdIn.ReadLine

If strComputer <> "." Then
 Wscript.StdOut.Write "Please enter domain (null for log on to computer):"
 strDomain = Wscript.StdIn.ReadLine
        If strDomain = "" Then  strDomain = strComputer

 Wscript.StdOut.Write "Please enter your user name (null for Administrator):"
 strUser = Wscript.StdIn.ReadLine
        If strUser = "" Then strUser = "Administrator"
        strUser = strDomain & "\" & strUser

 Set objPassword = CreateObject("ScriptPW.Password")
 Wscript.StdOut.Write "Please enter your password:"
 strPassword = objPassword.GetPassword()
        Wscript.StdOut.WriteLine
End If

Per ottenere il servizio wmi è possibile utilizzare la funzione WMIConnect:

'*** Connection
Dim blnLocalConnection : blnLocalConnection = False
Dim objService

If NOT objCmdLib.wmiConnect("root\cimv2" , _
 strUser , strPassword , _
        strComputer , blnLocalConnection , _
        objService) Then
 Wscript.StdOut.WriteLine(ConnectionErrorMessage)        
        WScript.Quit(EXIT_METHOD_FAIL)
End If

Per visualizzare i dati in forma tabellare è possibile utilizzare la funzione ShowResults:

'*** Set Show Results Format
Dim arrHeader : arrHeader = Array("Element", "Value")
Dim arrMaxLength : arrMaxLength = Array(15, 25)
Dim strFormat : strFormat = "Table"
Dim blnPrintHeader : blnPrintHeader = True
Dim arrBlnHide : arrBlnHide = Array(False, False)
Dim arrResultsArray()
Dim index : index = 0

'*** Read info
Dim objQuery, objQueryItem

'*** Read info Computer System
Set objQuery = objService.ExecQuery("Select Model from Win32_ComputerSystem")

For Each objQueryItem in objQuery
  ReDim Preserve arrResultsArray(index)
  arrResultsArray(index) = Array("Model", objQueryItem.Model)
  index = index + 1
Next

'*** Read info BIOS
Set objQuery = objService.ExecQuery("Select SerialNumber from Win32_BIOS")

For Each objQueryItem in objQuery
  ReDim Preserve arrResultsArray(index)
  arrResultsArray(index) = Array("Serial Number", objQueryItem.SerialNumber)
  index = index + 1
Next

'*** Show System Information
Wscript.StdOut.WriteLine
objCmdLib.ShowResults arrHeader, arrResultsArray, arrMaxLength, _
 strFormat, blnPrintHeader, arrBlnHide

Per approfindimenti sulle condizioni necessarie per connettersi trmite WMI a computer remoti si veda WMI Isn't Working! mentre per imparare ad utilizzare funzionalità interessanti il mio consiglio è quello di sbirciare gli scripti già presenti nel sistema, in Windows XP  \Windows\System32.

Lo script completo è disponible al seguente SysInfo.vbs (tx dx Salva oggetto se avete problemi a scaricarlo).

Print | posted on giovedì 15 maggio 2008 18:42 | Filed Under [ Links Code & Snippet IT ]

Feedback

Gravatar

# re: Script per leggere il numero seriale del computer

TOMTOP.COM, a reliable Chinese wholesale & retail online shop since 2004. We offer diverse & high-quality Chinese products that you can buy at the best prices with free shipping worldwide and free coupons. China wholesale
20/06/2011 14:08 | wikecamera
Gravatar

# re: Script per leggere il numero seriale del computer

I'm excitied for all the articles we are going to read! I can't wait to read all the articles available on the website. Mini Wireless Keyboard
22/06/2011 06:46 | Mini Wireless Keyboard
Gravatar

# re: Script per leggere il numero seriale del computer

I'm excitied for all the articles we are going to read!Wireless Keyboard with Touchpad
29/06/2011 08:56 | Wireless Keyboard with Touchpad
Gravatar

# re: Script per leggere il numero seriale del computer

Very useful article!Green Laser Pointers
04/07/2011 08:55 | Green Laser Pointers
Gravatar

# re: Script per leggere il numero seriale del computer

Digital Pocket Scale is perfect for reloaders, hobbyists and more. BIG BUCKS OFF! Weighs in grains, ounces,
06/07/2011 07:57 | wikecamera
Gravatar

# re: Script per leggere il numero seriale del computer

The only item that I actually want from this is the Spinning Top . It feels like it is made of a solid piece of metal which is good.
19/07/2011 12:45 | Spinning Top
Gravatar

# re: Script per leggere il numero seriale del computer

This post is a really cool effect. Looks like it’s very tedious to do though. Thanks for sharing this.Puzzle Toys
25/07/2011 08:43 | wikecamera
Gravatar

# re: Script per leggere il numero seriale del computer

Wireless Camera has become more and more popular among wealthy shoppers. Discover China's top IP Cameras source online. Low price + worldwide fast free shipping.
28/07/2011 13:17 | Wireless Camera
Gravatar

# Check Cashing Costa-mesa

Terrific article writing. It's safe to opt for as a way to be thankful for tons for the plans everyone bring in penned the next few paragraphs. Today be sure to check this Check Cashing Costa-mesa Utilizing owing to get hold of impressive add
21/10/2017 11:24 | Pervez
Gravatar

# re: Script per leggere il numero seriale del computer

Magento Development Company
Magento Support and Maintenance
11/06/2018 14:14 | SAM
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET