当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PowerShell 创建新的 Citrix MCS 计算机

作者:精品下载站 日期:2024-12-14 08:10:29 浏览:12 分类:玩电脑

使用 PowerShell 创建新的 Citrix MCS 计算机


[玩转系统] 使用 PowerShell 创建新的 Citrix MCS 计算机

Citrix Virtual Apps and Desktops (CVAD) 包括两种机制,允许快速创建新计算机以便为最终用户添加额外容量。它们是机器创建服务 (MCS) 和配置服务 (PVS)。

本文不会详细介绍它们如何工作或如何设置它们,并假设已经创建了使用 MCS 的计算机目录 - 我们将展示如何使用 PowerShell 在此目录中创建全新的计算机并将它们分配给一个交付组。

当然可以使用 PowerShell 自行创建基于 MCS 的计算机目录 - 事实上,如果需要,可以使用 PowerShell 从头开始构建整个 CVAD 实现。

先决条件

在执行创建计算机的步骤之前,必须加载 CVAD PowerShell cmdlet。在版本 1912 (LTSR) 之前,它们作为(旧)管理单元提供,而从该版本开始,它们作为模块提供(请阅读本系列的第一部分以了解更多信息:Citrix Virtual Apps and Desktops 中的 PowerShell 简介) 。

以下代码适用于所有版本,以加载本文中使用的 cmdlet:

Create CITRIX MCS Machines with PoSh - I:

