Welcome to KORG!

Taking it bit by bit..
 Code:
Quit()
This is not totally valid - Quit is a command and not a function. Replace these with "Quit 0" or "Quit @ERROR" for an error termination.


 Code:
Function ImprovisInstall()
  $ Shell "\\adpispc-jbsiede\E\Improvis.bat"
EndFunction
Why is there a "$" in front of each of the Shell statements?

You should also add some error checking. Possibly consider using WshPipe to execute the command so you can colllect the STDOUT and STDERR streams, along with a valid error code. There are several of these..

Installing from a UNC path is not generally recommended, and may not even function for some install apps. Using UNC paths embeds the install path in the registry, which could be an issue during feature adds or upgrades if the original server is unavailable. Using a mapped drive is preferred, as the install path can be matched regardless of the install server.

 Code:
; IP Address...
$IP1 = LTRIM(SUBSTR(@IPADDRESS0, 1, 3))
$IP2 = LTRIM(SUBSTR(@IPADDRESS0, 5, 3))
$IP3 = LTRIM(SUBSTR(@IPADDRESS0, 9, 3))
$IP4 = LTRIM(SUBSTR(@IPADDRESS0, 13, 3))
; Then we build a valid IP address from the 4 octets, again seperated by dots...
$MyIP=$IP1 + "." + $IP2 + "." + $IP3 + "." + $IP4
Yikes!
 Code:
$MyIP = Join(Split(@IPADDRESS0, ' '), '.')
is much simpler and direct.

Then there's the Date, Time, and other lines that assign a macro value to a variable. The variables are not used except to write to an INI file. This isn't efficient.

 Code:
$OS="@producttype, @csd"
is not recommended (No Macros or Vars in Strings!). Use
 Code:
$OS = @PRODUCTTYPE + '. ' + @CSD
instead.

 Code:
$colItems = $objWMIService.ExecQuery("Select * from Win32_BIOS")
For Each $objItem in $colItems
	$ServiceTag = $objItem.SerialNumber
Where is the "Next" to close the "For"?

Finally, why is there a "Breal On" in the TagExport function? This is usually set at the start of the script and will rarely change during processing.

I don't run KF.Net, so can't actually test this further, but these issues should be resolved before moving forward. Better structure (indents, overall formatting, comments) would help, as would moving the data (command strings, UNC paths) out of the commands and into a set or array of vars at the top of the program. Embedding this data in the program becomes unmanagable after a bit.

Glenn
PS - Click Edit on your post to see how CODE tags are used to format your script code.
_________________________
Actually I am a Rocket Scientist! \:D