为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕姐8265434 2021-06-23 18:15:02
我写了一个简单的控制台应用程序,该应用程序以管理员权限运行,代码基于此链接,用户输入.ps1(powershell)脚本路径,应用程序在此路径中执行此脚本。首先,我在“Hello World”脚本上尝试了该应用程序,它运行良好,但是当我尝试其他脚本时,powershell 出现错误。我在.ps1scipt 中有这个:install-WindowsFeature smtp-serverRead-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, scriptfile, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correctand try again.At c:\users\administrator\desktop\EnableSMTP.ps1:1 char:1+ install-WindowsFeature smtp-server+ ~~~~~~~~~~~~~~~~~~~~~~    + CategoryInfo          : ObjectNotFound: (install-WindowsFeature:String) [], CommandNotFoundException    + FullyQualifiedErrorId : CommandNotFoundExceptionPress Enter to exit:
查看完整描述

3 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

这在过去发生在我身上。

在解决方案资源管理器中,右键单击项目--> 属性--> 构建

将平台目标从“任何 CPU”更改为 x64

//img1.sycdn.imooc.com//60d6d8e500018d2906630251.jpg

查看完整回答
反对 回复 2021-06-26
?
互换的青春

TA贡献1797条经验 获得超6个赞

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


查看完整回答
反对 回复 2021-06-26
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

我想你可能需要一个大写的“我”......安装-WindowsFeature


查看完整回答
反对 回复 2021-06-26
  • 3 回答
  • 0 关注
  • 203 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信