前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Import-Module ServerManager Import-Module : 未能加载指定的模块“ServerManager”,因为在任何模块目录中都没有找到有效模块文件..

Import-Module ServerManager Import-Module : 未能加载指定的模块“ServerManager”,因为在任何模块目录中都没有找到有效模块文件..

作者头像
NaughtyCat
发布2020-10-09 16:54:10
3.6K0
发布2020-10-09 16:54:10
举报
文章被收录于专栏:开心的平凡酱

操作系统: Windows server 2008 R2(64位)

C:\Windows\System32\WindowsPowerShell\v1.0\Modules 下有ServerManager的东东,可是还是找不到。

解决这个问题,需要如下2步:

1、Powershell中的执行策略(Execution Policy)

原因一个是因为Powershell默认的执行策略是Restricted,即可以运行单条命令,但不能运行脚本,包括格式和配置文件 (.ps1xml)、模块脚本文件 (.psm1) 和 Windows PowerShell 配置文件 (.ps1)、以及.bat文件。 解决方案是把执行策略改得宽松一点,比如RemoteSigned或者Unrestricted。在Powershell中运行以下命令即可: Set-ExecutionPolicy RemoteSigned 或 Set-ExecutionPolicy Unrestricted或-ExecutionPolicy RemoteSigned

2、64位操作系统和32位操作系统的关系

CMD ,64位操作系统有两个。一个是:C:\Windows\System32\CMD.exe(这个是64位的CMD,尽管名字叫System32);一个是C:\Windows\SysWOW64\CMD.exe(这个是32位的CMD.SysWOW64文件夹下的东西是64位操作系统为运行32位的应用程序而准备的)。

可是我编译生成的.exe是32位的,通过Setup Factory的File.Run(...)或者Shell.Execute(...),会调用C:\Windows\SysWOW64\CMD.exe(32位的CMD)。而ServerManager Module只有64为才有

所以改为编译成64位的就好了。

附(运行的脚本):

InstallDotNET.bat


代码语言:javascript
复制
@echo on

cd C:\Windows\System32\WindowsPowerShell\v1.0
powershell -ExecutionPolicy "UnRestricted" -File C:\InstallDotNET.ps1

InstallDotNET.ps1

import-module ServerManager
Add-WindowsFeature NET-Framework
exit

特别感谢—他们的博客最终给了我解决方案:

  • http://www.tuicool.com/articles/RvqqI3
  • http://blog.csdn.net/leon110/article/details/6203380

备注:

笔者应用场景:通过Setup Factory调用PowerShell的脚本

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-08-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、Powershell中的执行策略(Execution Policy)
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档