问题
I'm trying to install new features on a Windows Server 2012 system through PowerShell and C#. I am getting this error back when trying to call the Install-WindowsFeature
cmdlet:
The term 'Install-WindowsFeature' is not recognized as the name of a cmdlet, function, script file, or operable program...
I can call other cmdlets though C# and even some of the other new ones. I did a Get-Command
and Install-WindowsFeature
, Remove-WindowsFeature
, and Get-WindowsFeatures
are not listed...but about 980 others are.
Why wouldn't I be able to call this cmdlet from my C# program, but when I go to PowerShell it calls it just fine?
runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript("Install-WindowsFeature");
Collection<PSObject> output = pipeline.Invoke();
回答1:
Try this command instead of Install-WindowsFeature in your code:
Invoke-Expression "Powershell -Command {Import-Module ServerManager ; Install-WindowsFeature XXXX}"
回答2:
Try compiling in x64. In Visual Studio go to menu Project → Properties → Build - Platform Target = x64.
来源:https://stackoverflow.com/questions/13021547/powershell-cmdlet-install-windowsfeature-called-from-c-sharp-errors-and-is-not-l