Differences

This shows you the differences between two versions of the page.

Link to this comparison view

userspace:reboot-control [2019/05/14 14:38] (current)
tobias created
Line 1: Line 1:
 +This Function helps to store, read and update a reboot flag in your registry.
  
 +**Modes:**
 +    write => Write a new rebootflag to registry or update to a new value
 +    read => Read actual value from registry
 +    delete => Remove reboot flag from registry
 +    ​
 +**Syntax:​**\\
 +rebootcontrol("<​Counter>​ | <​auto>","<​mode>"​)
 +
 +
 +
 +**Examples:​**\\
 +set $rebooted$ = rebootcontrol("​auto","​read"​)\\
 +Read the actual value from the Registry, you will get a string value from this function.
 +\\
 +\\
 +set $DummyVar$ = rebootcontrol("​auto","​write"​)\\
 +Write a new flag to the registry. If no flag is stored in the registry, the script creates a new one.\\
 +If a flag is found, the value is increased. ​
 +\\
 +\\
 +set $DummyVar$ = rebootcontrol("​2","​write"​)\\
 +Write the value "​2"​ to the reboot flag
 +\\
 +\\
 +set $DummyVar$ = rebootcontrol("​auto","​delete"​)\\
 +Deletes the flag from the registry, the first option (auto) must be present but is ignored. ​
 +
 +
 +
 +<​code>​
 +DefFunc rebootcontrol($counter$ : string, $mode$ : string) : string
 + DefVar $debug$
 + DefVar $productname$
 + set $debug$ = "​false"​
 +
 + if $debug$ = "​True"​
 + DefVar $counter$
 + DefVar $mode$
 +
 + set $counter$ = "​1"​
 + set $mode$ = "​write"​
 + set $ProductName$ = "​TEST"​
 + else
 + message "debug off"
 + message "​detecting product-ID"​
 + message "​%installingProdName%"​
 + set $ProductName$ = "​%installingProdName%"​
 + endif
 +
 + DefVar $WinstRegKey$
 + DefVar $Flag$
 +
 +
 + Set $WinstRegKey$ = "​HKLM\SOFTWARE\opsi.org\winst\"​+$ProductName$+""​
 +
 +
 + switch $mode$
 + case "​write"​
 + message "​Writing Reboot Counter"​
 + if $counter$ = "​auto"​
 + Set $counter$ = getregistrystringvalueSysNative("​["​+$WinstRegKey$+"​]RebootFlag"​)
 + set $counter$ = calculate($counter$+"​+"​+"​1"​)
 + message = $counter$
 + Registry_SaveRebootFlag /sysnative
 + else
 + Registry_SaveRebootFlag /sysnative
 + endif
 + set $result$ = $counter$ ​
 +
 + endCase
 +
 + case "​read"​
 + message "​Reading Reboot Counter"​
 + Set $counter$ = getregistrystringvalueSysNative("​["​+$WinstRegKey$+"​]RebootFlag"​)
 + set $result$ = $counter$ ​
 + endCase
 +
 + case "​delete"​
 + message "​Delete Reboot Counter"​
 + Registry_delete_RebootCounter /sysnative
 + set $result$ = "​deleted"​
 + endCase
 +
 + DefaultCase
 + message "no mode definiert ERROR"
 + set $result$ = "​ERROR$
 + isFatalError
 + endCase
 + EndSwitch
 +
 +
 +
 +[Registry_SaveRebootFlag]
 +openKey [$WinstRegKey$]
 +set "​RebootFlag"​ = "​$counter$"​
 +
 +[Registry_delete_RebootCounter]
 +deletekey [$WinstRegKey$]
 +
 +endfunc
 +
 +</​code>​

QR Code
QR Code userspace:reboot-control (generated for current page)