If you’re a VBScript hack like me, you’re probably frustrated by the inability of VBScript to include code from other files natively. Yes, you can use funky Job files etc, but nothing beats the simplicity of an all-in-one .VBS.
I’ve created innumerable “helper” scripts and classes over the years, and even wrote a tool I call “region” which selectively merges different files together to make one big (unreadable) script.
My utopia of having simple, small scripts which leveraged my 20 year programming library has not been achieved, until now.
Here you’ll find my “Include for VBS” function – surprisingly simple, but it took 20 years of thinking about it before I got around to writing it. There were two problems to solve: Read more…
NOTE – Production-ready version 5.63 (as far as I am aware) is now available on CTOGoneWild
This version is a real departure from the 5.2 and before series, as I got rid of the dependence on IE for the UI – it was becoming a real pain, with IE trying to display first run screens, telling me it was not installed etc. Generally the IE object was unreliable to say the least.
Instead, I used a whole bunch of HTAs – This is nicer architecturally as each stands alone and can be modified as you see fit, so you can change the UI without changing the logic of the script, plus they run independently so if they crash and burn, again, no problems for the script.
Other than that, there were some more changes to make the “Run On Logon” code asynchronous, so it does not stall the user experience when provisioning them. You can find a full list of changes at the top of the autodomain.vbs script.
Finally, if you enjoy this tool and it saves you a whole bunch of time and effort, you might want to send me something from my Amazon Gift List? Thanks!
You can read more about the current version on my previous blog on this topic.
I finally got around to posting ToastCache to my CTOGoneWild site. This is a simple script which uses a couple of tricks, and a kludge to force the EEM v5 Name index to rebuild on demand.
The EEM Name Index is one of the most useful performance enhancements you can enable within the product – certainly any database running more than 2000 machines needs it turned on to give reasonable performance. The Index speeds up Name>ID resolution. Without it, the server has to crawl the entire database searching for an object which matches the name it’s looking for – This means that logging on slows down for new users (they are placed at the end of the db), and also creating new things takes more time (as the DB has to be trawled end-to-end looking to see if the name is already in use).
The index resolves both of these, and more scenarios by maintaining a “bucket list” of hashed names>IDs. Read more…
I was working on a HTA tool this week, and to make things easier I wanted to encapsulate another HTA within it – really I just didn’t want to have to send two files to the user, I wanted everything in one, and rather than take the obvious approach of putting them both into a self-extracting zip, I decided to work out how to include the code of File B in File A.
Note – you can find the test files for this article on my companion site, CTOGoneWild
Pretty easy stuff I thought, just split B up into a string, and include a simple routine to write it out to the temp directory
1 : Dim s : s="Some text to output to a file" &_ 2 : " which is more than one line and go" &_ 4 : "es on a bit." 6 : Dim fso: Set fso = CreateObject("Scripting.filesystemobject") 8 : fso.createtextfile("test.txt").write s