Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

First of all, I hope I am not duplicating another post. If so I will delete immediatly.

I have gone through many of the questions/answers on this website trying to find what scripting language I should use and I see many people recommending PowerShell, especially if they are completely new to scripting like myself.

The environment I work in is about 150 machines with various MS OSs ranging from XP to Server 2008 R2 Enterprise.

I see that one of my co-workers uses CSSCRIPT for a lot of what he does... and we nick-name him the script king. He has the code so memorized that he doesn't even really know any good suggestions it seems on how I can learn it or what scripting language would be best for me.

I am looking at PowerShell as I said since other posts seem to suggest that. I do not want to have to install something on all 150 machines for my scripts to work. I want to be able to run a script remotely that moves files, updates files, gathers intel about machines and their registries and other various information, etc.

Between these two scripting languages or any others (as I literally am completely new to this and want to learn), what is suggested?

I apologize if this is a duplicate. I could not find anything with this specific question but many very very closely related.

share|improve this question

closed as not constructive by Shane Madden, Ward, Michael Hampton, HopelessN00b, Scott Pack Sep 26 '12 at 13:40

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

up vote 6 down vote accepted

If you work in a Microsoft environment, then the answer is Powershell.

Powershell is practically a requirement for Microsoft administrators going forward. It is designed to replace and supersede VBscript in every way.

Not to mention it's pretty much the most awesome thing that MS has done in... maybe ever!

To your question about what your coworker is using for scripting -- I do not know of a "csscript," but I do know that "cscript" is the command-line version of the VBScript scripting host. So maybe it's VBscript you're looking at. That is also a very popular Microsoft scripting language. But it's not as modern as Powershell.

share|improve this answer
I have to agree. The fact that PS is not installed by default on your oldest OS is inconvenient, yes, but you only have to fix that once. – mfinni Dec 19 '11 at 21:43
Great! Thanks all for your help. I'll be taking the path of Powershell. New e-book for learning... here I come! – Patrick Dec 21 '11 at 14:46

To add to Ryan's answer, going forward Powershell scripting capabilities are part of Microsoft's CEC (Common Engineering Criteria) which means that all MS Products released going forward must provide some Powershell scripting capabilities.

Many products have taken this to heart, in VMM all of the administration is done via Powershell. In fact thr GUI simply builds powershell scripts to implement the actions you have asked it to take. In Exchange 2007 and 2010 there are administrative actions that can ONLY be taken via Powershell (Granted these are not extremely common actions).

The benefits of Powershell are that it is built on .Net and has access to all .Net capabilities (you can often use C# examples to figure out how to do things directly from .Net in Powershell).

Rather than passing text through the pipeline, you pass fully formed Objects allowing cmdlets further down the pipeline access to all properties and methods of the object without any of the intervening cmdlets havign to care about them. This can also make code very reusable.

Finally Powershell is Admin centric rather than Developer centric. The standards of powershell allow for administrators to discover the language and capabilities in an fairly intuitive way while still giving developers and advanced scripters access to all of the underlying goodies. In an ideal world, you would have a cmdlet to do all do the small tasks that needed to be done, and where there was not one, you could either write one via powershell's access to .Net, directly in .Net as a cmdlet or find a developer to do the same.

share|improve this answer
I'm sold. Great comment. – Safado Dec 19 '11 at 23:07
AWESOME! I really appreciate your answer. Thank you so much and this will help out tremendously! – Patrick Dec 21 '11 at 14:45

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