创建一个脚本从 VMM 向导和属性页
适用对象:System Center 2012 R2 Virtual Machine Manager, System Center 2012 - Virtual Machine Manager
为了帮助您开始使用在编写脚本, System Center 2012 – Virtual Machine Manager 您可以在 VMM 控制台中运行向导或更新的属性时生成一个脚本。 您可以使用 查看脚本 按钮 摘要 在 VMM 控制台中的每个向导页面或 属性 页可以查看将在您单击时运行的 cmdlet 集 完成 在向导的末尾或 确定 属性的更新时。 可以根据需要命令进行修改,然后以.ps1 扩展名,其标识为 Windows PowerShell 脚本中保存该文件。
修改生成的脚本
生成的脚本使用 cmdlet 的 ID 参数来确定它们将在其执行操作的特定对象。 因为该 ID 是特定于该对象,您可能想要允许您的脚本采用参数,或使用 Get cmdlet 来获取的对象以使您的脚本可用于与其他对象一起使用。
将 Get cmdlet 添加到生成的脚本
当对属性值进行更改时,生成的脚本将使用 ID 来获取要更改的对象。 例如,以下脚本会生成时更改名称和为逻辑网络的说明:
$logicalNetwork = Get-SCLogicalNetwork -ID "7a858ed4-b8d2-4ac8-9dbe-6e6a4388c1e7"
Set-SCLogicalNetwork -Name "Backend" -Description "Backend logical network for Seattle" -LogicalNetwork $logicalNetwork -RunAsynchronously
若要使此脚本在其他环境中很有用,可以替换 ID 参数使用 where 子句。 例如:
$logicalNetwork = @(Get-SCLogicalNetwork | where { $_.Name -like "LogicalNet*" })
Set-SCLogicalNetwork -Name "Backend" -Description "Backend logical network for Seattle" -LogicalNetwork $logicalNetwork[0] -RunAsynchronously
第一条命令现在检索具有名称以"LogicalNet"开头且将其放在数组中的所有逻辑网络。 第二个命令将修改在数组中,更新其名称为"后端"的第一个逻辑网络。
向生成的脚本中添加参数
若要使生成的脚本更易于访问的另一种方法是在脚本中定义参数。 脚本参数使用像函数参数。 参数值可供所有在脚本中的命令。 当运行该脚本,脚本用户在脚本名称后键入的参数。
若要将参数添加到脚本中,使用 Param 语句。 Param 语句必须是在除注释的脚本中的第一个语句。 下面的示例演示从上面生成的脚本修改,以便可以指定现有的逻辑网络的名称和逻辑网络的新名称,并说明添加脚本运行时。
Param(
[parameter(Mandatory=$true)]
[String] $LogicalNetwork = $(throw "A name for an existing logical network is required."),
[parameter(Mandatory=$true)]
[String] $NewName = $(throw "A new name for the logical network is required."),
[parameter(Mandatory=$false)]
[String] $Description
)
Set-SCLogicalNetwork -Name $NewName -Description $Description -LogicalNetwork $LogicalNetwork -RunAsynchronously
当您运行此脚本时,您必须提供现有的逻辑网络的名称和逻辑网络的新名称。 提供说明是可选的。 例如如果此脚本另存为"UpdateLogicalNetworkName.ps1",则应在命令提示符下键入以下:.\UpdateLogicalNetworkName.ps1 -LogicalNetwork "LogicalNetwork01" -NewName "Backend" -Description "Backend logical network for Seattle." 如果未提供值 LogicalNetwork 和 NewName, ,系统将提示您为它们。
有关编写 Windows PowerShell 脚本的详细信息,请参阅 about_Scripts。