User Tools

Site Tools


userspace:dellbios

This is an old revision of the document!


DellBios

Tested with opsi 4.0.4.5
requiredWinstVersion >= 4.11.3.6

You need the Dell CCTK
Files can be downloaded at http://en.community.dell.com/techcenter/systems-management/w/wiki/1952.dell-client-configuration-toolkit-cctk.aspx

Tree:

DATA_CLIENT
  ├ setup.ins 
  └ bin
     ├ cctk.exe
     ├ mxml1.dll
     ├ pci.ids
     └ HAPI
        ├ dcdbas32.cat      
        .
        .
        .
        └ omsacntl.exe 
OPSI
  └  control  
           

Install Information


Install the Dell CCTK on a development Computer and copy the
%Programfiles%\Dell\CCTK\x86 or %Programfiles%\Dell\CCTK\x64
into the DATA_CLIENT bin folder

setup.ins

[Initial]
ExitOnError=true
StayOnTop = true
 
[Actions]
requiredWinstVersion >= "4.10.5"
 
DefVar $ReportProperty$
DefVar $ReportValue$
 
DefVar $CommandValue$
DefStringList $CommandResult$ 
DefVar $CommandResultValue$
 
DefVar $SetBios$
DefVar $PwdNew$
DefVar $PwdBIOS$
 
DefVar $PwrMgmtWOL$
DefVar $PwrMgmtConrolWLAN$
DefVar $PwrMgmtConrolWWAN$
 
DefVar $PostBehaviorNumLock$
 
set $SetBios$    =GetProductProperty("_set_bios", "no")
set $PwdNew$     =GetProductProperty("password_new", " ")
set $PwdBIOS$    =GetProductProperty("password", " ")
 
set $PwrMgmtWOL$ =GetProductProperty("pwr-management_wake-on-lan", " ")
set $PwrMgmtConrolWLAN$ =GetProductProperty("pwr-management_control-wlan-radio", " ")
set $PwrMgmtConrolWWAN$ =GetProductProperty("pwr-management_control-wwan-radio", " ")
 
set $PostBehaviorNumLock$ =GetProductProperty("post-behavior_num-lock", " ")
 
; Install the BIOS comunication driver
DosInAnIcon_HAPIInstall
 
;if password is one of the reported Values from password state set it blank
if ($PwdBIOS$="--password required--")
    set $PwdBIOS$=" "
endif
if ($PwdBIOS$="--password wrong--")
    set $PwdBIOS$=" "
endif
 
;Get Password State
set $CommandValue$ = '--numlock'
set $CommandResult$ = getOutStreamFromSection('DosInAnIcon_BiosQuery')
set $CommandResultValue$ = getValue ("numlock",$CommandResult$)
 
if (getLastExitCode = "0")
    ;toggle Value to get the errorcode
      if ($CommandResultValue$="on")
          set $CommandValue$ = '--numlock="off"'
          DosInAnIcon_BiosCommand
          set $CommandValue$ = '--numlock="on"'
          DosInAnIcon_BiosCommand
      else
          set $CommandValue$ = '--numlock="on"'
          DosInAnIcon_BiosCommand
          set $CommandValue$ = '--numlock="off"'
          DosInAnIcon_BiosCommand
      endif
 
      set $ReportProperty$ ="password"
      if (getLastExitCode = "191")
        ; 191 password required
          set $ReportValue$    ="--password required--"
          opsiServiceCall_configState_Report
      endif
      if (getLastExitCode = "157")
        ; 157 password wrong
          set $ReportValue$    ="--password wrong--"
          opsiServiceCall_configState_Report
      endif      
