Recommendations for lightweight desktop software deployment tools - deployment

I work in a hospital environment and need to distribute Autohotkey based tools to my colleagues' Windows desktops. Ability to update automatically is required.
I have considered using portable Git as deployment tool, but it is too heavy. Robocopy /MIR switch and SMB server work, but there are issues, such as the mirroring may delete directories if the SMB server is offline.
Is there any lightweight tool that can do this without much configuration? Thanks in advance!

Related

Automated Software deployment through SCCM 2012 using wmi

I was been looking for an option to automated deployment(Installation) of software in the client machines using SCCM 2012 by making calls to WMI classes through code. I have found the following URL
http://www.sepago.de/e/david/2012/03/17/microsoft-configuration-manager-2012-and-powershell-ae-create-deployments
But this only advertises the packages available for install. I want something that would allow me to actually install the software. Hope my query was clear.
Regards
Tiklu
Start-CMApplicationDeployment
Start-CMPackageDeployment
Start-CMTaskSequenceDeployment
And with the -DeployPurpose<DeployPurposeType> parameters set it to Required
You can't do it with Start-CMSoftwareUpdateDeployment.
I'd like to suggest the Total Software Deployment software for remote software installation. This tool is a new alternative to SCCM. It may be a bit less functional in the current version, but I beleive that it will develop into something bigger soon.

Deploy files on a network share from a client machine using an installation package?

We have a large application that has been developed over 15 years and in installed in 200+ client locations. The application currently consists of an Access database and a bunch of executable and report files located on a network share. A Setup.EXE file is run on each client machine (dlls are installed on the client) and then the client machines run the executables directly from the network share. During our upgrade procedure the new executable and report files are copied to the network share and that way each client gets the update immediately.
Our current installation program is very old and, among other things, it doesn't handle x64 so we are in the process of moving to a new deployment tool. At the same time we are migrating client Access databases to SQL Server. I am having difficulty finding a deployment tool to do what we require. Specifically we need the install/upgrade file to do the following:
It must be able to be run from a client machine on a network and copy the new executable and report files to the network share. That share could be a Linux box or a dumb storage device.
Accept a password before running the installation
Allow the user to select the network share as the location to copy the executables
It must NOT add anything to the client machine from where the package is run (Add/Remove Programs, registry, etc.)
Connect to a SQL Server database and run a script
The install/upgrade must be contained in a single, standalone .msi or .exe file. (no dependencies on dlls or frameworks other than those that come with Windows XP)
The file must be able to be run in one simple step. It is the end user that runs the upgrade without our support and without involvement from IT.
It looks like the closest thing to what I need is WiX but the problem there is that whenever the .msi file is run from a client, the client machine thinks that a program is being installed so it allows the client machine to uninstall the product, which is not acceptable.
If the product were written today it would certainly be architected differently but it currently is what it is and we can’t change that. Any help here would be greatly appreciated!
WiX is just a toolset built on top of Windows Installer technology. It makes many things easier and simpler as well as hides lots of Windows Installer weird features... But, it is still limited by Windows Installer, its underlying technology.
Your list of requirements made me think that Windows Installer is not the right technology to choose. I would assume that you'll spend more time on workarounds, than on functional code... But I have no experience with other installation technologies, so I'll leave those recommendations to others.

Windows Web Platform Installer vs Manual Install?

I am going to be moving all my websites to a Windows Web Server 2008 R2 machine. I have installed it in a virtual machine to test that my websites work with it.
I have noticied that there is a program called Web Platform Installer. I have used it to install a few sites but I was just thinking is it a security risk using this? Would it be better for me to manually install the sites (WordPress, Umbraco, etc)
Thanks
We push that out to all our customers just for ease of deployment, and I have not seen any security issues with it, however, I would question its reliability as it fails about 10% of the time (to install whatever I have selected). Having said that, when it does work, its a fairly good tool, as it will install any prerequisites that you may not have been aware of (like SMO, or if you try to install Wordpress without MySQL), and will also keep you up-to-date on newer version of software that you have installed.

How can I change features in Windows Vista programatically?

