Sai già come funziona, di tanto in tanto apro il cassetto degli attrezzi, utilizzo uno script e poi penso che potrebbe essere interessante per qualcun altro sul web, quindi decido di condividerlo con te che sei dall’altra parte del monitor e che stai forse svolgendo un mestiere simile al mio.
Qualche tempo fa ho rimaneggiato un po’ di codice per realizzare un piccolo VBScript che fosse in grado di ritoccare la descrizione di un PC da remoto, senza che l’utente si accorga di nulla, collegandomi in maniera amministrativa grazie alla rete di dominio.
Da un’idea e realizzazione originale di Rob Dunn (il suo sito web non esiste più, nda), il codice qui di seguito mostra un popup a video che legge l’attuale descrizione di un PC (raggiunto tramite hostname o IP) e permette contestualmente di modificarla.
' PC Description Changer per Windows Xp+ ' GSolone 2015 v 0.3 ' Basato su script originale di Rob.Dunn (www.theitoolbox.com) ' Ultima modifica 17122015 ' ' - accetta da prompt dei comandi il nome macchina (o IP) da raggiungere (es. PCDescription.vbs 127.0.0.1) ' - Windows XP e 2003 richiedono un riavvio macchina per poter mostrare poi la description corretta. ' - il servizio di remote registry deve essere attivo e occorre anche avere le permission WMI) ' - lo script tronca oltre i 48 caratteri forniti come testo della descrizione PC ' ' LO SCRIPT VA ESEGUITO COME AMMINISTRATORE MACCHINA O DI DOMINIO! Dim strDescription, strComputer, reg, objRegistry Dim ret, msg, ValueName Const HKLM = &H80000002 if WScript.Arguments.Count = 0 then 'Richiesta IP o hostname macchina da modificare strComputer = InputBox("PC Description Changer (Win Xp +)" & vbCR & vbCR & "VA ESEGUITO COME ADMIN LOCALI O DI DOMINIO!" & vbCR & vbCR & "Inserisci il nome macchina o indirizzo IP da raggiungere (vuoto o clic su Annulla per uscire dallo script)" & vbCR, "PC Description Changer", "W7-TEST") else 'Se l'indirizzo IP / Hostname mi è stato passato da riga di comando, posso procedere direttamente strComputer = Wscript.Arguments(0) end if if strComputer = "" then wscript.quit on error resume next Set reg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv") if err.number <> 0 then msgbox "Problemi di connessione al database WMI di " & strComputer & ". Verifica che il PC sia acceso e che tu abbia tutti i permessi per poter effettuare l'operazione",16,"Errore di connessione a '" & strComputer & "'" wscript.quit end if on error goto 0 Set objRegistry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2").ExecQuery("Select Description FROM Win32_OperatingSystem") For Each object In objRegistry strDescription = object.Description Next value = inputbox("Inserisci una nuova descrizione per '" & strComputer & "' (o fai clic su Annulla per terminare lo script):","PC Description Changer",strDescription) If value = strDescription then wscript.quit key = "SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" ValueName = "srvcomment" If Len(Value) > 48 Then Value = Left(Value, 48) ret = reg.SetStringValue(HKLM, key, ValueName, value) if ret <> 0 then msgbox "Aggiornamento remoto fallito."
All’interno del codice c’è anche qualche rapida istruzione (in parte riproposta a video) per guidarti all’uso o a capire cosa può andare storto. Ricorda che il servizio di Remote Registry deve essere attivo sulla macchina di destinazione (e l’account che lancia lo script deve avere i permessi per amministrarla, vale quindi lanciarlo da un prompt dei comandi elevato), altrimenti si incorre in popup di errore come questo:
Tutti i test sono stati condotti su Windows 7, 8.1 e 10. In passato l’ho usato anche per macchine XP senza battere ciglio, spero però per te che tu non abbia più quel SO in giro ;-)
Per dubbi o chiarimenti, citofonare nell’area commenti.
Cheers.
L'articolo potrebbe non essere aggiornato
Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)