endif
 
 
; Set Password
if ($PwdNew$="--clear--")
    set $CommandValue$ = '--setuppwd=" "'
    DosInAnIcon_BiosCommand
    if (getLastExitCode = "0")
 
        set $ReportProperty$ ="password"
        set $ReportValue$    =" "
        opsiServiceCall_configState_Report
 
        set $ReportProperty$ ="password_new"
        set $ReportValue$    =" "
        opsiServiceCall_configState_Report
    else
        set $ReportProperty$ ="password_new"
        set $ReportValue$    =" "
        opsiServiceCall_configState_Report     
    endif
else
    if (not ($PwdNew$=" "))
      set $CommandValue$ = '--setuppwd="$PwdNew$"'
      DosInAnIcon_BiosCommand
      if (getLastExitCode = "0")
 
        set $ReportProperty$ ="password"
        set $ReportValue$    =$PwdNew$
        opsiServiceCall_configState_Report
 
        set $ReportProperty$ ="password_new"
        set $ReportValue$    =" "
        opsiServiceCall_configState_Report
 
        set $PwdBIOS$=$PwdNew$
        set $PwdNew$=""     
 
      else
        set $ReportProperty$ ="password_new"
        set $ReportValue$    =" "
        opsiServiceCall_configState_Report      
      endif
    endif
endif
 
if ($SetBios$="yes")
      ;Set Value
      ;wake on LAN
        if ($PwrMgmtWOL$="enable")
          set $CommandValue$ = '--wakeonlan="enable"'
          DosInAnIcon_BiosCommand
        endif
        if ($PwrMgmtWOL$="disable")
          set $CommandValue$ = '--wakeonlan="disable"'
          DosInAnIcon_BiosCommand       
        endif
        if ($PwrMgmtWOL$="addincard")
          set $CommandValue$ = '--wakeonlan="addincard"'
          DosInAnIcon_BiosCommand       
        endif
        if ($PwrMgmtWOL$="onboard")
          set $CommandValue$ = '--wakeonlan="onboard"'
          DosInAnIcon_BiosCommand       
        endif
        if ($PwrMgmtWOL$="enablewakeonwlan")
          set $CommandValue$ = '--wakeonlan="enablewakeonwlan"'
          DosInAnIcon_BiosCommand       
        endif
        if ($PwrMgmtWOL$="lanorwlan")
          set $CommandValue$ = '--wakeonlan="lanorwlan"'
          DosInAnIcon_BiosCommand       
        endif        
        if ($PwrMgmtWOL$="lanwithpxeboot")
          set $CommandValue$ = '--wakeonlan="lanwithpxeboot"'
          DosInAnIcon_BiosCommand       
        endif 
 
      ;Control WLAN Radio        
        if ($PwrMgmtConrolWLAN$="yes")
          set $CommandValue$ = '--controlwlanradio="enable"'
          DosInAnIcon_BiosCommand
        endif
        if ($PwrMgmtConrolWLAN$="no")
          set $CommandValue$ = '--controlwlanradio="disable"'
          DosInAnIcon_BiosCommand       
        endif
 
      ;Control WWAN Radio         
        if ($PwrMgmtConrolWWAN$="yes")
          set $CommandValue$ = '--controlwwanradio="enable"'
          DosInAnIcon_BiosCommand
        endif
        if ($PwrMgmtConrolWWAN$="no")
          set $CommandValue$ = '--controlwwanradio="disable"'
          DosInAnIcon_BiosCommand       
        endif
 
      ;Num lock         
        if ($PostBehaviorNumLock$="on")
          set $CommandValue$ = '--numlock="on"'
          DosInAnIcon_BiosCommand
        endif
        if ($PostBehaviorNumLock$="off")
          set $CommandValue$ = '--numlock="off"'
          DosInAnIcon_BiosCommand       
        endif
 
      ;Clear set BIOS flag        
        set $ReportProperty$ ="_set_bios"
        set $ReportValue$    ="no"
        opsiServiceCall_configState_Report 
