深入探讨Windows Server 2008 R2(下)

Speaking of the command-line

在过去的几年中,对于PowerShell业界有各种声音,普遍认为能够取代传统的Windows命令条。我们在2005年曾做过一个深度的调查(那时大众熟悉它还是Microsoft Command Shell,后来大概是由Jeremy Clarkson领导的营销团队对其进行的更名)并且得出的结论是:这是一个非常美妙的脚本环境,不仅在传统的DOS批处理文件与Windows Scripting Host上有了重大进步,而且也超越了Unix shells的bash。微软在PowerShell上追求的目标是:任何种类的服务器管理任务都可以通过PowerShell中cmdlet完成。cmdlet是包含实际功能的.NET框架组件。GUI管理工具和命令行界面将使用相同的PowerShell cmdlet,这里的好处是,它使得微软能够透过相同的架构提供所有的管理功能。

Windows 7和2008 R2包含PowerShell的2.0版本,the list of improvements it brings over the 1.0 release is lengthy and mostly interesting only to people who write PowerShell scripts,有一个真正要紧的问题:PowerShell2.0可以在远程机器上运行命令,同样重要的是,它可以结构化的检索这些命令,这使得管理员 typically filled with a combination of the Sysinternals "psexec" tool and some clever scripting.成为不可能。

下面是一个简单的例子。这里的两个命令显示的进程列表,其可执行文件不是微软的,一个是本地机,一个是名为"win7-vm"的远程机:

PowerShell给工具条安放在了突出的位置,就在服务器管理器和Windows 浏览器边上。

另一项取得重大改善的领域是命令条帮助功能。当你打开PowerShell的提示,键入"帮助",可以了解到你所有想知道的关于如何使用PowShell,还有那些命令可行。包括大量的例子和参数描述。哦,对Unix的管理员,你可以键入"人",而不是"帮助"。

微软同时也多次声称.NET框架可以在Server Core内运行,但并不是默认安装的。因此PowerShell要在安装后才可用。这个可以通过sconfig工具实现。

Active Directory

首先回想一下20世纪90年代中期(那时微软的新科技必是"Active"或者"Direct"),Windows 2000里的Active Directory,是它连接着整个网络的Windows PC机。并不像之前的NT域模式,Active Directory大多建在如DNS,LDAP,Kerberos,这样的网络标准上。从独资公司到庞大的军事和企业单位的各种不同的组织机构,都在依靠  Active Directory 以保持他们业务技术面的运行。

Windows Server 2008 发布了一些非常有用的改变:
  
只读域控制器:公司部署的域控制器的远程办公解决方案,但不希望这些域控制器能够对域作出更改。
  
审计政策:监视Active Directory的所有变化,谁在执行,只有目前访问的审计可用。
  
最后交互式登录信息:可以看到用户的最后登录日期/时间,以及他们最后一次登录失败的记录,以及尝试过的具体失败登陆次数。
  
细粒度密码策略:密码复杂性和锁定策略可以适用于个人用户和组,而不是域范围的。

2008 R2新加入的:
  
脱机域加入:允许服务器和一台计算机加入到域客户端在不同时间执行。
  
回收站:不需要备份 Active Directory,便可以恢复删除的项目。
  
认证机制保证:用户登入域需配有证书(如小型卡)而不是用户名密码分配额外组成员的方式,可能会限制那些使用办公硬件验证的人员访问特定文件。
  
Active Directory 的WEB服务:通过标准的网络服务实现Active Directory 管理而非传统的(专门的)基于RPC通信方式。

我们来仔细研究一下最后这条,因为乍一看真的很没趣,特别是你如果没太多的关注你的管理工具和Active Directory如何互联的。在2008 R2之前,你可能得煎熬上一段如果你不是在域控制器相同的网络。由于RPC的工作方式,AD管理活动可以发生在不同的TCP端口,估计没人会说,"啊 这就是Active Directory 管理" 在2008 R2里 你会看到一个新的进程叫Microsoft.ActiveDirectory WebServices.exe.。这是一个.NET Windows Communication Framework 的应用程序,它监听端口9389,并提供一连串基于SOAP的网络服务。如这听起来有点复杂,不用担心,它只是一个可以读写到Active Directory与服务器上的微型的WED服务器。这个迹象表明微软正在更加认真的考虑用户(如欧洲委员会和客户)的需求,考虑实现与非微软的协议和系统更好的交互性。

2008 R2网络服务的其他两个新的组件,Active Directory的PowerShell模块还有这个:
 
这是Active Directory的管理中心。虽然乍一看起来非常像Active Directory的"用户"和"计算机",但是还是有一些重要的不同。首先,它建在Active Directory的Power Shell模块顶端,那么可以确保任何通过GUI执行的在没有其的时候也可以执行。其次,它把最常用的两个任务放在中心之前—-查找用户;重置密码。第三,这个工具大大提高了对目录的搜索功能,直接建立共同疑问,保存常用的查询并重新运行它们。

