深入探索 Azure 自动化与远程应用服务
在当今数字化的时代,云计算为个人、企业和大型计算机公司带来了诸多便利和机遇。Azure 提供了丰富的服务,其中 Azure 自动化和 Azure 远程应用服务尤为重要。本文将详细介绍这两项服务的关键概念、操作步骤和相关的 PowerShell 命令。
1. Azure 自动化服务
Azure 自动化服务基于 PowerShell 工作流引擎构建,可帮助用户自动化各种任务。下面将介绍其中的集成模块资产和计划资产。
1.1 集成模块资产
集成模块资产是一个 PowerShell 模块,用户将其上传到 Azure 自动化账户,以便为 Azure 自动化服务添加新的活动。
- 默认模块 :Azure 自动化服务默认包含以下模块:
- Azure
- Microsoft.PowerShell.Core
- Microsoft.PowerShell.Diagnostics
- Microsoft.PowerShell.Management
- Microsoft.PowerShell.Security
- Microsoft.PowerShell.Utility
-
Microsoft.WSMan.Management
-
模块要求 :集成模块必须压缩为 *.zip 文件,最大大小为 40 MB,且模块文件必须包含以下文件之一:
- Windows PowerShell 模块(psm1 文件)
- Windows PowerShell 模块清单(psd1 文件)
-
程序集(dll 文件)
-
上传和导入模块 :将模块 zip 文件上传到公共存储(如 Azure blob 或 FTP)后,可使用
New-AzureAutomationModule命令导入模块。
# 导入集成模块
New-AzureAutomationModule -AutomationAccountName 'DevTestAA' -Name XYZ -ContentLink http://mylabstorage.blob.core.windows.net/modules/XYZ.zip
-
更新模块
:使用
Set-AzureAutomationModule命令可修改模块设置或上传新版本的模块。
# 更新集成模块
New-AzureAutomationModule -AutomationAccountName 'DevTestAA' -Name XYZ -ContentLink http://mylabstorage.blob.core.windows.net/modules/XYZ.zip -ContentLinkVersion "1.1"
-
其他相关命令
:还可以使用
Get-AzureAutomationModule和Remove-AzureAutomationModule命令来获取和删除模块。
1.2 计划资产
自动化计划资产用于使运行手册在特定时间自动运行,类似于云环境中的任务调度器。可以配置计划资产按小时、每天或一次性运行运行手册。
-
创建计划资产
:使用
New-AzureAutomationSchedule命令定义新的计划资产,该命令有三个参数集,分别对应不同的计划类型:ByHourly、ByDaily 和 ByOneTime。
# 创建一次性计划资产
$StartTime = (Get-Date "18:30:00").AddDays(1)
New-AzureAutomationSchedule -AutomationAccountName DevTestAA -Name OneTimeSchedule -StartTime $StartTime -OneTime
# 创建每八小时运行一次的计划资产
$StartTime = (Get-Date "18:30:00")
$EndTime = $StartTime.AddMonths(1)
New-AzureAutomationSchedule -AutomationAccountName DevTestAA -Name HourlySchedule -StartTime $StartTime -ExpiryTime $EndTime -HourInterval 8
# 创建每两天运行一次的计划资产
$StartTime = (Get-Date "18:30:00")
$EndTime = $StartTime.AddMonths(1)
New-AzureAutomationSchedule -AutomationAccountName DevTestAA -Name DailySchedule -StartTime $StartTime -ExpiryTime $EndTime -DayInterval 2
-
启用或禁用计划资产
:使用
Set-AzureAutomationSchedule命令和-IsEnabled参数可根据需要启用或禁用计划资产。
# 禁用自动化计划
Set-AzureAutomationSchedule -AutomationAccountName DevTestAA -Name HourlySchedule -IsEnabled $false
-
关联计划和运行手册
:使用
Register-AzureAutomationScheduledRunbook命令将特定计划关联到运行手册,使用Unregister-AzureAutomationScheduledRunbook命令取消关联。
# 注册计划到运行手册
Register-AzureAutomationScheduledRunbook -AutomationAccountName DevTestAA -RunbookName HelloWorldRunbook -ScheduleName HourlySchedule
# 取消注册计划到运行手册
Unregister-AzureAutomationScheduledRunbook -AutomationAccountName DevTestAA -RunbookName HelloWorldRunbook -ScheduleName HourlySchedule
-
查询和删除计划资产
:使用
Get-AzureAutomationScheduledRunbook命令查询计划运行手册列表,使用Get-AzureAutomationSchedule命令获取计划资产列表及其属性,使用Remove-AzureAutomationSchedule命令删除计划资产。
2. Azure 远程应用服务
在移动办公日益普及的今天,企业需要确保员工能够在各种设备上访问核心业务应用程序。Azure 远程应用服务提供了一种解决方案,可将 Windows 应用程序交付给任何设备上的用户。
2.1 什么是 Azure 远程应用
RemoteApp 最初是 Windows Server 中的远程桌面服务(RDS),现在是 Azure 的托管服务之一。它可以将虚拟应用程序交付给用户,用户无需在设备上安装应用程序,即可在任何设备上使用。
2.2 使用 PowerShell 构建 Azure 远程应用环境
可以使用 RemoteApp PowerShell 命令创建和配置 Azure 远程应用环境。以下是构建环境的详细步骤:
- 步骤 1:构建 Azure 远程应用自定义映像
-
选择默认模板映像
:使用
Get-AzureRemoteAppTemplateImage命令列出可用的默认和自定义模板映像。
# 列出 Azure 远程应用模板映像
Get-AzureRemoteAppTemplateImage | Select Name
- 使用预配置的 RDSH VM 映像 :从 Azure 门户创建虚拟机,搜索 Windows Server 远程桌面会话主机映像。也可以使用 PowerShell 命令获取 RDSH 映像并创建虚拟机。
# 列出远程桌面会话主机(RDSH)的 Azure VM 映像
$RDSH_Image = Get-AzureVMImage | `
Where Label -like "Windows Server Remote Desktop Session Host*" | `
Select Label, ImageName, PublishedDate, RecommendedVMSize | `
Sort PublishedDate -Descending | `
Select -First 1 | fl
# 预配 Azure VM - 带有 RDSH 的 Windows Server 2012
$RemoteAppVM = New-AzureQuickVM -Windows `
-Name RemoteAppTemplate `
-ServiceName 'myRemoteAppTemplates' `
-ImageName $RDSH_Image.ImageName `
-Password Microsoft@123 `
-AdminUsername SherifT `
-AffinityGroup "AAGWE01" `
-InstanceSize $RDSH_Image.RecommendedVMSize
# 生成 RDP 文件
$FileName = $RemoteAppVM.Name + ".rdp"
Get-AzureRemoteDesktopFile -ServiceName $RemoteAppVM.ServiceName `
-Name $RemoteAppVM.Name `
-LocalPath $home\Desktop\AzureRDPs\$FileName
-
安装应用程序并验证映像
:连接到虚拟机,安装所需的应用程序(如 Google Chrome),然后运行桌面上的
ValidateRemoteAppImage脚本验证映像配置。 -
捕获 VM 映像并导入为远程应用模板映像
:使用
Save-AzureVMImage命令捕获 VM 映像,使用New-AzureRemoteAppTemplateImage命令将其导入为远程应用模板映像。
# 捕获 Azure VM 映像
Save-AzureVMImage -ServiceName 'myRemoteAppTemplates' `
-Name 'RemoteAppTemplate' `
-ImageName "RemoteAppTemplatev1" `
-ImageLabel "my Azure RemoteApp Template" `
-OSState Generalized
# 创建 Azure 远程应用模板映像
New-AzureRemoteAppTemplateImage -ImageName RemoteAppwithChrome `
-Location 'North Europe' `
-AzureVmImageName ' RemoteAppTemplatev1'
-
重命名和删除模板映像 :使用
Rename-AzureRemoteAppTemplateImage命令重命名模板映像,使用Remove-AzureRemoteAppTemplateImage命令删除模板映像。 -
步骤 2:创建 Azure 远程应用集合
- 集合类型 :Azure 远程应用有两种类型的集合:云集合和混合集合。两者都托管在 Azure 上并存储数据,用户可以使用 Active Directory 凭据访问应用程序。混合集合允许访问本地网络上存储的数据和资源。
-
创建云集合
:使用
New-AzureRemoteAppCollection命令创建云集合,需要指定集合名称、模板映像名称、定价计划、位置和描述。
# 创建 Azure 远程应用云集合
New-AzureRemoteAppCollection -CollectionName 'col1' `
-ImageName 'RemoteAppTemplateWithChrome' `
-Plan Basic `
-Location 'North Europe' `
-Description 'Chrome Application'
-
跟踪集合预配状态
:使用
Get-AzureRemoteAppOperationResult命令跟踪集合预配过程的状态。
# 跟踪集合预配过程的状态
Get-AzureRemoteAppOperationResult -TrackingId 71a3dc4c-9818-494c-aa11-2f4a03e01e00 | fl
-
创建混合集合
:创建混合集合前,需要确保已创建并连接到本地网络的 Azure 虚拟网络。使用
New-AzureRemoteAppCollection命令,除了云集合的参数外,还需要指定虚拟网络名称、子网名称、DNS 服务器、域名、凭据和组织单位。
# 创建 Azure 远程应用混合集合
New-AzureRemoteAppCollection -CollectionName 'col1' `
-ImageName 'RemoteAppTemplateWithChrome' `
-Plan Basic `
-Description 'Chrome Application'
-VNetName 'S2SvNET' `
-SubnetName 'ARAsubnet' `
-Domain 'Company123.com' `
-Credentials (Get-Credential ServiceAccount@Company123.com)
-
修改集合设置
:使用
Set-AzureRemoteAppCollection命令修改集合设置,如更改定价计划、更新凭据和设置 RDP 重定向选项。
# 设置 Azure 远程应用集合自定义 RDP 属性
Set-AzureRemoteAppCollection -CollectionName col1 `
-CustomRdpProperty "drivestoredirect:s:*`nusbdevicestoredirect:s:*"
# 禁用智能卡重定向
Set-AzureRemoteAppCollection -CollectionName col1 `
-CustomRdpProperty "redirectsmartcards:i:0"
-
更新集合
:使用
Update-AzureRemoteAppCollection命令更新集合,可指定新的模板映像名称,并可选择强制用户注销并重新连接。
# 更新 Azure 远程应用集合
Update-AzureRemoteAppCollection -CollectionName col1 `
-ImageName RATemplateWithBrowsers `
-ForceLogoffWhenUpdateComplete
综上所述,Azure 自动化和远程应用服务为用户提供了强大的自动化和应用程序交付能力。通过使用 PowerShell 命令,用户可以方便地配置和管理这些服务,满足不同的业务需求。
深入探索 Azure 自动化与远程应用服务
3. Azure 远程应用服务的其他操作与注意事项
3.1 RDP 重定向选项详解
在使用
Set - AzureRemoteAppCollection
命令设置 RDP 重定向选项时,了解各个选项的含义和作用非常重要。以下是详细的 RDP 重定向选项及其 PowerShell 值的表格:
| 重定向选项 | 设置值 | 是否启用 |
|---|---|---|
| 在本地计算机上播放声音(在此计算机上播放) | audiomode:i:0 | 是 |
| 从本地计算机捕获音频并发送到远程计算机(从此计算机录制) | audiocapturemode:i:1 | 是 |
| 打印到本地打印机 | redirectprinters:i:1 | 是 |
| COM 端口 | redirectcomports:i:1 | 是 |
| 智能卡设备 | redirectsmartcards:i:1 | 是 |
| 剪贴板(复制和粘贴功能) | redirectclipboard:i:1 | 是 |
| ClearType 字体平滑 | allowfontsmoothing:i:1 | 是 |
| 重定向所有支持的即插即用设备 | devicestoredirect:s:* | 是 |
| 驱动器重定向(驱动器映射) | drivestoredirect:s:* | 否 |
| USB 重定向 | usbdevicestoredirect:s:* | 否 |
当需要启用或禁用某个重定向选项时,只需修改相应设置值的最后一位数字。例如,将
redirectsmartcards:i:1
改为
redirectsmartcards:i:0
即可禁用智能卡重定向。
graph LR
A[设置 RDP 重定向选项] --> B{启用或禁用选项}
B -->|启用| C[修改设置值为 1]
B -->|禁用| D[修改设置值为 0]
3.2 集合更新的注意事项
在使用
Update - AzureRemoteAppCollection
命令更新 Azure 远程应用集合时,有一些注意事项需要牢记。
- 自定义模板映像更新 :对于 RemoteApp 自定义模板映像,更新过程需要手动完成。这意味着你需要确保新的模板映像符合所有要求,并且在更新前进行充分的测试。
-
用户通知和处理
:如果不使用
-ForceLogoffWhenUpdateComplete参数,用户将收到在 60 分钟内注销的提醒,以便他们有足够的时间保存工作。但在某些情况下,为了确保更新顺利进行,可能需要使用该参数强制用户注销并重新连接。
4. 总结与最佳实践
4.1 总结
Azure 自动化服务和 Azure 远程应用服务为企业和用户提供了强大的功能。Azure 自动化服务通过集成模块资产和计划资产,帮助用户自动化各种任务,提高工作效率。而 Azure 远程应用服务则解决了移动办公环境下用户访问 Windows 应用程序的问题,通过创建自定义映像和集合,实现了应用程序的远程交付。
4.2 最佳实践
- Azure 自动化服务最佳实践
- 模块管理 :定期清理不再使用的集成模块,避免占用过多的存储空间。同时,及时更新模块以获取最新的功能和安全补丁。
- 计划资产管理 :合理安排计划资产的运行时间,避免资源冲突。定期检查计划资产的状态,确保其正常运行。
- Azure 远程应用服务最佳实践
- 映像创建 :在创建自定义映像时,确保安装的应用程序和配置符合企业的安全和合规要求。使用预配置的 RDSH VM 映像可以节省时间和精力。
- 集合管理 :根据企业的需求选择合适的集合类型(云集合或混合集合)。定期更新集合以保持应用程序的最新状态,并合理设置 RDP 重定向选项以提高用户体验。
通过遵循这些最佳实践,用户可以更好地利用 Azure 自动化和远程应用服务,满足不同的业务需求,提升企业的竞争力。
总之,Azure 自动化和远程应用服务是云计算领域的重要工具,它们为企业和用户提供了便捷、高效的解决方案。通过深入了解和掌握这些服务的使用方法,用户可以充分发挥它们的优势,实现业务的自动化和应用程序的远程交付。
超级会员免费看
39

被折叠的 条评论
为什么被折叠?



