[玩转系统] Citrix Virtual Apps and Desktops 中的 PowerShell 简介
作者:精品下载站 日期:2024-12-14 08:10:26 浏览:17 分类:玩电脑
Citrix Virtual Apps and Desktops 中的 PowerShell 简介
在管理复杂的 IT 基础设施方面,CITRIX 和 PowerShell 都是著名的名字。毫不奇怪,它们完美地互补,扩大了 IT 专业人员的行动范围。
例如,在管理 Citrix Virtual Apps and Desktops 时,PowerShell 允许更准确地应用 Citrix Studio 中的某些功能并同时应用于多个目标。
请参阅本文,了解有关 PowerShell 如何在 CVDA 管理中节省时间和精力的更多示例。
为什么使用 PowerShell 进行 CVAD 管理?
您可能出于多种原因考虑使用 PowerShell 来帮助管理 Citrix 环境。
对我来说,我将打开一个 PowerShell 提示符,其中提供了所需的 Citrix cmdlet(请参阅下文),我可以通过单个命令快速查看环境的状态,并且当我之前运行过它时,我可以快速找到它在我持久的 PowerShell 历史记录中(通过 ctrl+r),所以我什至不必记住要使用哪些参数或进一步键入任何内容。
这可能包括寻找过载的服务器、未重置(并重置它们)的断开会话、服务器意外处于维护模式或未注册等。
另一个原因是自动化。例如,我遇到了一个客户问题,CVAD 服务器上本地事件日志中的特定事件意味着后台打印程序处于重新启动之前无法恢复的状态,并且任何尝试打印的应用程序都会挂起。
作为短期缓解措施,我编写了一个脚本,该脚本作为计划任务定期运行以检查此事件,如果发生,它会将服务器置于维护模式,以防止新登录,并向用户发送消息,告知他们可能想要注销并重新登录,以便他们转到不受影响的服务器。
在该脚本的后续运行中,它将检查服务器上是否有遇到问题的用户,如果没有,它将退出维护模式并重新启动。
先决条件
第一个决定是您是否需要管理本地或云基础设施,因为它们需要不同的 PowerShell 模块,而这些模块不能在同一台计算机上共存,尽管幸运的是,两者之间的大多数命令是相同的,所以一旦您知道了一个,就可以了很容易切换到使用其他。
安装 Citrix Studio 时会安装本地所需的 PowerShell cmdlet,但不建议在 Delivery Controller 上运行任何管理控制台或工具,因为这会消耗其主要角色无法使用的资源。
因此,安装本地所需 PowerShell cmdlet 的最简单方法是在另一台计算机(例如安装了所有控制台的管理服务器)上从 CVAD ISO 安装 Citrix Studio。
或者,如果您不想安装 Studio,请装载 CVAD ISO 并在已装载 ISO 的 X64Citrix Desktop Delivery Controller 文件夹中在提升的 PowerShell 提示符中运行以下命令:
PowerShell in CVAD-1:
gci -Name *powershell*.msi | %{ $_ ; start msiexec "/i ""$_"" /qn /norestart" -wait }
Citrix Cloud 所需的 PowerShell cmdlet 在 Citrix Virtual Apps and Desktops 远程 PowerShell SDK 中提供。
该网页还包括有关所需的附加身份验证的信息。它们不得安装在安装了本地 PowerShell 组件的计算机上。
最好将 PowerShell cmdlet 的版本与已安装的 CVAD 的(最低)版本相匹配,就像在 Studio 中一样。
您使用的 Windows PowerShell 版本由您决定,因为 2.0 和 5.1 之间的任何版本都可以使用,但我建议推出 5.1,因为它提供了最多的 cmdlet 和功能。
准备
为了使用 CVAD cmdlet,我们需要加载它们所在的 PowerShell 模块,直到最近的版本,Citrix 将这些 cmdlet 放入 PowerShell 管理单元而不是模块中,这意味着我们以稍微不同的方式加载它们。
要从管理单元加载所有 Citrix cmdlet,我们可以运行以下命令:
PowerShell in CVAD-2:
Add-PSSnapin -Name Citrix*
但是,这可能需要相当长的时间才能完成,因为它会加载每个可用的 cmdlet,而您可能只需要一个管理单元。例如,如果您使用 Get-BrokerMachine 和关联的 cmdlet 来检索 CVAD 计算机,则可以改为运行此命令,这样会更快:
PowerShell in CVAD-3:
Add-PSSnapin -Name Citrix.Broker.Admin.*
要了解特定 cmdlet 所在的管理单元,请加载本节首先显示的所有 Citrix 管理单元,然后将该 cmdlet 指定为 Get-Command 的参数,这样它就会告诉您该管理单元的名称包含您可以加载的内容。
从 1912 LTSR 开始使用 CVAD 版本,我们可以通过 Import-Module(别名 ipmo)而不是 Add-PSSnapin(别名)从模块加载 cmdlet asnp),但与上面的情况相同,我们可以通过将“Citrix*”指定为 Import-Module 来加载所有 Citrix 模块,或者仅加载所需的特定模块,再次通过加载所有 Citrix 模块,然后在 cmdlet 上使用 Get-Command,我们需要查看它们存在于哪些模块中。
为了使我的脚本在较新和较旧的 CVAD 版本上兼容,我通常使用如下所示的代码,它首先尝试加载必要的 Citrix 模块,如果失败,它将尝试加载等效的管理单元:
PowerShell in CVAD-4:
## new CVAD have modules so use these in preference to snapins which are there for backward compatibility
if(!(Import-Module -Name Citrix.DelegateAdmin.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 - is this a Delivery Controller or have Studio or the PowerShell SDK installed?'
}
检索信息
我们已经安装并加载了所需的 cmdlet,就可以开始了。我主要用于检索信息的命令以 Get-Broker 开头,例如 Get-BrokerMachine、GetBrokerDesktopGroup(用于交付组)、 >Get-BrokerCatalog 和 Get-BrokerSession。要查看用于检索信息的所有 Citrix cmdlet,您可以运行以下命令:
PowerShell in CVAD-5:
Get-Command -Module Citrix* -Verb Get
无论您使用管理单元还是模块,这都可以工作。要查看特定命令的帮助,请运行如下命令:
PowerShell in CVAD-6:
Get-Help -Name Get-BrokerMachine -ShowWindow
假设您可以访问外部互联网,您还可以将 -ShowWindow 替换为 -Online 以在帮助下打开浏览器窗口。
但是,我很少需要使用 RTFM,因为传递给 cmdlet 的参数通常是相同的,您可以通过 Tab 键浏览它们,或者在 cmdlet 名称后键入减号/破折号后按 ctrl+空格 以列出所有可能的参数您可以使用光标键在其中移动的参数。
让我们通过运行 Get-BrokerMachine 来看看 CVAD 中有哪些机器(图 1):
图。 1:运行 Get-BrokerMachine 的 PowerShell 输出
好吧,现在进展不太顺利,不是吗?如果您在 Delivery Controller 上运行此命令(不建议这样做),它实际上会工作并列出计算机。
但是,我在满足先决条件但不是交付控制器的虚拟机上运行了此命令,因此它不知道将请求发送到哪台计算机(交付控制器),因此它默认查询本地主机,该本地主机失败,因为它不是交付控制器Delivery Controller(如果您使用的是 Citrix Cloud,则为 Cloud Connector)。
为了告诉 cmdlet 要连接到哪个 Delivery Controller,这意味着我们可以从同一台计算机连接到不同的场/实例(这对于 Studio 来说很棘手),我们使用 -AdminAddress 参数(参见图 2) :
图。 2:使用 -AdminAddress 参数运行 Get-BrokerMachine 的 PowerShell 输出
但这可能会给出一个非常长的列表,很难理解,因此我们可以通过查看这个长列表来获取我们感兴趣的属性(参见图 3;您也可以使用 Tab 键完成传递给 的属性Select-Object(别名select)),或者我的偏好是通过管道连接到Out-GridView,它提供了一个屏幕网格视图,您可以在其中进一步排序和过滤数据(图 4)。
图。 3:您可以通过将输出从 Get-BrokerMachine 传递到 Select-Object 来显示特定属性
图。 4:将输出从 Get-BrokerMachine 传送到 Out-Gridview 可以让您清楚地了解数据
改变事物
好的,我们知道如何仅使用几个 Get-Broker* cmdlet 来查询 Studio 中可以看到的大部分内容,但是如果我们想要更改某些内容该怎么办?例如,如果我们想要将某些机器置于维护模式,我们可以通过它们的名称(包括模式)、通过管道输入(过滤后的)Get-BrokerMachine 结果或传递一台或多台机器来实现之前从 Get-BrokerMachine 返回(存储在数组中)到 Set-BrokerMachine 的 -InputObject 参数。
图。 5:通过PowerShell在CVAD中配置机器
请确保您知道您打算实现什么以及脚本实际上要做什么 - 您可以看到这将非常容易,例如将每台计算机置于维护模式,这对于 0900 的用户来说可能不是个好消息一个星期一的早晨。
在编写可能执行不良操作的脚本时,我通常使用 PowerShell 的内置确认机制,根据本文,我将更改内容的命令包装在 $PSCmdlet.ShouldProcess 块中。
通过指定 -Confirm:$false,这些脚本仍然可以在没有用户干预的情况下运行。
请注意,一旦我们在会话中使用过 -AdminAddress 一次,我们就不会再执行此操作。不再需要指定它。
Citrix Studio 中的 PowerShell
希望本文中的内容足以帮助您开始在 CVAD 中使用 PowerShell - 有大量脚本示例适用于各种任务,但在生产环境中运行它们之前请务必检查这些示例,以免意外或故意损坏它。这就是隔离测试环境的价值所在。
有时,如何执行您可以在 Studio 中执行的特定任务可能并不明显。如果发生这种情况,请在 Studio 中执行该操作,然后转到 PowerShell 选项卡以查看使用的 PowerShell cmdlet 和使用的参数。
图。 6:Citrix Studio 中的 PowerShell 选项卡显示用于执行操作的 PowerShell cmdlet
在上面,我们可以忽略 -BearerToken 和 -LoggingId,因为它们不是必需的。要获取要添加计算机的目录的 UID,我们为所需的目录调用 Get-BrokerCatalog:
图。 7:用于检索目录 UID 的简化 PowerShell 命令
结论
我希望本文向您介绍了一些方法和想法,可以帮助您使用 CVAD 简化日常工作。
如果您想了解有关 CITRIX 和 PowerShell 相互作用的更多信息,可以期待下一篇文章,该文章将重点介绍 PowerShell 与 CITRIX Machine Creation Services (MCS) 的使用。
免费的 PowerShell 脚本集合
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag