脚本 [SPFSDK][VMROLE]

 

适用于:Windows Azure Pack

Script 对象表示预配基于Windows虚拟机时运行的命令行可执行文件。 此对象将 2012 R2 System Center Virtual Machine Manager (VMM) 中以下Windows PowerShell cmdlet 中的许多属性组合在一起:

类型层次结构

ResourceExtension [SPFSDK][VMROLE].ExtensionSettings [SPFSDK][VMROLE].ApplicationProfile.WindowsApplicationProfile [SPFSDK][VMROLE]。脚本

语法

{
    "AlwaysReboot": false,
    "ApplicationPayloadId": string,
    "DeploymentOrder": integer,
    "ErrorPolicy": string,
    "ExecutableAndParams": {
        "Executable": string,
        "Parameters": string,
    },
    "ExitCodeRegex": string,
    "MaxOutputSize": integer,
    "RebootExitCodeRegex": regex string,
    "RestartOnRetry": boolean,
    "RestartOnExitCodeReboot": boolean,
    "ScriptBlock": string,
    "ScriptCredential": credential string
    "ScriptType": string,
    "StandardErrorPath": string,
    "StandardErrorRegex": regex string,
    "StandardInput": string,
    "StandardOutputPath": string,
    "StandardOutputRegex": regex string,
    "TimeoutInSeconds": integer,
    "WorkingDirectory": string
}

属性

名称

类型

必须

默认值

说明

AlwaysReboot

布尔

如果 为 true,则表示应在脚本成功完成后启动重启。

ApplicationPayloadID

字符串

ApplicationProfile.ApplicationPayload 项的标识符。 此有效负载必须指向文件夹,并且可以包含要运行的脚本。

ScriptType 属性设置为以下值之一时,不会使用此属性:

  • OnDeleteLast

  • OnDeleteRest

DeploymentOrder

int

运行此脚本命令的顺序。

仅当 ScriptType 属性设置为以下值之一时,才使用此属性:

  • PreInstall

  • OnProvisionFirst

  • OnProvisionLast

ErrorPolicy

字符串

处理脚本退出代码返回的错误的策略。 允许的值为:

  • FailOnMatch

  • WarnAndContinueOnMatch

ExecutableAndParams

ExecutableAndParams

可能

要运行的可执行文件。

必须声明此属性或 ScriptBlock 属性,但从不声明这两者。

ExitCodeRegEx

字符串

[1-9][0-9]*

用于确定脚本中的错误退出代码的正则表达式。

RestartExitCodeRegEx

字符串

一个正则表达式,用于确定脚本中的重启退出代码。

RestartOnRetry

Boolean

如果 为 true,则表示此脚本可以在此脚本失败并修复虚拟机后运行父应用程序时重新运行。

RestartOnExitCodeReboot

布尔

如果 为 true,则表示应在重启计算机后重新运行脚本。 当退出代码与 RebootExitCodeRegEx 属性指定的退出代码匹配时,脚本将重新启动计算机。

脚本块

字符串

可能

内联Windows shell 脚本命令。

必须声明此属性或 ExecutableAndParams 属性,但永远不会同时声明这两个属性。

ScriptCredential

字符串

运行脚本时要使用的凭据,采用 域\username:password 格式。

ScriptType

字符串

确定此脚本何时运行。 允许以下值:

  • PreInstall

  • PostInstall

  • PreUninstall

  • PostUninstall

  • OnProvisionFirst

  • OnProvisionRest

  • OnDeleteLast

  • OnDeleteRest

Pre* 和 Post* ScriptTypes 遵循 System Center 2012 R2 Virtual Machine Manager AppProfile 级别脚本命令语义。

OnProvision* ScriptTypes 遵循非对称预配脚本命令语义。

StandardErrorPath

字符串

应用于捕获 stderr 流的文件的路径。

StandardErrorRegex

字符串

stderr 流比较错误的正则表达式。

StandardInput

字符串

运行脚本时要传入 stdin 流的字符串。

StandardOutputPath

字符串

应用于捕获 stdout 流的文件的路径。

StandardOutputRegex

字符串

stdout 流比较错误的正则表达式。

TimeoutInSeconds

int

等待等待的秒数,直到出现超时。

WorkingDirectory

字符串

Windows系统目录

要为此 脚本 对象创建的进程设置的工作目录。

ExecutableAndParams

有关本部分使用的Virtual Machine Manager中Windows PowerShell cmdlet Add-SCScriptCommand的详细信息,请参阅https://go.microsoft.com/fwlink/?LinkID=308898

名称

类型

必须

默认值

说明

可执行文件

字符串

要运行的可执行文件。

parameters

String

要传递给可执行文件的参数。

备注

下面的代码示例提供了一个示例 Script 对象。

{
    "AlwaysReboot": false,
    "ApplicationPayloadId": "49c1ccdb-9068-4b91-9409-0a7ca8a1d291",
    "DeploymentOrder": 1,
    "ErrorPolicy": "FailOnMatch",
    "ExecutableAndParams": {
        "Executable": "cmd.exe",
        "Parameters": "/q /c msiexec sharepoint.msi"
    },
    "ExitCodeRegex": "[1-9][0-9]*",
    "MaxOutputSize": 1048576,
    "RebootExitCodeRegex": "{1641}|{3010}|{3011}",
    "RestartOnRetry": false,
    "ScriptBlock": null,
    "ScriptCredential": "domain\\user:password",
    "ScriptType": "PreInstall",
    "StandardErrorPath": "c:\\err.txt",
    "StandardErrorRegex": ".+",
    "StandardInput": null,
    "StandardOutputPath": "c:\\out.txt",
    "StandardOutputRegex": null,
    "TimeoutInSeconds": 900,
    "WorkingDirectory": null
}

另请参阅

ApplicationProfile.WindowsApplicationProfile [SPFSDK][VMROLE]
SQLProfile [SPFSDK][VMROLE]
WebDeployApplication [SPFSDK][VMROLE]
SQLDacApplication [SPFSDK][VMROLE]
ScriptApplication [SPFSDK][VMROLE]