endif
      ;Report
      ;wake on LAN 
        set $CommandValue$ = '--wakeonlan'
        set $CommandResult$ = getOutStreamFromSection('DosInAnIcon_BiosQuery')
        set $CommandResultValue$ = getValue ("wakeonlan",$CommandResult$)
 
        set $ReportProperty$ ="pwr-management_wake-on-lan"
        if (not (getLastExitCode = "0"))
          ;An Error occured do some Errorhandling
            if (getLastExitCode = "119")
              ; 119 means funktion not supported by this Computer
                set $ReportValue$    ="-- not supported --"
                opsiServiceCall_configState_Report
            endif
        else                    
          ;No Error occured so report Value
            if ($CommandResultValue$="enable")
                set $ReportValue$    ="enable"
                opsiServiceCall_configState_Report
            endif
            if ($CommandResultValue$="disable")
                set $ReportValue$    ="disable"
                opsiServiceCall_configState_Report
            endif
            if ($CommandResultValue$="addincard")
                set $ReportValue$    ="addincard"
                opsiServiceCall_configState_Report
            endif
            if ($CommandResultValue$="onboard")
                set $ReportValue$    ="onboard"
                opsiServiceCall_configState_Report
            endif
            if ($CommandResultValue$="enablewakeonwlan")            
              set $ReportValue$    ="enablewakeonwlan"
              opsiServiceCall_configState_Report
            endif
            if ($CommandResultValue$="lanorwlan")
                set $ReportValue$    ="lanorwlan"
                opsiServiceCall_configState_Report
            endif
            if ($CommandResultValue$="lanwithpxeboot")
                set $ReportValue$    ="lanwithpxeboot"
                opsiServiceCall_configState_Report
            endif
 
        endif
 
      ;Control WLAN Radio        
        set $CommandValue$ = '--controlwlanradio'
        set $CommandResult$ = getOutStreamFromSection('DosInAnIcon_BiosQuery')
        set $CommandResultValue$ = getValue ("controlwlanradio",$CommandResult$)
 
        set $ReportProperty$ ="pwr-management_control-wlan-radio"
        if (not (getLastExitCode = "0"))
          ;An Error occured do some Errorhandling
            if (getLastExitCode = "119")
              ; 119 means funktion not supported by this Computer
                set $ReportValue$    ="-- not supported --"
                opsiServiceCall_configState_Report
            endif
        else                    
          ;No Error occured so report Value
            if ($CommandResultValue$="enable")            
              set $ReportValue$    ="yes"
              opsiServiceCall_configState_Report
            endif
            if ($CommandResultValue$="disable")
                set $ReportValue$    ="no"
                opsiServiceCall_configState_Report
            endif
        endif
 
      ;Control WWAN Radio 
        set $CommandValue$ = '--controlwwanradio'
        set $CommandResult$ = getOutStreamFromSection('DosInAnIcon_BiosQuery')
        set $CommandResultValue$ = getValue ("controlwwanradio",$CommandResult$)
 
        set $ReportProperty$ ="pwr-management_control-wwan-radio"        
        if (not (getLastExitCode = "0"))
          ;An Error occured do some Errorhandling
            if (getLastExitCode = "119")
              ; 119 means funktion not supported by this Computer
                set $ReportValue$    ="-- not supported --"
                opsiServiceCall_configState_Report
            endif
        else                    
          ;No Error occured so report Value
            if ($CommandResultValue$="enable")            
              set $ReportValue$    ="yes"
              opsiServiceCall_configState_Report
            endif
            if ($CommandResultValue$="disable")
                set $ReportValue$    ="no"
                opsiServiceCall_configState_Report
            endif
        endif
 
      ;Num Lock 
        set $CommandValue$ = '--numlock'
        set $CommandResult$ = getOutStreamFromSection('DosInAnIcon_BiosQuery')
        set $CommandResultValue$ = getValue ("numlock",$CommandResult$)
 
        set $ReportProperty$ ="post-behavior_num-lock"        
        if (not (getLastExitCode = "0"))
          ;An Error occured do some Errorhandling
            if (getLastExitCode = "119")
              ; 119 means funktion not supported by this Computer
                set $ReportValue$    ="-- not supported --"
                opsiServiceCall_configState_Report
            endif
        else                    
          ;No Error occured so report Value
            if ($CommandResultValue$="on")            
              set $ReportValue$    ="on"
              opsiServiceCall_configState_Report
            endif
            if ($CommandResultValue$="off")
                set $ReportValue$    ="off"
                opsiServiceCall_configState_Report
            endif
        endif
 
