powershell_logo 正确使用 Windows PowerShell 执行服务器管理器操作

        最近在学习 Exchange 2010,其中会涉及到 Exchange 2010 的安装前准备工作,而这一内容主要包括了系统角色及功能的安装,虽然通过图形界面可以执行这些操作,但是如果使用命令行来执行自动化的批量安装岂不是更好。借此机会 gOxiA 可以好好学习学习 Windows Server 2008 R2 的管理命令。

        大家应该知道,在 Windows Server 2008 R2 上,Windows PowerShell 的角色更加重要了,当我们再使用 ServerManagerCmd 来执行角色和功能安装时会看到一段系统提示,告知我们这一服务器管理命令将在下一个系统版本中被抛弃,取而代之的是 Windows PowerShell cmdlet,不可否认从目前相关的介绍来看 Windows PowerShell 是非常强大的,并且已经有很多微软产品开始支持基于 Windows PowerShell 的管理。看来大势已定,不想落后就必须学习和了解 Windows PowerShell!

        其实,gOxiA 对 Windows PowerShell 了解甚少,看到那些涉及到编程语言的字符我就害怕(编程菜鸟,完全不懂的级别),这不今天就出了丑!从相关帮助中了解到,在 Windows PowerShell 下可以使用 Get-WindowsFeatureAdd-WindowsFeatureRemove-WindowsFeature 来管理服务器的角色和功能,出于之前对 Windows PowerShell 的简单认识,于是找到了附件中的 Windows PowerShell 程序并启动了它。

WindowsPowerShell

        在打开的 Windows PowerShell 环境下,键入了 Get-WindowsFeature,问题出来了!给我反馈了一大堆的红色错误信息,很明显 Windows PowerShell 并未识别这个命令。如下图所示:

ps_module_error 

        查阅了 TechNet 资源库才了解到,如果通过 Windows PowerShell 来执行服务器管理器的操作,必须加载其对应的模块 — ServerManager,我们可以在 Windows PowerShell 环境下执行“Get-Module”获取当前系统中的模块。gOxiA 的个人理解是 Windows PowerShell 是一个功能强大的环境,除了内置的命令和支持以外,我们还可以通过其他产品本身提供的 Windows PowerShell 模块,为其提供在 Windows PowerShell 环境下对该产品的管理支持。比如 Exchange Server,就在其程序组中提供了一个 PoweShell 的快捷方式,通过该程序打开的 PowerShell 环境将可以直接支持 Exchange Server。

get-module

        既然如此,那么在 Windows Server 2008 R2 中应该同样也提供了一个与之类似的快捷方式,原来在“管理工具”程序组中确实提供了一个 PowerShell 快捷方式,名为:“Windows PowerShell Modules”。直接启动这个程序,便可以在 Windows PowerShell 环境下执行服务器管理器操作。

WindowsPowerShellModules

        前面已经讲过,只要 Windows PowerShell 加载对应的模块,即可以通过 Windows PowerShell 执行相关的操作。那么我们在默认 Windows PowerShell 环境下只需要执行“Import-Module ModuleName”即可加载相关的模块。如下图所示:

import-module_servermanager

        最后,需要注意的是当重新进入 Windows PowerShell 后需要重新加载需要使用的模块。关于 PowerShell 的使用 gOxiA 也在逐步进行学习和了解,希望日后能有更大的收获!

        接上回(分享 MDT 2010 数据库版本的相关经验)继续,gOxiA 特地搭建了测试环境对相关知识盲点进行了实际测试学习。总结如下:

  • 如果从原 MDT 2008 上进行升级,那么 MDT 2010 会自动升级你的 MDT 数据库,即使数据库版本是 SQL Server 2000;
  • 同上,如果之前已经存在一个 MDT 2008 数据库,那么只需要在 MDT 2010 数据库配置中直接选中之前已经存在的数据库即可;
  • image
  • 同理,验证 MDT 2010 的数据库是可以基于 SQL Server 2000 的(并不存在无法连接这一说法),那么我们可以在 SQL Server 2000 上的用于 MDT 的数据库上执行 MDT 2008 带的数据库查询脚本,创建对应的表。之后再通过前面的步骤进行升级;
  • 如果需要将基于 SQL Server 2000 上的 MDT 数据库迁移到 SQL Server 2005 或 2008 版本上,那么可以使用 SQL Server Management Studio 附加原数据库,或通过导入和导出数据功能将原数据库中的表导入到新版本的数据库中。
  • 最后,如果是全新安装的 MDT 2010,并且不存在上一版本的 MDT 数据库,那么要创建和使用 MDT 数据库,则 SQL Server 版本必须高于 SQL Server 2000,否则就会出现之前日志中出现的数据库错误。

        如果你在配置 MDT 2010 数据库时出现:“Unable to create necessary database objects. 第 1 行:’MAX"’附件有语法错误。”的错误提示,那么继续浏览该篇日志是非常有必要的。

mdt_create_data_error

        很惭愧,gOxiA 直到昨天才知道  MDT 2010 “不完全支持”SQL Server 2000 数据库。为什么会这么说呢?!原因就是 gOxiA 为一个环境配置 MDT 2010 应用,但是在为 MDT 2010 配置数据库时出现了上面的错误信息,能想到的排错都用上了,据说是我人品问题大爆发,才会遇到!不过专家们友情提示与 SQL Server 版本有关!但是在另一个环境中确实是MDT 2010 + SQL Server 2000 这样组合,回忆之前的部署经历,该组合是从 MDT 2008 一路升级过来的,难道与此有关。而且分析了 MDT 2010 的 SQL 查询脚本,确实在 SQL Server 2000 中出现错误。

        之后安装了 SQL Server 2005 和 2008 Express 两个版本在不同的环境下测试,均配置正常。看来问题确实出在 SQL Server 版本上,而之前咨询的 MDT 2010 不能与 SQL Server 2000 连接这一说法并不完全正确,有事实有真相。而之所以之前的那个 MDT 2010 + SQL Server 2000 能完全正常工作,恐怕是因为在 MDT 2010 Beta 和 MDT 2010 RC 阶段时还支持 SQL Server 2000,所以内置的查询脚本顺利地升级了我的 SQL Server 2000 下的数据库,而 MDT 2010 RTM 正式发布后,说明中并未明显强调对数据库的限制而导致我的故障发生。对此,我昨天已经做了深刻的检讨,但是我不认为错全在我!根据这一系列的测试,其实只要 MDT 2010 的数据库进行了升级或已经生成,还是可以挂在 SQL Server 2000 上使用的。设计使然,也懒得再做进一步的研究!

         撰写这篇日志,存粹安慰自己,同时友情提示其他朋友,一但遇到这个问题知道是什么原因所致。我会在下一篇日志中与大家分享我是如何将之前 SQL Server 2000 中的 MDT 2010 数据库升级或迁移到 SQL Server 2005 和 2008 (包含 Express)中去。

分页: 227/472 第一页 上页 222 223 224 225 226 227 228 229 230 231 下页 最后页 [ 显示模式: 摘要 | 列表 ]