문제

I'm just getting started in PowerShell and one of my sysadmins told me that Powershell can do as much as C# can for systems management, if not more.

Please forgive the ignorance of this question, but when would I use Powershell over C#?

도움이 되었습니까?

해결책

When I worked in the Windows build lab a LONG time ago (1997) the rule I was taught that if the code satisfies either of these two conditions write it in interpreted script, otherwise write it in compiled code:

  1. there's more overhead than code (using/include lines, function declaration, etc)
  2. there's a better than 10% chance that the code will change before it gets run again

다른 팁

1) PowerShell is good for relatively small well defined tasks, especially ephemeral one-day tasks and interactive tasks when you are coding right in the command line. If a task requires just a few lines of PowerShell code (and you know that because you know PowerShell well enough!) then launching a full C# project is often overkill.

2) C# is much better for large projects or where performance is critical. It is better for any project that will presumably require debugging and troubleshooting.

3) PowerShell and C# can perfectly work together. It is easy to call one from another. PowerShell is good for connecting .NET components. You can implement your complex and performance critical pieces in C# and then combine and glue those pieces together with PowerShell.

From an infrastructure point of view, Hyper-V is getting huge in the virtualization market, it's outgrowing VMWare every year in terms of market share growth. Concerning SCVMM automation, if you want to leverage VMM functionality of managing multiple hosts running different hypervisors, VMM powershell interface is the only option.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top