This is an old revision of the document!
Table of Contents
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 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 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
Dell Bios Settings v2
Da ich nicht gesehen habe das es so eine Art Script schon im WIKI gibt, habe ich ein eigenes geschrieben. Allerdings mit anderen Optionen. Das Script ist in der Lage folgende BIOS Einstellungen vorzunehmen.
- Festplatten Kennwort setzen oder Löschen
- Systempasswort (BIOS Passwort) zu setzen oder zu löschen
- Wake On LAN Einstellungen vornehmen.
Weitere Einstellungen baue ich auf Wunsch mit aufgenommen (Anfrage per Private Message im Forum an Tobias).
Verfügbare Einstellungen: http://www.dell.com/support/manuals/us/en/04/Topic/dell-cmnd-config-v3.1/DCC_CLI-v4/en-us/GUID-F4D70CEF-44A6-4693-BBE3-D40DAABCCD2B
Tree:
├── CLIENT_DATA │ ├── cctkerrorcodes.txt │ ├── custom │ ├── files │ │ ├── x86 │ │ │ ├── cctk.exe │ │ │ ├── cctk_x86_winpe_10.bat │ │ │ ├── cctk_x86_WinPE_3.bat │ │ │ ├── cctk_x86_winpe_4.bat │ │ │ ├── cctk_x86_winpe_5.bat │ │ │ ├── cctk_x86_WinPE.bat │ │ │ ├── HAPI │ │ │ │ ├── dcdbas32.cat │ │ │ │ ├── dcdbas32.inf │ │ │ │ ├── dcdbas32.sys │ │ │ │ ├── dcdesm32.sys │ │ │ │ ├── dcdipm32.sys │ │ │ │ ├── dcdtvm32.sys │ │ │ │ ├── dcesm.sys │ │ │ │ ├── dcesmwdm.sys │ │ │ │ ├── dchapi32.dll │ │ │ │ ├── dchbas32.dll │ │ │ │ ├── dchcfg32.exe │ │ │ │ ├── dchcfl32.dll │ │ │ │ ├── dchesm32.dll │ │ │ │ ├── dchipm32.dll │ │ │ │ ├── dchtst32.exe │ │ │ │ ├── dchtvm32.dll │ │ │ │ ├── dciwds32.exe │ │ │ │ ├── dcmdev32.exe │ │ │ │ ├── dcwipm32.dll │ │ │ │ ├── HAPIInstall.bat │ │ │ │ ├── hapint.exe │ │ │ │ ├── HAPIUninstall.bat │ │ │ │ └── omsacntl.exe │ │ │ ├── mxml1.dll │ │ │ └── pci.ids │ │ └── X86_64 │ │ ├── cctk.exe │ │ ├── cctk_x86_64_winpe_10.bat │ │ ├── cctk_x86_64_WinPE_3.bat │ │ ├── cctk_x86_64_winpe_4.bat │ │ ├── cctk_x86_64_winpe_5.bat │ │ ├── cctk_x86_64_winpe.bat │ │ ├── HAPI │ │ │ ├── dcdbas32.cat │ │ │ ├── dcdbas32.inf │ │ │ ├── dcdbas32.sys │ │ │ ├── dcdbas64.cat │ │ │ ├── dcdbas64.inf │ │ │ ├── dcdbas64.sys │ │ │ ├── dcdipm64.sys │ │ │ ├── dchapi32.dll │ │ │ ├── dchapi64.dll │ │ │ ├── dchbas32.dll │ │ │ ├── dchbas64.dll │ │ │ ├── dchcfg32.exe │ │ │ ├── dchcfg64.exe │ │ │ ├── dchcfl32.dll │ │ │ ├── dchcfl64.dll │ │ │ ├── dchesm32.dll │ │ │ ├── dchipm32.dll │ │ │ ├── dchipm64.dll │ │ │ ├── dchtst32.exe │ │ │ ├── dchtst64.exe │ │ │ ├── dchtvm32.dll │ │ │ ├── dciwds32.exe │ │ │ ├── dcmdev32.exe │ │ │ ├── dcmdev64.exe │ │ │ ├── dcwipm32.dll │ │ │ ├── HAPIInstall.bat │ │ │ ├── hapint64.exe │ │ │ ├── hapint.exe │ │ │ ├── HAPIUninstall.bat │ │ │ └── omsacntl.exe │ │ ├── mxml1.dll │ │ └── pci.ids │ ├── setup3264.opsiscript
