We ship automation systems with windows based operator station. They have a plethora of various components with long manual installation scripts. 15 years worth of legacy components and various procedures.

  • ini-files,
  • computer settings
  • security settings
  • windows services settings
  • Windows version.
  • Various security patches
  • Multi core enabled.
  • Registry settings.
  • Free disk space req.
  • Third party components.
  • Proprietary components.
  • Network settings, Security settings etc
  • Network IP/ settings
  • Plant/Plant type/Station specific extensions.
  • Plant specification.
  • Various settings in various ini-files.

I wish to automate the installation process as well as producing a verification report to attest that requirements are satisfied. As I see it, all(?) such steps I can think of are feasible and verifiable through the powershell engine. I suppose that I will be composing a pre-install environment containing powershell and a powershell based application that will be able to check that requirements are satisfied and, if possible, correct them.

I was thinking of using PSake for this. It is strictly a powershell based software build tool, but its concept of dependencies seems to be what is missing from powershell out of the box to suit my needs.

Any opinion on this approach would be appreciated.

  • have you tried sysprep? or are there alot of custom settings per site etc? Also are these windows embedded or just regular windows? – tony roth Jul 30 '10 at 19:52

I think that for the most, if not everything, that you list could be doable with Powershell and PSake.

I'm currently working on a build environment for our applications using PSake mainly 1) because it's Powershell and 2) there's no nasty XML to. I love PSake conceptually, but there are a couple of things that are left to be desired.

I found it hard to find reference documentation for PSake. The best thing I've found are examples and the FAQ on the PSake site. Now, that said, I'm not sure that a very extensive reference set is necessary. It's pretty straight-up.

The other thing is that I found and reported a bug in the new nested build feature of PSake 4.0 which would proabaly be something that you would want to use. The author did provide a workaround but I'm not sure if it's as good as what the working feature would be.

Because of the issues we're also now looking at Rake, but I'm not sure that a Ruby dependency would be something you want to introduce into your project.

  • Thank you. Would it be possible to, for example, have the automation system "depend" on service pack 3 being installed, and then, if it is not, try to "build it" (install it). Is the dependency concept generic or does it only apply to time stamps on files? – Tormod Jul 30 '10 at 22:18
  • 1
    Sure, I don't see why not. You would put a build task in checking for the existence of SP3. The dependency concept is based on tasks that you define. PSake maintains the dependencies, you maintain what you want the dependencies to be. The appealing thing about PSake is that since it is Powershell you have that entire environment available to you in your build tasks. – squillman Jul 30 '10 at 22:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.