Maybe someone needs that.
I read out the Winver from the registry, if it does not correspond to 1909 the Windows Update Assistant from Microsoft is loaded and an upgrade to 1909 is performed. After 90 Minutes the temporary directory is deleted. The whole thing needs a custom field "CF - Winver" to save the Windows version.

<?xml version="1.0" encoding="utf-8"?>
<ScriptExport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.kaseya.com/vsa/2008/12/Scripting">
  <Procedure name="Windows 10 upgrade to 1909" treePres="3" id="1015088919" folderId="250953020644818" treeFullPath="EXITSYS.Windows Update">
    <Body description="German:&#xA;Die Prozedur liest aus der Registrierung die Windows Version aus. Wenn die Version kleiner als 1909 ist, wird der Windows Uprade Assistent von Microsoft geladen und dann Silent installiert. Es wird 90 Minuten gewartet und dann wird der angelegte temporäre Ordner gelöscht. Anschliessend wird zur Prüfung auf ein erfolgreiches Update erneut die Winver Version aus der Registrierung ausgelesen und in das Custom Field &quot;CF - Winver&quot; geschrieben.&#xA;&#xA;English: The procedure reads the Windows version from the registry. If the version is less than 1909, the Windows Uprade Wizard from Microsoft is loaded and Silent is installed. It waits 90 Minutes and then deletes the temporary folder created. Afterwards, to check for a successful update, the Winver version is read from the registry again and written to the custom field &quot;CF - Winver&quot;.">
      <Statement name="GetVariable" continueOnFail="false">
        <Parameter xsi:type="EnumParameter" name="VariableType" value="RegistryValue" />
        <Parameter xsi:type="StringParameter" name="SourceContent" value="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ReleaseId" />
        <Parameter xsi:type="StringParameter" name="VariableName" value="winver" />
      </Statement>
      <If description="">
        <Condition name="CheckVariable">
          <Parameter xsi:type="StringParameter" name="VariableName" value="#winver#" />
          <Parameter xsi:type="EnumParameter" name="Condition" value="LessThan" />
          <Parameter xsi:type="StringParameter" name="Value" value="1909" />
        </Condition>
        <Then>
          <Statement name="WriteScriptLogEntry" continueOnFail="false">
            <Parameter xsi:type="StringParameter" name="Comment" value="Version #winver# wird auf 1909 aktualisiert" />
          </Statement>
          <Statement name="GetVariable" continueOnFail="false">
            <Parameter xsi:type="EnumParameter" name="VariableType" value="ConstantValue" />
            <Parameter xsi:type="StringParameter" name="SourceContent" value="#vAgentconfiguration.AgentTempDir#\Windows10-1909" />
            <Parameter xsi:type="StringParameter" name="VariableName" value="win" />
          </Statement>
          <Statement name="ExecuteShellCommand" continueOnFail="false">
            <Parameter xsi:type="StringParameter" name="Command" value="mkdir #win#" />
            <Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="System" />
            <Parameter xsi:type="BooleanParameter" name="Is64Bit" value="False" />
          </Statement>
          <Statement name="GetURL" continueOnFail="false">
            <Parameter xsi:type="StringParameter" name="URL" value="https://download.microsoft.com/download/9/b/f/9bf08afb-bfd8-488a-9ce6-90134cea4d8f/Windows10Upgrade9252.exe" />
            <Parameter xsi:type="StringParameter" name="ResponseFileName" value="#win#\Windows10Upgrade9252.exe" />
            <Parameter xsi:type="BooleanParameter" name="WaitComplete" value="True" />
          </Statement>
          <Statement name="ExecuteShellCommand" continueOnFail="false">
            <Parameter xsi:type="StringParameter" name="Command" value="#win#\Windows10Upgrade9252.exe /quietinstall /skipeula /auto upgrade /copylogs #win#\logs" />
            <Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="System" />
            <Parameter xsi:type="BooleanParameter" name="Is64Bit" value="False" />
          </Statement>
          <Statement name="PauseScript" continueOnFail="false">
            <Parameter xsi:type="IntegerParameter" name="Seconds" value="5400" />
          </Statement>
          <Statement name="Delete Directory" continueOnFail="false">
            <Parameter xsi:type="StringParameter" name="Parameter1" value="#win#" />
            <Parameter xsi:type="StringParameter" name="Parameter2" value="true" />
          </Statement>
          <Statement name="GetVariable" continueOnFail="false">
            <Parameter xsi:type="EnumParameter" name="VariableType" value="RegistryValue" />
            <Parameter xsi:type="StringParameter" name="SourceContent" value="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ReleaseId" />
            <Parameter xsi:type="StringParameter" name="VariableName" value="winver" />
          </Statement>
          <Statement name="UpdateSystemInfo" continueOnFail="false">
            <Parameter xsi:type="StringParameter" name="ColumnName" value="CF - Winver" />
            <Parameter xsi:type="StringParameter" name="Value" value="#winver#" />
          </Statement>
        </Then>
        <Else>
          <Statement name="WriteScriptLogEntry" continueOnFail="false">
            <Parameter xsi:type="StringParameter" name="Comment" value="es ist bereits Version #winver# installiert" />
          </Statement>
          <Statement name="UpdateSystemInfo" continueOnFail="false">
            <Parameter xsi:type="StringParameter" name="ColumnName" value="CF - Winver" />
            <Parameter xsi:type="StringParameter" name="Value" value="#winver#" />
          </Statement>
        </Else>
      </If>
    </Body>
  </Procedure>
</ScriptExport>


Timeout changed to 90 min
[edited by: exitsys at 2:12 PM (GMT -8) on Feb 3, 2020]