FOG Snapin Client download error
-
@Timo This seems to be a restriction in C# following the discussion here: http://www.codeproject.com/Questions/142532/appending-and-splitting-files-larger-than-gb
Possibly this is only happening because you have 32 bit Windows installed?? Please check! Or this might be a general restriction and we need to read large snapin files as chunks, @Jbob?
-
@Sebastian-Roth said in FOG Snapin Client download error:
@Timo This seems to be a restriction in C# following the discussion here: http://www.codeproject.com/Questions/142532/appending-and-splitting-files-larger-than-gb
Possibly this is only happening because you have 32 bit Windows installed?? Please check! Or this might be a general restriction and we need to read large snapin files as chunks, @Jbob?
Hi Sebastian, no the Client runs an Windows 7 x64 Installation
-
@Timo the original header problem is fixed. @Sebastian-Roth is correct in that the hashing error is a limitation of c#. I’ll see what I can do.
-
@Timo for now you could set the snapin file to a batch script which downloads the exe from a samaba share or something and runs it.
-
@Jbob said in FOG Snapin Client download error:
@Timo for now you could set the snapin file to a batch script which downloads the exe from a samaba share or something and runs it.
Hi Jbob thx for your help. How can i realize that? I’ve an Synology NAS where i can store that, do you have an example script, maybe?
-
@Timo Batch lacks the ability to download a file natively. Here is a vbs script which should do what you are looking for.
Save the code as “Bootstrap.vbs”, and update the
http://fog-server/MyProgram.exe
line to reflect a real URL where your snapin can be downloaded, the easiest way may be to just copy your snapin file to/var/www/html/
, and then it is accessible viahttp://{fog-server}/MyProgram.exe
, where Myprogram.exe is the file name. Also update references toMyProgram.exe
to your program’s file name.Note that this code is untested.
Use the following snapin settings:
Snapin Run With: cscript
Snapin Run With Args: //B //Nologo
Snapin File: Bootstrap.vbs
Bootstrap.vbs code:
'http://www.robvanderwoude.com/vbstech_internet_download.php HTTPDownload "http://fog-server/MyProgram.exe", "C:\" Dim objShell Set objShell = WScript.CreateObject( "WScript.Shell" ) objShell.Run("C:\MyProgram.exe") Set objShell = Nothing Dim fso Set fso = CreateObject("Scripting.FileSystemObject") fso.DeleteFile("C:\MyProgram.exe") Set fso = Nothing Sub HTTPDownload( myURL, myPath ) ' This Sub downloads the FILE specified in myURL to the path specified in myPath. ' ' myURL must always end with a file name ' myPath may be a directory or a file name; in either case the directory must exist ' ' Written by Rob van der Woude ' http://www.robvanderwoude.com ' ' Based on a script found on the Thai Visa forum ' http://www.thaivisa.com/forum/index.php?showtopic=21832 ' Standard housekeeping Dim i, objFile, objFSO, objHTTP, strFile, strMsg Const ForReading = 1, ForWriting = 2, ForAppending = 8 ' Create a File System Object Set objFSO = CreateObject( "Scripting.FileSystemObject" ) ' Check if the specified target file or folder exists, ' and build the fully qualified path of the target file If objFSO.FolderExists( myPath ) Then strFile = objFSO.BuildPath( myPath, Mid( myURL, InStrRev( myURL, "/" ) + 1 ) ) ElseIf objFSO.FolderExists( Left( myPath, InStrRev( myPath, "\" ) - 1 ) ) Then strFile = myPath Else WScript.Echo "ERROR: Target folder not found." Exit Sub End If ' Create or open the target file Set objFile = objFSO.OpenTextFile( strFile, ForWriting, True ) ' Create an HTTP object Set objHTTP = CreateObject( "WinHttp.WinHttpRequest.5.1" ) ' Download the specified URL objHTTP.Open "GET", myURL, False objHTTP.Send ' Write the downloaded byte stream to the target file For i = 1 To LenB( objHTTP.ResponseBody ) objFile.Write Chr( AscB( MidB( objHTTP.ResponseBody, i, 1 ) ) ) Next ' Close the target file objFile.Close( ) End Sub
-
I’d opt for a batch file still as a stop-gap.
use xcopy to get the file. it supports UNC paths.
-
@Jbob said in FOG Snapin Client download error:
@Timo Batch lacks the ability to download a file natively. Here is a vbs script which should do what you are looking for.
Save the code as “Bootstrap.vbs”, and update the
http://fog-server/MyProgram.exe
line to reflect a real URL where your snapin can be downloaded, the easiest way may be to just copy your snapin file to/var/www/html/
, and then it is accessible viahttp://{fog-server}/MyProgram.exe
, where Myprogram.exe is the file name. Also update references toMyProgram.exe
to your program’s file name.Note that this code is untested.
Use the following snapin settings:
Snapin Run With: cscript
Snapin Run With Args: //B //Nologo
Snapin File: Bootstrap.vbs
Bootstrap.vbs code:
'http://www.robvanderwoude.com/vbstech_internet_download.php HTTPDownload "http://fog-server/MyProgram.exe", "C:\" Dim objShell Set objShell = WScript.CreateObject( "WScript.Shell" ) objShell.Run("C:\MyProgram.exe") Set objShell = Nothing Dim fso Set fso = CreateObject("Scripting.FileSystemObject") fso.DeleteFile("C:\MyProgram.exe") Set fso = Nothing Sub HTTPDownload( myURL, myPath ) ' This Sub downloads the FILE specified in myURL to the path specified in myPath. ' ' myURL must always end with a file name ' myPath may be a directory or a file name; in either case the directory must exist ' ' Written by Rob van der Woude ' http://www.robvanderwoude.com ' ' Based on a script found on the Thai Visa forum ' http://www.thaivisa.com/forum/index.php?showtopic=21832 ' Standard housekeeping Dim i, objFile, objFSO, objHTTP, strFile, strMsg Const ForReading = 1, ForWriting = 2, ForAppending = 8 ' Create a File System Object Set objFSO = CreateObject( "Scripting.FileSystemObject" ) ' Check if the specified target file or folder exists, ' and build the fully qualified path of the target file If objFSO.FolderExists( myPath ) Then strFile = objFSO.BuildPath( myPath, Mid( myURL, InStrRev( myURL, "/" ) + 1 ) ) ElseIf objFSO.FolderExists( Left( myPath, InStrRev( myPath, "\" ) - 1 ) ) Then strFile = myPath Else WScript.Echo "ERROR: Target folder not found." Exit Sub End If ' Create or open the target file Set objFile = objFSO.OpenTextFile( strFile, ForWriting, True ) ' Create an HTTP object Set objHTTP = CreateObject( "WinHttp.WinHttpRequest.5.1" ) ' Download the specified URL objHTTP.Open "GET", myURL, False objHTTP.Send ' Write the downloaded byte stream to the target file For i = 1 To LenB( objHTTP.ResponseBody ) objFile.Write Chr( AscB( MidB( objHTTP.ResponseBody, i, 1 ) ) ) Next ' Close the target file objFile.Close( ) End Sub
Hi there, at this moment i’m trying your script but i think it hangs in the download it now takes over 10 minutes, but i have no status window what is happening. The download from my fogserver manually tested runs fine
-
If i run it on the Client in an Dos box , with cscript bootstrap.vbs it comes up with an error after a few seconds "WinHttp.WinHttpRequest: For this operation is not enough memory available But has enough free Memory (60GB)
-
@Timo memory is not disk space. It sounds, to me, like it’s trying to put the whole file in ram. You may need to have the script copy the file locally then run it from the local machine.
-
@Timo v0.10 allows for hashing large files. When it is released, can you confirm that the issue is fixed?