如何使用PowerShell在Windows 10上启用WCF服务?

3

有人可以帮我在Windows 10上启用WCF服务吗?我尝试了下面列出的命令,但只启用了WCF-TCP-PortSharing45。

Enable-WindowsOptionalFeature -Online -FeatureName WCF-Services45
Enable-WindowsOptionalFeature -Online -FeatureName WCF-HTTP-Activation45
Enable-WindowsOptionalFeature -Online -FeatureName WCF-TCP-Activation45
Enable-WindowsOptionalFeature -Online -FeatureName WCF-Pipe-Activation45
Enable-WindowsOptionalFeature -Online -FeatureName WCF-MSMQ-Activation45
Enable-WindowsOptionalFeature -Online -FeatureName WCF-TCP-PortSharing45

我电脑上的Windows功能:

我的Windows功能

注:该图片为英文示例,不涉及翻译。

运行这些命令后,展示你得到的输出,需要更多信息。 - Vad
1个回答

4
Get-WindowsOptionalFeature -Online | Where-Object {$_.State -like "Disabled" -and $_.FeatureName -like "*WCF*"} | % {Enable-WindowsOptionalFeature -Online -FeatureName $_.FeatureName -All}

这对我很有帮助,关键在于-All标志: 来自微软文档

启用指定功能的所有父功能。如果一个父功能是指定功能在图像中启用所必需的,All 将启用该父项和其所有默认依赖项。

这就是你运行上面命令失败的原因,出现了错误信息:

 "One or several parent features are disabled so current feature can not be enabled"

我的答案使用循环来获取所有可用的WindowsOptionalFeature。另外,您可以像这样简单地使用-All参数运行上述命令:

Enable-WindowsOptionalFeature -Online -FeatureName WCF-Services45 -All

1
Get-WindowsOptionalFeature -Online | Where-Object {$.State -like "Disabled" -and $.FeatureName -like "WCF"} | % {Enable-WindowsOptionalFeature -Online -FeatureName $_.FeatureName -All} - Abhimanyu
1
非常感谢您的回答。您提供的代码运行得非常好。 - Abhimanyu
太好了!很高兴听到这个消息!如果这对你有用,请将我的答案标记为正确解决方案。 - qbanet359
如果我们使用-All标志,如何获取依赖项列表? - Hari K

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接