Great info. Thanks.
On Wed, Feb 15, 2017, 8:01 AM SIMA Philipp <[email protected]>
wrote:
> Hi guys!
>
> I'm new to this group. If you want to know something about me, just ask ;-)
> I've found a minor (but nasty) bug in installation of Roles and Features
> (the symptom is often known in conjunction with dotnet 3.5 installation)
> and fixed it.
> The problem:
> If a role or feature should be installed and "WindowsSource"-Variable is
> not defined, the "SourcePath"-Variable is used to find the according
> "OS-PATH...\sources\sxs" in ZTIOSRole.wsf's "function getSource". But this
> is only done for the first Role or Feature which is in queue of
> ProcessList-function. (some guys solved that by setting the WindowsSource
> variable but this is just a workaround)
> Why?
> Because the first time a role or feature is installed, the source files
> are copied locally and after copying the return-value of "GetSource" is set
> (line 851). For the next role or feature, no return value is set for
> "GetSource" anymore because the local folder already exists and WSUS or
> Internet is used as source. This is not a consistent behavior.
> How to fix it?
> Just add an "Else" to set "GetSource" if the local path already exist.
>
> Here is the whole function with the two lines added (in line 855):
>
> Function GetSource
>
> ' By default, assume any needed files (e.g. NetFx3) can be
> loaded from WU or WSUS.
>
> GetSource = ""
>
>
> ' If the user explicitly set WindowsSource, copy the files
> locally,
> ' pass the value along via the source switch, and limit
> access to
> ' the internet.
>
> If oEnvironment.Item("WindowsSource") <> "" then
> oUtility.ValidateConnection
> oEnvironment.Item("WindowsSource")
> If not oFSO.FolderExists(oUtility.LocalRootPath &
> "\sources\" & oEnvironment.Item("Architecture")) then
> oLogging.CreateEntry "Copying source files
> locally from " & oEnvironment.Item("WindowsSource"), LogTypeInfo
> oUtility.VerifyPathExists
> oUtility.LocalRootPath & "\sources\" & oEnvironment.Item("Architecture")
> oFSO.CopyFolder
> oEnvironment.Item("WindowsSource"), oUtility.LocalRootPath & "\sources\" &
> oEnvironment.Item("Architecture"), true
> End if
> GetSource = oUtility.LocalRootPath & "\sources\" &
> oEnvironment.Item("Architecture")
>
> ' If the SourcePath value was set (typically in LTI via
> ZTIUtility.vbs),
> ' copy the files locally, pass that path along via the
> source switch,
> ' and limit access to the internet.
>
> ElseIf oEnvironment.Item("SourcePath") <> "" then
> oUtility.ValidateConnection
> oEnvironment.Item("SourcePath")
> If not oFSO.FolderExists(oUtility.LocalRootPath &
> "\sources\" & oEnvironment.Item("Architecture")) then
> If
> oFSO.FolderExists(oEnvironment.Item("SourcePath") & "\sources\sxs") then
> oLogging.CreateEntry "Copying
> source files locally from " & oEnvironment.Item("SourcePath") &
> "\sources\sxs", LogTypeInfo
> oUtility.VerifyPathExists
> oUtility.LocalRootPath & "\sources\" & oEnvironment.Item("Architecture")
> oFSO.CopyFolder
> oEnvironment.Item("SourcePath") & "\sources\sxs", oUtility.LocalRootPath &
> "\sources\" & oEnvironment.Item("Architecture"), true
> GetSource = oUtility.LocalRootPath
> & "\sources\" & oEnvironment.Item("Architecture")
> Else
> oLogging.CreateEntry "SourcePath
> was set, but " & oEnvironment.Item("SourcePath") & "\sources\sxs does not
> exist, not using local source.", LogTypeInfo
> End if
> Else
> GetSource = oUtility.LocalRootPath &
> "\sources\" & oEnvironment.Item("Architecture")
> End if
> End if
>
> End Function
>
>
> Can some MS guy please fix this in next MDT update. (I know there is a new
> version of MDT available since Nov16 which I have not checked right now,
> but assume the problem still exists).
>
> br, Philipp
>
>
>
>
>