PowerShell一直是微软windows_Server产品中重要的一部分,可以通过PowerShell来完成所有的服务器配置,甚至一些在图形界面下无法完成的事情。随着每一个新版本的微软产品或者服务中,都可以看到PowerShell与这些产品和服务紧密的结合。

比起当初的PowerShell,在windows_Server_2012_R2,PowerShell_4.0更为强大,可以支持超过2400PowerShell_cmdlet命令,这是个庞大的数字,对于管理员来说,去记忆这么多的PowerShell_cmdlet命令也非常困难,但是PowerShell_cmdlet命令中大多数都是普通的计算机单词,即使记忆的不是那么深刻,在输入过程中可以使用Tab键进行补齐,如果遇到不会使用的语法,可以在参数后面家-help已获得详细的帮助。

一、PowerShell与Server Core

在这篇文章中,我们就来通过PowerShell来部署和管理远程桌面服务,展示PowerShell与Windows Server 2012 R2远程桌面的集成,我们将深入PowerShell命令,针对RDS场景(基于虚拟机或者是基于会话)进行配置和管理。

在使用PowerShell cmdlet命令来部署Remote Desktop Services之前,首先需要准备一些环境,情况如下表格:

服务器名称 操作系统 IP设置 功能
AD-DC.mabofeng.com Windows Server 2012 R2 192.168.1.100 域控制器
BD-RDS.mabofeng.com Windows Server 2012 R2 Server core 192.168.1.110 远程桌面连接代理

由于Windows_Server_2012_R2采用的是Server_core的安装模式,所以在所以的操作过程中,都必须使用powershell命令来进行管理和控制。采用Server_core的安装模式有很多优点:

  • 1、减少维护: 因为在Server_Core版本中用户只是安装了必不可少的DHCP、文件、DNS以及活动目录这些基本的服务器角色,这样就比安装完整的Server减少了维护系统所需的时间和精力。
  • 2、减少攻击面:由于Server_Core进行的是最小的安装动作,所以就保证了更少的应用程序运行在服务器上,这样无形中便减少了服务器受攻击的可能。
  • 3、减轻管理: 因为更少的应用程序和服务被安装在基于Server_Core的服务器上,就使得管理方面的开销也大大降低。
  • 4、 降低硬件需求:Server_Core的安装只需要大概800M的硬盘空间,快速安装则不到500M

Server_Core模式提供很多的优势,但是这些Server_Core带来了优势,同时也带来了劣势,那就是如果使用Server_Core模式的服务器,由于没有图形化的界面,对Windows管理员的技术水平具有高的要求,一般Windows初学者,不太习惯使用PowerShell来进行管理。如果习惯了图像化的操作的管理人员,依然可以使用Server_Core模式进行部署服务器,可以使用服务器管理器远程进行管理,这样就可以管理Server_Core模式的Windows_Server的所有功能。

在Windows Server Core模式下,通过服务器配置页面,分别设置服务器的IP地址、将计算机加入到域环境中,并以域管理员的形式进行登录,并打开远程桌面,当设置完成后,最终激活Server Core模式下Windows。

二、使用powershell进行快速部署(RemoteApp)

在使用powershell的安装Remote desktop Server之前,首先让我们在Windows Server 2012R2中导入新的RemoteDestop 模块,使用命令为:

PS C:\Users\administrator.MABOFENG> import-module RemoteDesktop

当我们已经导入了专门为远程桌面服务RemoteDestop cmdlet后。接下来就是使用powershell命令来部署基于会话的远程桌面服务器。在Windows Server 2012 R2中远程桌面服务中有两种方式部署。一种是基于角色快速部署安装,将所有的角色和功能都安装在同一台主机中,另一种是标准部署,将RemoteDestop中的角色分别部署到不同的主机中,在图形化界面中,我们会使用安装向导来安装所有必需的角色,而不是手动安装和配置所有的个别角色。

首先,我们来安装基于会话的桌面快速部署,在此示例中我们会模拟一个快速部署的环境,在一台服务器上安装部署(RD 会话主机、RD连接代理和RD WebAccess)所有的角色,在基于会话的桌面快速部署中,我们主要使用命令New-SessionDeployment。可以通过New-SessionDeployment –help来查看此命令的语法。

语法:New-SessionDeployment [-ConnectionBroker] [-SessionHost] <String[]> [[-WebAccessServer] ] []

New-RDSessionDeployment cmdlet 将安装所需的虚拟桌面基础结构 (VDI) 来创建远程桌面服务 (RDS) ,是基于会话的远程桌面部署的角色服务。基于会话的部署允许用户连接到会话集合,其中包括已发布的 Windows Server 2012 R2 RemoteApp 程序和基于会话的桌面。

指定主机远程桌面连接代理 (RD 连接代理) 角色服务、 远程桌面 Web 访问 (RD Web 访问) 角色服务和一个或多个实例的远程桌面会话主机 (RD 会话主机) 角色服务的服务器的完全限定的域名 (FQDN)。

若要执行基于会话的桌面快速部署,我们运行下面的命令:

New-SessionDeployment -ConnectionBroker RDS.mabofeng.com -WebAccessServer RDS.mabofeng.com -SessionHost RDS.mabofeng.com

在执行命令后,我们就可以看到采取了哪些步骤在进行配置,并可以看到配置的进展情况,由于命令中包含了三个角色组建,按照命令的顺序会依次安装。

开始,系统会收集和验证一些信息和设置。

接下来,系统会安装RD连接代理服务器。

接下来,系统会安装RD Web访问服务器。

接下来就是安装最后一项,准备安装RD会话主机角色服务,在安装RD会话主机角色服务的过程中是需要重新启动的,可以在powershell中可以看到其进程。

安装的最后一步就是将这些角色相关联,角色服务安装后,系统会进行一些自动的配置。

PowerShell 安装程序完成后我们可以打开服务器管理器控制台在目标机器上,我们看到远程桌面服务选项卡,在实际安装了三个角色。

如果将角色同时安装在一台主机上时,在安装开始的时候,提示错误,在powershell中显示无法重新启动本地服务器,当出现这个问题时,不是因为管理员的权限不够,而是因为你在目标服务器上运行了powershell部署命令,安装过程中是需要重新启动RD会话角色服务器的,所以在安装过程中无法关闭和停止powershell的运行,要解决这个问题,需要在远程服务器上运行这些命令,以便在目标服务器可以重新启动。

三、使用powershell进行标准部署(RemoteApp)

除此简单部署之外,也可以使用powershell进行标准的部署,标准部署可以将RDS的角色分别部署到不同的主机中,其中也包括部署多个 RD 会话主机服务器,但是都是使用New-RDSessionDeployment。

例如1、在不同的主机上安装RDS角色服务,使用命令为:

PS C:> New-RDSessionDeployment -ConnectionBroker "RDCB.mabofeng.com" -WebAccessServer "RDWA.mabofeng.com" -SessionHost "RDSH01.mabofeng.com"

此命令将在指定的服务器上安装远程桌面的角色服务。该命令将在名为 RDCB 的服务器上安装 RD 连接代理角色服务。在名为RDWA.mabofeng.com的服务器上安装 RD Web访问角色服务。在名为 RDSH01 的服务器上安装 RD 会话主机角色服务。

例如2、在不同的主机上安装RDS角色服务,包括多个RD会话主机服务器。使用命令为:PS C:> New-RDSessionDeployment -ConnectionBroker "RDCB.mabofeng.com" -WebAccessServer "RDWA.mabofeng.com" -SessionHost @("RDSH01.mabofeng.com","RDSH02.mabofeng.com")

此命令将在指定的服务器上安装远程桌面的角色服务。该命令将在名为 RDCB 的服务器上安装 RD 连接代理角色服务。在名为 RDWA 的服务器上安装 RD Web 访问角色服务。该命令将 RD 会话主机角色服务安装在两个服务器上,命名为 RDSH01.mabofeng.com 和 RDSH02.mabofeng.com。

四、使用powershell进行快速部署(VDI)

除了使用powershell命令部署基于会话主机的RemoteApp服务,也可以部署基于虚拟机的远程桌面,要创建基于虚拟机部署的命令是New-RDVirtualDesktopDeployment,首先我们看下此命令的语法:

语法:New-RDVirtualDesktopDeployment [-ConnectionBroker] [-WebAccessServer] [-VirtualizationHost] <String[]> [[-CreateVirtualSwitch]] [ ]

命令New-RDVirtualDesktopDeployment 是安装基于虚拟机的虚拟桌面 (VDI) ,基于虚拟机的虚拟桌面是需要独立的虚拟机,也就是说要在Windows Server 2012 R2 中安装Hyper-V角色。可以指定创建新的虚拟交换机参数,来创建一个共用的虚拟桌面集合,除了安装的角色服务。在使用powershell的安装Remote desktop Server之前,首先让我们在Windows Server 2012R2中导入新的RemoteDestop 模块,使用命令为:

PS C:\Users\administrator.MABOFENG> import-module RemoteDesktop

指定主机远程桌面连接代理 (RD 连接代理) 角色服务、 远程桌面 Web 访问 (RD Web 访问) 角色服务和一个或多个实例的远程桌面虚拟化主机 (RD虚拟化主机)角色服务的服务器的完全限定的域名 (FQDN)。

若要执行基于虚拟机的桌面快速部署,我们运行下面的命令:

New-RDVirtualDesktopDeployment -ConnectionBroker "rds.mabofeng.com" -WebAccessServer "rds.mabofeng.com" -VirtualizationHost "rds.mabofeng.com" -CreateVirtualSwitch

在执行命令后,我们就可以看到采取了哪些步骤在进行配置,并可以看到配置的进展情况,由于命令中包含了三个角色组建,按照命令的顺序会依次安装。

开始,系统会收集和验证一些信息和设置。

接下来就是安装RD代理连接。

接下来,系统会安装RD Web访问服务器。

接下来就是安装最后一项,准备安装RD虚拟主机角色服务,在安装RD虚拟主机角色服务的过程中是需要重新启动的,可以在powershell中可以看到其进程。

当虚拟化主机重启以后,接下来就是安装的最后一步,将这些角色相关联,角色服务安装后,系统会进行一些自动的配置。接下来系统会自动配置RD连接代理服务器。

接下来是在配置RD Web访问服务器。

最后一步就是配置虚拟化主机。

owerShell 安装程序完成后我们可以打开服务器管理器控制台在目标机器上,我们看到远程桌面服务选项卡,在实际安装了三个角色。

在虚拟化主机中,会安装Hyper-V角色,并建立默认的交换机,外部的交换机RDS Virtual采用外部连接方式,

如果将角色同时安装在一台主机上时,在安装开始的时候,提示错误,在powershell中显示无法重新启动本地服务器,由于安装过程中是需要重新启动RD会话角色服务器的,所以在安装过程中无法关闭和停止powershell的运行,要解决这个问题,需要在远程服务器上运行这些命令,以便在目标服务器可以重新启动。

五、使用powershell进行标准部署(VDI)

如果将虚拟桌面基础结构 (VDI) 角色功能分别安装在不同的服务器,则可以使用命令为:

> PS C:\> New-RDVirtualDesktopDeployment -ConnectionBroker "rdcb.mabofeng.com" -WebAccessServer "rdwa.mabofeng.com" -VirtualizationHost "rdhv.mabofeng.com" –CreateVirtualSwitch

如果将虚拟桌面基础结构 (VDI) 角色功能分别安装在不同的服务器,并且创建虚拟化主机池,则可以使用命令为:

> PS C:\> New-RDVirtualDesktopDeployment -ConnectionBroker "rdcb.mabofeng.com" -WebAccessServer "rdwa.mabofeng.com" -VirtualizationHost @("rdhv-1.mabofeng.com","rdhv-2.mabofeng.com")

从使用powershell的命令进行安装部署和管理远程桌面服务,这是Windows server 2012 R2中一大重要的功能,在本文中,我们只是看到了其中的一小部分,在powershell中还有大量的命令来进行管理和安装远程桌面服务。

