; ----------------------------------------------------------------------------
;
; This file is part of the Microsoft ADS Samples.
;
; Copyright (c) Microsoft Corporation. All rights reserved.
;
;
; ----------------------------------------------------------------------------
; This sample shows creating a device. Also setting the admin MAC address (in
; class DeviceHWAddrs) and creating a device variable (class DeviceVariables).
Dim $objSvc ; WMI root object
Dim $objDev ; to store devices class object
Dim $objDevInst ; to store device instance object
Dim $objDevhwaddr ; to store device hwaddr classes object
Dim $objDevhwaddrInst ; to store device hwaddr instance object
Dim $objDevvar ; to store device device variables class object
Dim $objDevvarInst ; to store device variable instance object
; get root microsoft ads object
Set $objSvc = GetObject("winmgmts:\\.\root\microsoftADS")
CheckForErrors("Failed: getobject root\microsoftads")
; get devices object
$objDev = $objSvc.Get("Devices")
CheckForErrors("Failed: get Devices object")
; spawn device instance class
$objDevInst = $objDev.SpawnInstance_()
CheckForErrors("Failed: spawning Device instance object")
; set device properties
$objDevInst.Name = "sample1.example.com"
$objDevInst.Description = "Sample device"
; create device instance
$objDevInst.Put_()
CheckForErrors("Failed: Put_() couldn't create device")
; get device hwaddr object
$objDevhwaddr = $objSvc.Get("DeviceHWAddrs")
CheckForErrors("Failed: get DevicesHWAddrs object")
; create device hwaddr instance
$objDevhwaddrInst = $objDevhwaddr.SpawnInstance_()
CheckForErrors("Failed: spawning DeviceHwAddrs instance object")
; set device hwaddrs properties
$objDevhwaddrInst.DeviceName = "sample1.example.com"
$objDevhwaddrInst.type = 2
$objDevhwaddrInst.hwaddr = "1234567890ab"
; create device hwaddr instance
$objDevhwaddrInst.Put_()
CheckForErrors("Failed: Put_() couldn't create device hwaddr")
; get device variables object
$objDevvar = $objSvc.Get("DeviceVariables")
CheckForErrors("Failed: get DevicesVariables object")
; create device variable instance
$objDevvarInst = $objDevvar.SpawnInstance_()
CheckForErrors("Failed: get DevicesVariable instance object")
; set device varaible properties
$objDevvarInst.DeviceName = "sample1.example.com"
$objDevvarInst.Namespace = "user"
$objDevvarInst.Name = "rack"
$objDevvarInst.Value = "4"
; create device variable instance
$objDevvarInst.Put_()
CheckForErrors("Failed: Put_() couldn't create device variable")
;********************************************************************
;* Function: CheckForErrors
;*
;* Purpose: Check if there are any errors returned from the previous
;* function call.
;*
;* Input: [in] strMsg error string to display if there is an error
;*
;* Output: displays the error string to the user
;*
;********************************************************************
Function CheckForErrors($strMsg)
Dim $strErrDesc ; to store err description
Dim $intErrNum ; to store err number
Dim $objWbemErr ; swbemlasterror object
If @ERROR
$intErrNum = @ERROR
$strErrDesc = @SERROR
If $strErrDesc = "" And @ERROR
$objWbemErr = CreateObject("WbemScripting.SWbemLastError")
$strErrDesc = $objWbemErr.Description
;$strErrDesc = Replace($strErrDesc, @CRLF, " ") ;Replace isn't a function within kixtart.
EndIf
? $strMsg + " failed: " + strErrDesc + "$intErrNum")
? "---------"
Exit 2 ; 2 is for error, 1 is warning
EndIf
EndFunction