Group Policy(组策略)

组策略的主要目的是确定和执行计算机的配置。对整个Windows,有成千上万独特的"组策略设置",覆盖计算机配置的每件事,例如防火墙是否允许用户更改 Windows Media Player的皮肤。组策略设置,大致分为两类:以用户为中心和以计算机为中心。一个组策略设置的集合被称为“组策略对象”,或简称的GPO。然后GPO应用到选定的用户和计算机组。默认情况下,GPO的设置被应用在计算机启动时,一个用户登录时,每90分钟,给予或采取20%)。域可以包含很多的GPO,这是管理员在创造不同的GPO的不同用户群和计算机时的典型情况。有几个例子:公司里每个人除了IT人员之外都可能被阻止访问Windows Update;被用在接待或是服务台的电脑被设置成无声;办公室的不同位置的电脑可以设置它附近的默认打印机。

Windows Server 2008进行了以个很重大的组策略修改。加入了一项"组策略首选项",允许管理员更改设置并客户端的计算机上创建项目,后来又允许用户可以改变它。组策略首选项可与VPN连接,映射的驱动器连接,文件,文件夹,快捷方式,打印机,本地用户和组,计划任务,注册表设置和环境变量一起工作。它也可以配置 Internet Explorer 和Window Explorer。换句话说,他们本身就是用户可配置的。我觉得系统管理员一定会喜欢这些功能。在Server 2008之前,设置这些的唯一办法是通过建一个已经存在的首选项的预定义镜像或者进行复杂的注册表操作,或是登录脚本。

实习操作首选项的过程比较自然的引出了一些预定义的设置的工作。组策略设置回答了用户是否可以做某些事的问题,组策略首选项则是处理用户(计算机)是否有某些事的问题。这是一个微妙但是重要的不同,解释这一问题最好的就是这样一个例子,这是一张组策略首选项对话框配置开始菜单的截图:
 
在这里首先要注意的是,这个对话框非常类似于Windows资源管理器中的开始菜单。这使得管理员可以非常容易的上手,掌握这些设置具体的内容,而不用读很多说明。看到划线的部分了吗?如果一个首选项有绿下划线,你想要的那条组策略执行,即:客户机的复选框状态将更新以匹配复选框里的状态。如果下划线是红的,意味着设置不能在客户机上设置,划线的颜色F6–绿 F7–红。

因为这些设置大概应用于每90分钟,,无论用户是否处于登录状态,就可以推出,例如,一个新的网络打印机,要删除它,或改变一个的已配置的设置,无需用户登录。想要即时强制更新组策略很简单—只要运行客户机上的"gpupdate"便可。

策略组首选项能够使用"定位"功能在任何给定的优先适用之前,来定义满足的必要条件。一些给定的条件包括:星期,具体时间,是否是笔记本电脑,是否安装了某款特定的软件,是否存在某个特定的文件夹,等等。

这有一个有趣的情况:

任何Vista或是更高版本的机器都有电源计划,并且会在周五晚8点到周一早7点这段时间自动调成"节电保护"模式。与此同时首选项重置电源计划,在周末保持"平衡"状态,现在你的电脑将在平时更好的运行,在周末有更少的耗电。

Network Location网络位置

应经推出的Windows7和2008R2与老款的区别是如何提高笔记本电脑使之适合于Active Directory域,这是一个反复出现的主题。Windows域的原始设计架构没能顾计到那些只是有时连入公司网络的机器。因此,笔记本电脑用户和IT部门花了这个十年里的大部分时间在抱怨种问题:保持公司的紧急维修人员连入网络;保持笔记本电脑免受恶意软件感染;保持电脑时刻同步Windows 的更新组件和补丁;保持所有电脑可用。

Windows Vista中首先引入的"网络位置"的概念。有两种系统服务,"网络位置知晓

"和"网络列表服务,负责识别所有网络适配器的可用网络,赋予每个独特的标识符,并确定是否通过该网络连接连接到互联网或局域网。每个网络位置也有一个类型:私,公,域。该网络类型有两个主要目的:帮助用户识别那些连接是值得信赖的,哪些不是;通知Windows防火墙什么规则适用于该连接。私和公的位置类型由用户在每个连接基础上选择。域的位置由NLA服务器在计算机加入Active Directory域连接时自动选择,可以通过连接访问。但你不可以选择自己。

使用Vista系统的人应该很熟悉这个图。注意"Home"和"Work"位置实际上与"Private"是相同的位置类型,有相同的防火墙规则。

Vista/2008和7/2008R2一个主要的不同在于网络位置的具体选择。在Vista/2008上,一个单独的位置适用于所有连接,它是这样工作的:1)如果有连接是"Public",那么所有连接都被为定为"Public"。2)如果没有"Publuc"连接,但是有"Private"连接,那么所有的连接都被认定为"Private"。3)如果没"Public"和"Private"连接,但是有一个到域的连接,那么认定为域位置。这样的话问题很明显,很多人希望能够通过VPN连接到他们的工作网络,但网络行为不同,因为VPN将配置成Public或是Private防火墙,而不是域防火墙配置。