使用PowerShell快速部署Win12R2虚拟化桌面的更多相关文章

  1. Citrix 服务器虚拟化之十八 桌面虚拟化之部署MCS随机桌面池

    Citrix 服务器虚拟化之十八  桌面虚拟化之部署MCS随机桌面池 完成桌面模版的制作后,可以开始虚拟桌面池的发布 说明: 环境基于实验十七 1.登录DC服务器创建一个组织单位名为Citrix,然后 ...

  2. MySQL Database on Azure - 利用PowerShell快速创建使用数据库服务

    如果您的应用需要通过脚本快速创建一个或多个MySQL数据库,MySQL Database on Azure目前开放了对于PowerShell的支持,可以帮助您快速利用自动化脚本进行数据库服务的创建.管 ...

  3. 【技术解析】如何用Docker实现SequoiaDB集群的快速部署

    1. 背景 以Docker和Rocket为代表的容器技术现在正变得越来越流行,它改变着公司和用户创建.发布.运行分布式应用的方式,在未来5年将给云计算行业带来它应有的价值.它的诱人之处在于: 1)资源 ...

  4. 一键快速部署CodeBlocks的EGE图形库工具

    大一下学期,学完了c语言的基本内容, 也就开始开发项目了,此时一个图形界面就比较重要了,c语言中不提供图形界面,一般这些是用的其它开发的图形库,如 Easyx .ege等. 本文就提供 Codeblo ...

  5. docker快速部署DNS,实现快速上线

    概念Docker 是一个开源的应用容器引擎,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.这里我将使用do ...

  6. 工程师技术(三):独立Web站点的快速部署、虚拟Web主机的部署、配置网页内容访问、使用自定Web根目录、配置安全Web服务、部署并测试WSGI站点

    一.独立Web站点的快速部署 目标: 本例要求为 http://server0.example.com 配置Web站点,要求如下: 1> 从http://classroom/pub/materi ...

  7. 使用Docker快速部署ELK分析Nginx日志实践

    原文:使用Docker快速部署ELK分析Nginx日志实践 一.背景 笔者所在项目组的项目由多个子项目所组成,每一个子项目都存在一定的日志,有时候想排查一些问题,需要到各个地方去查看,极为不方便,此前 ...

  8. 快速部署 Spring PetClinic 到函数计算平台

    简介 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute):函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数计算准 ...

  9. 独立Web站点的快速部署

                                                                  独立Web站点的快速部署 1案例1:独立Web站点的快速部署 1.1问题 本 ...

随机推荐

  1. Linux /etc/hosts文件

    均为转载 ———————— 1.主机名: 无论在局域网还是INTERNET上,每台主机都有一个IP地址,是为了区分此台主机和彼台主机,也就是说IP地址就是主机的门牌号. 公网:IP地址不方便记忆,所以 ...

  2. js判断一个变量是数组还是对象

    判断变量是数组还是对象,使用Object.prototype.toString.call(),兼容性好,切勿使用typeof来判断对象或者数组,因为typeof得到的都是object: functio ...

  3. 完成一个Laravel项目的过程

    1.分析项目,找出项目的元素并进行建模(navicat 该工具还可以到处sql语句) 建立关系 2.安装Laravel(使用composer来安装,如果没有的话先安装composer) 3.配置虚拟主 ...

  4. 20175126《Java程序设计》第四周学习总结

    # 20175126 2016-2017-2 <Java程序设计>第四周学习总结 ## 教材学习内容总结 - 本周学习方式主要为手动敲打教材代码和观看APP上的视频资源自学. - 学习内容 ...

  5. Spring BeanDefinitionRegistryPostProcessor BeanPostProcessor作用

    写博客,写博客,把自己知道的小知识点全部记录,

  6. 2018-2019-2 20165315《网络对抗技术》Exp2 后门原理与实践

    2018-2019-2 20165315<网络对抗技术>Exp2 后门原理与实践 一.实验任务 使用netcat获取主机操作Shell,cron启动 使用socat获取主机操作Shell, ...

  7. spring的事务操作(重点)

    这篇文章一起来回顾复习下spring的事务操作.事务是spring的重点, 也是面试的必问知识点之一. 说来这次面试期间,也问到了我,由于平时用到的比较少,也没有关注过这一块的东西,所以回答的不是特别 ...

  8. linux bash shell:最方便的字符串大小写转换(lowercase/uppercase conversion) (转)

    原文地址:https://blog.csdn.net/10km/article/details/83384145 关于字符串大小写转换,是写 linux 脚本经常干的事儿,所以总想找个方便的方法让我少 ...

  9. Python实现对CSV文件的读写功能

    我们要处理csv文件,首先要的导入csv模块 import csv #读取csv文件def readCsv(path): #传入变量csv文件的路径 list=[] #定义一个空列表 with ope ...

  10. github ignore 规范

    转自:https://www.cnblogs.com/xuld gitignore 应该包含 5 块内容: 当前项目需要忽略的文件 项目性质需要忽略的文件(比如是 nodejs 项目,有些文件就需要忽 ...