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  
           

Abstract


This package can read and set some Dell BIOS Values

Supported Values:

Password
wake on LAN
control wlan radio
control wwan radio
num lock

Simple installation of this package makes an audit of
currently set BIOS Values and reports the state back
into the opsi package properties (it also reports it this
BIOS property is available on the specific computer hardware)

To set BIOS values the _set_bios property must be true.

To set the bios password use the password new property
if the password is set correctly this value gets cleared
and the new password is automatically entered into the
password property field.

if the Value in the password field is wrong (or the BIOS
password is set but not properly configured in the
opsi Package) -–password required–- or -–password wrong–-
will be reported in this field.

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, 04 Jan 2014 15:45:19 +0000
userspace/dellbios.1397060879.txt.gz · Last modified: 2021/08/23 08:37 (external edit)