脚本手动运行但不是通过 c#

我写了一个简单的控制台应用程序,该应用程序以管理员权限运行,代码基于此链接,用户输入.ps1(powershell)脚本路径,应用程序在此路径中执行此脚本。


首先,我在“Hello World”脚本上尝试了该应用程序,它运行良好,但是当我尝试其他脚本时,powershell 出现错误。


我在.ps1scipt 中有这个:


install-WindowsFeature smtp-server

Read-Host -Prompt “Press Enter to exit”

令人惊讶的是,如果我install-WindowsFeature smtp-server手动运行此命令,它可以正常工作。


但我需要应用程序来完成,而不是手动完成。


这是powershell错误:


install-WindowsFeature : The term 'install-WindowsFeature' is not recognized as the name of a cmdlet, function, script

file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct

and try again.

At c:\users\administrator\desktop\EnableSMTP.ps1:1 char:1

+ install-WindowsFeature smtp-server

+ ~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : ObjectNotFound: (install-WindowsFeature:String) [], CommandNotFoundException

    + FullyQualifiedErrorId : CommandNotFoundException


Press Enter to exit:


慕姐8265434
浏览 204回答 3
3回答

MMMHUHU

这在过去发生在我身上。在解决方案资源管理器中,右键单击项目--> 属性--> 构建将平台目标从“任何 CPU”更改为 x64

互换的青春

Install-WindowsFeature 是 ServerManager 模块提供的 cmdlet。当您手动运行脚本时,您必须已经将此模块导入到您的会话中。通过程序运行时,模块不会导入,因此无法识别 cmdlet 名称。尝试将其添加Import-Module ServerManager为脚本的第一行,看看是否能解决您的问题。

海绵宝宝撒

我想你可能需要一个大写的“我”......安装-WindowsFeature
打开App,查看更多内容
随时随地看视频慕课网APP