if( ! ( Import-Module -Name Citrix.DelegatedAdmin.Commands -ErrorAction SilentlyContinue -PassThru -Verbose:$false) `
-and ! ( Add-PSSnapin -Name Citrix.Broker.Admin.* -ErrorAction SilentlyContinue -PassThru -Verbose:$false) ){
  Throw 'Failed to load Citrix PowerShell cmdlets'
}

该代码可以在 Citrix Delivery Controller 上运行,也可以在安装了 Citrix Studio 或 CVAD PowerShell cmdlet 的任何计算机上运行,由于资源消耗原因,首选后者。如果使用后者,则必须向 Citrix cmdlet 指定参数-AdminAddress,以便将调用定向到指定的 Delivery Controller。

创建 Active Directory 计算机帐户

由于我们假设将计算机添加到现有目录中,因此已经创建了 PowerShell 代码所需的各种内部结构,尽管这些结构在 Citrix Studio 中不可见为离散实体。

其中之一是身份池,如果由 Citrix Studio 创建,该身份池将与其应用的目录具有相同的名称,并包含创建目录时选择的命名约定(见图 1)。

[玩转系统] 使用 PowerShell 创建新的 Citrix MCS 计算机

图。 1:设置机器目录时,您还必须为其机器定义命名约定

我们可以使用以下命令检查我们需要的身份池是否存在:

图 2 显示了输出。

[玩转系统] 使用 PowerShell 创建新的 Citrix MCS 计算机

图。 2:使用Get-AcctIdentityPool检查某个身份池是否存在

我们可以看到与现有的 MCS 机器目录相对应(图 3):

[玩转系统] 使用 PowerShell 创建新的 Citrix MCS 计算机

图。 3:目录列表显示现有的MCS目录

要为新计算机创建 Active Directory 帐户,我们运行以下命令,使用指定身份池中定义的命名约定和 OU 创建两个计算机帐户 - 请注意,我们不必自己指定名称或名称库:

Create CITRIX MCS Machines with PoSh - 2:

$newAccounts = New-AcctADAccount -IdentityPoolName 'MCS Server 2019' -Count 2

我们已将结果分配给一个变量,因为我们将在下一步中使用它,但我们可以通过查看该变量的内容来检查结果(图 4):

[玩转系统] 使用 PowerShell 创建新的 Citrix MCS 计算机

图。 4:变量$newAccounts的内容

如果检查 AD,您应该会看到这些计算机帐户已在正确的 OU 中创建。

创建虚拟机

现在,我们需要创建与这些 AD 帐户相对应的虚拟机,为此,我们需要配置方案名称,该名称将在创建 MCS 计算机目录时创建,并且与身份池一样,将与目录具有相同的名称它所属的。

[玩转系统] 使用 PowerShell 创建新的 Citrix MCS 计算机

图。 5:通过PowerShell检索配置方案名称

创建 VM 时,我们创建一个任务,该任务可以同步运行,因此 cmdlet 在任务完全完成之前不会返回,也可以异步运行,以便 cmdlet 立即返回。在后一种情况下,您必须在继续之前检查任务是否已完成,尽管如果任务可能需要很长时间才能运行,从而需要执行其他操作或需要显示进度指示器,则这可能很有用。

在这里,我们异步运行它,以展示我们如何检查任务是否已完成。

Create CITRIX MCS Machines with PoSh - 3:

$newProvVMtask = New-ProvVM -ADAccountName
$newAccounts.SuccessfulAccounts -ProvisioningSchemeName 'MCS Server 2019' -RunAsynchronously

任务 GUID 存储在我们可以查询的变量中,如图 6 所示:

[玩转系统] 使用 PowerShell 创建新的 Citrix MCS 计算机

图。 6:$taskDetails的属性

请注意 ActiveStatusTaskStateTaskStateInformation 属性,我们可以使用它们来测试任务是否已完成或不是。请注意,在循环中检查属性时,请进行某种延迟(例如通过 Start-Sleep),以减少此轮询循环的 CPU 消耗。

将机器添加到目录

现在我们已经创建了虚拟机,可以在虚拟机管理程序控制台中对其进行验证,我们可以将它们作为计算机添加到计算机目录中。下面的示例有一个占位符,用于在发生错误时进行错误处理 - 不要忽视错误检查/报告!

Create CITRIX MCS Machines with PoSh - 4:

$taskDetails.CreatedVirtualMachines | ForEach-Object { 
  if( ! (New-BrokerMachine -MachineName $_.ADAccountSid -CatalogUid (Get-BrokerCatalog -Name 'MCS Server 2019').Uid )) {
    "Do some error handling here" 
    } 
}

图7显示执行成功:

[玩转系统] 使用 PowerShell 创建新的 Citrix MCS 计算机

图。 7:搜索结果显示属于“MCS Server 2019”计算机目录的所有虚拟机

将计算机添加到交付组

为了使这些新创建的计算机可供最终用户使用,它们需要属于通过运行以下命令实现的交付组:

Create CITRIX MCS Machines with PoSh - 5:

Add-BrokerMachinesToDesktopGroup -DesktopGroup "MCS Server 2019" -Catalog "MCS Server 2019" -Count 2

正如预期的那样,图 8 显示计算机已成功添加到交付组。

[玩转系统] 使用 PowerShell 创建新的 Citrix MCS 计算机

图。 8:搜索结果显示属于“MCS Server 2019”交付组的所有虚拟机

打开机器电源

假设成功,剩下要做的就是打开这些新机器的电源,以便它们启动、向交付控制器注册,然后可用于提供已发布的应用程序和/或桌面。

请注意,在下面的 PowerShell 中,它更改了 $taskDetails 变量中包含的计算机帐户名称,方法是删除名称末尾的“$”字符,将其转换为 AD 计算机名称。

这是通过正则表达式 (regex) 实现的,其中 $是一个特殊字符,表示字符串结尾,因此我们必须使用反斜杠字符对其进行转义。

Create CITRIX MCS Machines with PoSh - 6:

$taskDetails.CreatedVirtualMachines | ForEach-Object {
  New-BrokerHostingPowerAction -Action TurnOn -MachineName ($_.ADAccountName -replace '$$' ) 
 }

如果一切正常,Citrix Studio 现在应该显示新创建的计算机(图 9),并在短暂延迟后,为了允许它们启动,它们应该被注册,从而能够用于提供使用的应用程序和/或桌面交付组。

[玩转系统] 使用 PowerShell 创建新的 Citrix MCS 计算机

图。 9:Citrix Studio 中新创建的 VM 概述

结论

通过 PowerShell 使用 MCS 配置新 VM 具有脚本解决方案的典型优势:准确性、标准化性和可重复性。由此节省的时间也不容忽视。

然而,与 ScriptRunner 结合使用,甚至可以带来更多机会:例如,新虚拟机的创建可以完全自动化,甚至可以委托给服务台和最终用户。所有流程均保持安全、无差错且可追溯。

我们很乐意与您讨论如何使用 ScriptRunner 在您的公司中实施这些或其他用例。只需与我们的产品专家预约即可。

[玩转系统] 使用 PowerShell 创建新的 Citrix MCS 计算机

免费的 PowerShell 脚本集合

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