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
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, 09 Jan 2012 15:45:19 +0000