操做系統: Windows server 2008 R2(64位)shell
C:\Windows\System32\WindowsPowerShell\v1.0\Modules 下有ServerManager的東東,但是仍是找不到。ui
解決這個問題,須要2步:spa
緣由一個是由於Powershell默認的執行策略是Restricted,便可以運行單條命令,但不能運行腳本,包括格式和配置文件 (.ps1xml)、模塊腳本文件 (.psm1) 和 Windows PowerShell 配置文件 (.ps1)、以及.bat文件。 解決方案是把執行策略改得寬鬆一點,好比RemoteSigned或者Unrestricted。在Powershell中運行如下命令便可: Set-ExecutionPolicy RemoteSigned 或 Set-ExecutionPolicy Unrestricted或-ExecutionPolicy RemoteSigned操作系統
二、64位操做系統和32位操做系統的關係.net
CMD ,64位操做系統有兩個。一個是:C:\Windows\System32\CMD.exe(這個是64位的CMD,儘管名字叫System32);一個是C:\Windows\SysWOW64\CMD.exe(這個是32位的CMD.SysWOW64文件夾下的東西是64位操做系統爲運行32位的應用程序而準備的)。rest
但是我編譯生成的.exe是32位的,經過Setup Factory的File.Run(...)或者Shell.Execute(...),會調用C:\Windows\SysWOW64\CMD.exe(32位的CMD)。而ServerManager Module只有64爲纔有server
因此改成編譯成64位的就行了。xml
附(運行的腳本):blog
InstallDotNET.bat博客
@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的腳本