; Uninstall the BIOS comunication driver
DosInAnIcon_HAPIUninstall
 
[Sub_configState_Report]
 
markErrorNumber
opsiServiceCall_configState_Report
if errorsOccuredSinceMark > 0
   isFatalError
endif
 
set $ReportProperty$ =""
set $ReportValue$    =""
 
[opsiServiceCall_configState_Report]
"method": "setProductProperty"
"params": [
            "$ProductID$",
            "$ReportProperty$",
            "$ReportValue$",
            "%hostid%"
          ]
 
[DosInAnIcon_BiosCommand]
@echo off
if     "$PwdBIOS$"==" " %ScriptPath%\bin\cctk  $CommandValue$     
if not "$PwdBIOS$"==" " %ScriptPath%\bin\cctk --valsetuppwd="$PwdBIOS$" $CommandValue$
exit %ERRORLEVEL%
 
[DosInAnIcon_BiosQuery]
@echo off
%ScriptPath%\bin\cctk  $CommandValue$     
exit %ERRORLEVEL%
 
[DosInAnIcon_HAPIInstall]
"%ScriptPath%\bin\hapi\hapint.exe" -i -k C-C-T-K -p "hapint.exe" -q
 
[DosInAnIcon_HAPIUninstall]
"%ScriptPath%\bin\hapi\hapint.exe" -r -k C-C-T-K -q

control

[Package]
version: 1
depends: 
incremental: False
 
[Product]
type: localboot
id: dellbios
name: DellBIOS
description: Managen von Dell Bioseinstellungen
advice: 
version: 1.0
priority: 0
licenseRequired: False
productClasses: 
setupScript: install.ins
uninstallScript: 
updateScript: 
alwaysScript: 
onceScript: 
customScript: 
userLoginScript: 
 
[ProductProperty]
type: unicode
name: _set_bios
multivalue: False
editable: False
description: Set Bios Values
values: ["no", "yes"]
default: ["no"]
 
[ProductProperty]
type: unicode
name: password
multivalue: False
editable: True
description: Bios Password
default: [" "]
 
[ProductProperty]
type: unicode
name: password_new
multivalue: False
editable: True
description: Set new Password
values: ["--clear--", "bios"]
 
[ProductProperty]
type: unicode
name: pwr-management_wake-on-lan
multivalue: False
editable: False
description: enable wake on LAN
values: [" ", "addincard", "disable", "enable", "enablewakeonwlan", "lanorwlan", "lanwithpxeboot", "onboard"]
default: [" "]
 
[ProductProperty]
type: unicode
name: pwr-management_control-wlan-radio
multivalue: False
editable: False
description: disable WLAN when LAN is active
values: [" ", "no", "yes"]
default: [" "]
 
[ProductProperty]
type: unicode
name: pwr-management_control-wwan-radio
multivalue: False
editable: False
description: disable WWAN (GSM, UMTS,...) when LAN is active
values: [" ", "no", "yes"]
default: [" "]
 
[ProductProperty]
type: unicode
name: post-behavior_num-lock
multivalue: False
editable: False
description: Numlock on system start
values: [" ", "off", "on"]
default: [" "]
 
[Changelog]
dellbios (1.0-1) testing; urgency=low
 
  * Initial package
 
 -- HL <>  Mon, 09 Jan 2012 15:45:19 +0000
userspace/dellbios.1397058817.txt.gz · Last modified: 2021/08/23 08:37 (external edit)