This is an old revision of the document!
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
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 if 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 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
[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
[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