然而Windows7/2008R2,允许对于不同的连接配置不同的防火墙。对于特定的网络类型,还可以禁用防火墙。这是一个简单而明显的变化,当一个加入域的笔记本电脑连入Public网时(阻止入站连接),返回办公室的VPN连接是一个域连接,从而较少的限制域防火墙规则。

Windows7较之前版本另一项提高在于,当一个网络被设计成"Home"模式时,它会为连接启用HomeGroup的必要组成。这对于那些想在家庭网络环境分享文件的笔记本电脑拥有者来说绝对是伟大的。计算机浏览器服务,搜索其他计算机网络,当计算机只连接到"Public"网络时,将完全关闭。这使得Windows7的电脑很难将自己暴露给其他电脑。

Miscellany

在结束之前,让我们来看看其他的方面吧。

Hyper-V是微软的硬件虚拟化平台。在Windows Server 2008 R2中就包括了这个版本,它可以在物理计算机之间实现实时迁移,同时还大大提高了网络性能。同时,它还整合了远程桌面服务,如果你曾经想要通过远程桌面连接去连接一个专用的虚拟机器池,来替代 在Windows Server单拷贝上的 那么你将会非常喜欢这个功能。大多数情况下,虽然Hyper-V是为了仿照VMWare的vSphere系列产品,但是现在看来,在产品部署中使用它是非常好的。这也是用户从VMWare转而使用Hyper-V的部分原因。希望通过PowerShell来管理Hyper-V的管理员可以下载PowerShell管理库,该库是微软雇员编写和维护的,但是它不是该公司Windows Server产品的正式组成部分。

互联网信息服务已经更新到7.5版本了。大多数情况下,在这个版本中的新功能已经在IIS7.0扩展版本中公布了。安全模式的一个主要改变是,“应用程序池标志账户”的推出,这是虚拟的本地用户,只是被用来运行Web应用程序。这和IIS6.0和7.0是不同的,默认情况下,IIS6.0和7.0都是使用通用的NETWORK SERVICE账户。此账户也被相当多的其他的系统服务使用,所以说与IIS应用程序共享账户是没有什么意义的。虚拟账户的用户名的前缀是“IIS APPPOLL”,这样,他们就不会与本地和区域账户重名。所有的IIS7.5都可以通过PowerShell命令集来控制。

Windows Server更新服务以前在Windows Server 2003和2008中的可下载的应用程序,现在Windows Server 2008 R2中也都包括进去了。WSUS唯一的一个新的重要的功能是它对BranchCache的整合,这使它有可能在分支机构中的台式机与每一个使用P2P技术的机器可以分享WSUS的更新。而不是让这些机器被迫链接到中央WSVS服务器或者微软Windows更新服务器来手机最新的更新。保持你的台式机和服务器更新与补丁程序同步更新是非常重要的。

Windows Server备份软件在Windows Server 2008中是为了代替的NTBACKUP工具的。但是,因为NTBACKUP不能支持磁带备份系统,不能分别从用户数据备份和存储系统状态备份,不能限制个人文件夹备份,很多IT部门不愿意使用。由于这些缺点的存在,微软在这个系统里添加了状态备份,各个文件备份和文件类型过滤器。同时,还有一个“裸机恢复”功能,该功能可以在单一备份中备份系统中的每一部分和驱动盘。这是一个相当的大的改进,同时,在Windows Server 2008 R2中Windows Server备份可以完全通过PowerShell命令集来控制。

Windows存储诊断,该工具在微软的网站中已经提了很多年了,不过说实话我并不看好Windows Server的这个功能,因为它现在还是不支持大于4GB的物理存储测试。

总结

在过去的十年间,为了获得更多的市场份额,微软花费了大量的时间在安全,架构和软件开发方面。Steven Sinofsky也被调到Windows团队提供支持。这标志着,微软已经开始让Windows Server的开发严格按照既定路线进行。这样,他们就可以在未来的几年内推出两款高质量的产品。想想吧,从2008到2008R2的核心技术升级和从2000到2003的升级是相同的,但是,前者的完成只用了后者的一半时间。Sinofsky在Windows开发团队中引入了一个新的组织结构,制定了一个思想体系让所有的决定都是基于真实世界的数据,而不是猜想数据。不管如何,Windows 7和Server 2008 R2都是非常棒的操作系统。

你可能也注意到在这里PowerShell是一个总是会被提到。尽管传统命令提示符(cmd.exe)和脚本宿主(cscript和wscript)在短期内不会退出,但是显然,PowerShell在未来会代替他们。微软希望管理员可以很舒服地使用命令行来执行任务,同时它还希望100%的Windows Server功能可以同时这个唯一的、固定的接口实现脚本编辑的。