次の方法で共有


如何在 Server Core 上装 PowerShell

你想在 Windows Server 2008 Server Core 模式下使用 PowerShell 吗?这篇博文教您如何手把手的把 PowerShell 装进 Server Core 中。

在您开始之前,请您特别注意,微软官方对这样的作法并未提供官方的支持,所以发生了问题,那么各位看倌可得凭著自己的技术能力或是从社区找到解决的方法喔。如果您真的遇到问题了,也希望您能协助提供您的解决方法,以造福大众呀。如果您不是很急著用,微软官方正在研制官方版本的 .NET 与 PowerShell 在 Server Core 上的安装套件,您也可以再等等。

简介

Windows Server 2008 提供了命令行的设置选项 - Server Core。安装 Server Core 的服务器,由于没有浏览器的功能以及其他使用者介面的元件,因此可以有效减少攻击与安装补丁的优点。

不过由于 Server Core 只拥有传统的 cmd.exe 来做为指令的输入,对许多熟知 PowerShell 与 .NET 的朋友来说可能会较为不便。

底下是小弟在网上找到的安装 PowerShell 的步骤,希望对大家有帮助:

步骤一:安装 Visual C++ Redistributable Packages (装了之后就能用 .NET 了)

步骤二:安装 .NET 2.0 SP1

步骤三:安装 PowerShell

步骤四:昭告全世界你装好了!

OK,那么就开始咱们的冒险旅程吧。

1. Visual C++ Redistributable Packages

这个是所有步骤中最简单的,你只需要下载底下您所需要的版本。

Microsoft Visual C++ 2005 SP1 Redistributable Package (x64)

Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)

然后利用 ROBOCOY 这样的工具来将您需要的档案复制到装有 Server Core 的服务器。至于 ROBOCOPY 的相关参考信息,请见参考资料 2。

复制档案完成后,如果你是 x86 的 Server Core 机器,您只要执行 vcredist_x86.exe。

如果您是 x64 的 Server Core 机器,则您需要执行 vcredist_x86.exe 与 vcredist_x64.exe。

2. .NET Framework

这是最棘手的部份。由于 PowerShell 需要 .NET 2.0,而在 Windows Server 2008 中 .NET 2.0 是以元件的方式存在,因此,我们需要从 .NET Framework 的套件包来安装。底下是安装步骤:

  1. 下载 .NET Framework 3.5
  2. 解开套件包取得 .NET 2.0 Service Pack 1 的安装文档
  3. 下载安装 Orca MSI 编辑程序
  4. 使用 Orca 移除 Windows 版本核对
  5. 运行更新后的 MSI

2.1 下载 .NET Framework 3.5

请到微软网站下载。

2.2 解开套件包取得 .NET 2.0 Service Pack 1 的安装文档

a. 创建 C:\deploy 文件夹

b. 将下载下来的 .NET Framework 3.5 套件包放在这个文件夹中

c. 下载 deploy.cmd 脚本并放在刚刚创建的那个文件夹

d. 运行 deploy.cmd 脚本

当脚本运行完后,C:\Deploy\AIP 这个文件夹中会产生 NetFx20_x64 与 NetFx20_x86 文件夹,里面会有 .NET 2.0 Framework 需要的文档。

2.3 下载安装 Orca MSI 编辑程序

由于 MSIs 会进行 Windows 版本核对,所以我们需要利用微软提供的 MSI 编辑程序来停止这个检查。

如果你没有 Orca,你可以透过下面的步骤来下载:

a. 在这里下载 Windows SDK for Windows Server 2008 and .NET Framework 3.5

b. 安装时除了 "Win32 Developer Tools " 要打勾外,其他选项都不要勾。

 

c. 安装完后,请到 C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin 运行 Orca.msi

2.4 使用 Orca 移除 Windows 版本核对

接下来就是解除版本核对的步骤了:

a. 运行 Orca 并开启 C:\Deploy\AIP\NetFx20_x86\NetFx20a_x86.msi (32-bit 版本) 或是 C:\Deploy\AIP\NetFx20_x64\NetFx20a_x64.msi (x64 版本)

b. 在左边 Table 选单选择 Component

c. 如果是 x86 的机器,请在右边选单找到 Regtlib.exe_Tool_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
如果是 x64 的机器除了要找到上述的元件外,还要找到 Regtlib.exe_Tool_____A64.3643236F_FC70_11D3_A536_0090278A1BB8

d. 在 Condition 的栏目将原先 "(VersionNT < 600) or Version9X" 的值改为 "VersionNT or Version9X"

 

e. 储存所有的变更

2.5 运行更新后的 MSI

将我们创建的文件夹中的所有文档复制到运行 Server Core 的机器,并运行下面的命令来启动 MSI

64-bits 版本:

%SystemRoot%\system32\msiexec.exe /package "NetFx20_x64\NetFx20a_x64.msi" vsextui=1 transforms="ServerCore.mst"

32-bits 版本:

%SystemRoot%\system32\msiexec.exe /package "NetFx20_x86\NetFx20a_x86.msi" vsextui=1

如果你成功操作到这里,恭喜你,咱已经将 .NET Framework 装好了。^_^

接下来,只要把 PowerShell装上就可以了。

3. Windows PowerShell

如果你只打算用 PowerShell v1 的版本,那就不需要做下面的步骤,因为 Windows Server 2008 已经包含了 PoweShell v1 的元件。但如果你想用 PowerShell v2 的版本,您可以在这里下载 Windows PowerShell V2 Community Technology Preview 2 (CTP2),下载后,只需要将 msi 文档拷贝到 Server Core 的机器上,并运行 msi 即可。

4. 恭喜,你装好了!

现在你就可以开始使用 PowerShell 了。

你只需要执行:

c:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

就可以在屏幕上看到熟悉的:

PS C:>

 

 

参考资料:

1. PowerShell on Server Core

2. installing .NET on Server Core

3. robocopy 帮助