I'm looking for a way to programatically change features ("Programs and Features" -> "Turn Windows Features on or off") in Windows Vista (and newer Redmond OS, e.g. Server 2008).
Ideal solution would be in the form of a Powershell script (Get-Features, Set-Features), however any pointers to MSDN/other documentation would be very welcome! (my initial quick Google/StackOverflow search came up empty).
Having an automatic way to turn features on or off would allow me to automate computer setup for different scenarios. For example, to develop ASP.NET applications using IIS a bunch of IIS features need to be installed that are not installed by default. My current process of "make sure at least the features shown in this screenshot are checked" leaves a lot to be desired.
I just found an extension that works for Windows 7. "PowerShell module to Add/Remove Windows 7 features" - https://psclientmanager.codeplex.com/
in windows server 2008, there is the ServerManagerCmd command. This can install IIS with or without the subfeatures you want. You can also install/uninstall most of the major Windows features.
You can setup your server the way you want then run ServerManagerCmd -query template.xml. This exports the configuration to an Xml file.
You need to transform the file to prepare it for use on other servers
Copy the transformed file to the server you want to configure and run ServerManagerCmd -inputPath transformTemplate.xml
The way to do this in Vista and Windows 2008 is with the PKGMGR command line tool. Search MSDN for this tool to find a list of features/packages.
It looks live Powershell V2 on Server 2008 R2 (Beta) has a module that does exactly this. Let's hope Windows 7 will have this functionality as well...
For more details, see Managing Server Features with PowerShell Cmdlets on Windows 2008 Server R2 Beta
There's unfortunately not a set of cmdlets, yet, nor is there anything in WMI or any other easily-accessible area. Interestingly, Server Core's script-based role management features will only work on Server Core :). Windows 7 may bring some relief in this regard - but it also might not. In the meantime, you're pretty much left with the native Win32 APIs mentioned in the other answer.
As an aside, I should point out that MS deliberately doesn't want applications installing major OS features due to the security considerations. Adding IIS isn't something done lightly, and it brings with it security considerations and responsibilities. Witness MS' own application setups, which check for pre-reqs like that, but do not offer to install them for you. While I understand wanting to make your app setup as painless as possible, there's also damage to be done in putting major functionality into the OS under someone's nose :). I personally would prefer that apps err on the side of caution, tell me what they need, and let me make the decisions about how and what to install things - especially major functionality that will open ports and be able to execute arbitrary code, like IIS.

What is a good alternative for SourceSafe on a USB Drive?

I like to keep my source files on a USB drive for the portability. To date I have been using Visual SourceSafe for this purpose. What is a good alternative to VSS that fulfils these criteria:
Entire database can be held on a USB "pen" drive
Code / documentation duplicated on local drives
Does not require a central server
Easy to backup and restore using standard backup tools
Integrates with Visual Studio
Has a small footprint
Easy to clean the database and keep small
Compatible with Windows XP, Vista and Vista x64
A good reference on setup would be good too.
I would use SVN (Subversion).
You can use SVN in "file" mode (w/o using the network).
combine this with tortoiseSVN, which integrates to explorer, and you have a nice little portable repository.
For Visual Studio integration, there is the commercial($49) VisualSVN (which I believe is the setup used to develop StackOverflow).
Someone also mentioned AnkhSVN which I haven't used, but some people find it less than satisfying.
Don't use SourceSafe. There's major problems with it. See this:
Article1
Article2
I'd recommend using SubVersion instead.
If you're using Windows, you can use TortoiseSVN.
If you're working on Linux or other Unix variants, try RapidSVN.
Use Subversion. The FSFS style repository will work best as older BDB ones can have issues when moved from computer to computer. With AnkhSVN you'll have full integration with Visual Studio (AnkhSVN 2.x is a source control plugin; older versions still do the job, though).
Bazaar does what you're asking for (in terms of working very well standalone), and there was a 2007 Summer of Code project to build a Visual Studio integration plugin which appears to have produced an at-least-partially-functional product.
Bazaar (and other distributed tools, such as Git, Mercurial, Darcs and the like) are ideal because you can have your repository stored in multiple places (ie. on your pen drive, but also copied up to a server on a regular basis), make changes in one or the other branch (let's say you leave your pen drive at home -- you can build changes against the copy on a remote server, upload them via WebDAV, SFTP, etc, and be able to seamlessly merge them into changes done locally to the pen drive; non-distributed solutions such as Subversion don't have that capability).
There are two common free front-ends Ankhsvn integrates into visual studio
and TortoiseSVN integrates with explorer ( my preference).
There is also sliksvn a self contained svn server for windows.
I'd recommend SubVersion as well - you can find a hosting provider who offers SVN for really cheap, this way your source code is always backed up and available, all you need to keep on your flash drive is SVN client...