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. 阿里云-CentOS如何挂载硬盘

    阿里云CentOS挂载硬盘 查看当前未挂载的硬盘 # fdisk -l 创建硬盘分区 # fdisk /dev/vdb 根据提示,依次输入"n","p" &qu ...

  2. 51单片机学习笔记(清翔版)(13)——LED点阵、74HC595

    如图3,点阵屏分单色和彩色,点阵屏是由许多点组成的,在一个点上,只有一颗一种颜色的灯珠,这就是单色点阵屏,彩色的在一个点上有三颗灯珠,分别是RGB三原色. 图4你可能没看出来,那么大块黄色的就是点阵屏 ...

  3. Linux驱动之USB鼠标驱动编写

    本篇博客分以下几部分讲解 1.介绍USB四大描述 2.介绍USB鼠标驱动程序功能及框架 3.介绍程序用到的结构体 4.介绍程序用到的函数 5.编写程序 6.测试程序 1.介绍USB四大描述符 USB设 ...

  4. 软工作业1—java实现wc.exe

    github项目地址 https://github.com/liyizhu/wc.exe WC 项目要求 基本功能列表: wc.exe -c file.c     //返回文件 file.c 的字符数 ...

  5. MySQL解压包的安装教程

    一.下载MySQL解压包 解压过的文件夹里面是没有 data 文件夹的. 二.创建文件 1.在根目录下创建 my.ini文件 内容如下: [mysqld] # 设置mysql的安装目录 basedir ...

  6. selenium+java定位163/126邮箱元素显示定位失败解决

    开始在没有进入iframe时,用任何方法定位163/126邮箱登录页面的元素都不可能定位到,eclipse工作台会显示Unable to locate element:…… 这种情况我遇到了两种原因: ...

  7. EF + mysql 异常:Unable to load the specified metadata resource

    数据库连接字符串报错, <add name="xxxx" providerName="MySql.Data.MySqlClient" connection ...

  8. 关于python的感想和turtle作图

    第一次知道有python这个东西是在去年七月份,就是一堆编程语言,当时我想它应该离我很远,也没对它有什么兴趣.直到在三月份的某一天我真正接触了它,其实也不是我主动,环境下学期必须学这东西.我有它的必修 ...

  9. 【SerpentAI:Python开源游戏智能体开发框架——相比OpenAI Universe可导入自己的游戏、可脱离Docker/VNC运行】

    https://weibo.com/fly51fly?from=myfollow_all&is_all=1#1514439335614 [SerpentAI:Python开源游戏智能体开发框架 ...

  10. css3用到知识点小结

    属性 默认值 属性值及其描述 animation-name 默认值:none 规定需要绑定到选择器的 keyframe 名称. keyframename 规定需要绑定到选择器的 keyframe 的名 ...