Questo script permette di creare o modificare variabili d’ambiente su tutti i computer specificati in un elenco.
Richiede in input soltanto un semplice file di testo (computers.txt) contenente i nomi (o gli indirizzi IP) dei PC sui quali eseguire l’operazione; è possibile generare velocemente tale elenco utilizzando lo script “List All Computers And Users Within An OU And SubOUs [1]“.
Come output viene generato un unico file "results.txt" che costituisce il risultato dell'esecuzione ed ha appunto lo scopo di mettere in evidenza sia gli errori che le operazioni andate a buon fine.
Gestisce in maniera completamente autonoma le operazioni di scrittura dei risultati su file di testo, potete perciò eseguirlo indifferentemente con entrambi i motori WSH ("wscript.exe" oppure "cscript.exe") senza quindi dovervi preoccupare di reindirizzarne manualmente l'output.
Nome (strVarName) e valore (strVarValue) della variabile d’ambiente sono le uniche variabili da impostare nel codice sorgente.
'Variable name
strVarName = "test_var"
'Variable value
strVarValue = "test_value"
'Create a FileSystemObject
Set oFS = CreateObject("Scripting.FileSystemObject")
'Open a text file of computer names
'with one computer name per line
Set oTS = oFS.OpenTextFile("computers.txt")
Set oTSOut = oFS.CreateTextFile("results.txt")
'go through the text file
Do Until oTS.AtEndOfStream
'get next computer
sComputer = oTS.ReadLine
On Error Resume Next
set objVarClass = GetObject("winmgmts:\\" & sComputer & "\root\cimv2:Win32_Environment")
If Err <> 0 Then
oTSOut.WriteLine "Error on " & sComputer & ":" & Err.Number & ", " & Err.Description
Else
On Error Goto 0
set objVar = objVarClass.SpawnInstance_
objVar.Name = strVarName
objVar.VariableValue = strVarValue
objVar.UserName = ""
objVar.Put_
oTSOut.WriteLine "Variable created on " & sComputer
End If
Loop
oTS.Close
oTSOut.Close