diff --git a/Tasks/IISWebAppDeployment/DeployIISWebApp.ps1 b/Tasks/IISWebAppDeployment/DeployIISWebApp.ps1
new file mode 100644
index 000000000000..71e788c73b5a
--- /dev/null
+++ b/Tasks/IISWebAppDeployment/DeployIISWebApp.ps1
@@ -0,0 +1,157 @@
+param (
+ [string]$environmentName,
+ [string]$adminUserName,
+ [string]$adminPassword,
+ [string]$winrmProtocol,
+ [string]$testCertificate,
+ [string]$resourceFilteringMethod,
+ [string]$machineFilter,
+ [string]$webDeployPackage,
+ [string]$webDeployParamFile,
+ [string]$overRideParams,
+ [string]$createWebSite,
+ [string]$webSiteName,
+ [string]$webSitePhysicalPath,
+ [string]$webSitePhysicalPathAuth,
+ [string]$webSiteAuthUserName,
+ [string]$webSiteAuthUserPassword,
+ [string]$addBinding,
+ [string]$assignDuplicateBinding,
+ [string]$protocol,
+ [string]$ipAddress,
+ [string]$port,
+ [string]$hostNameWithHttp,
+ [string]$hostNameWithOutSNI,
+ [string]$hostNameWithSNI,
+ [string]$serverNameIndication,
+ [string]$sslCertThumbPrint,
+ [string]$createAppPool,
+ [string]$appPoolName,
+ [string]$dotNetVersion,
+ [string]$pipeLineMode,
+ [string]$appPoolIdentity,
+ [string]$appPoolUsername,
+ [string]$appPoolPassword,
+ [string]$appCmdCommands,
+ [string]$deployInParallel
+ )
+
+Write-Warning "The preview IIS Web App Deployment task has been deprecated and will be removed soon. An IIS Web App Deployment extension has been released in the Visual Studio Team Services marketplace at https://aka.ms/iisextn. Install the extension, and use its tasks in the Build/Release definitions, and delete the preview task from the definition."
+Write-Verbose "Entering script DeployIISWebApp.ps1" -Verbose
+
+$hostName = [string]::Empty
+
+if($protocol -eq "http")
+{
+ $hostName = $hostNameWithHttp
+}
+elseif($serverNameIndication -eq "true")
+{
+ $hostName = $hostNameWithSNI
+}
+else
+{
+ $hostName = $hostNameWithOutSNI
+}
+
+Write-Verbose "environmentName = $environmentName" -Verbose
+Write-Verbose "adminUserName = $adminUserName" -Verbose
+Write-Verbose "winrm protocol to connect to machine = $winrmProtocol" -Verbose
+Write-Verbose "testCertificate = $testCertificate" -Verbose
+Write-Verbose "resourceFilteringMethod = $resourceFilteringMethod" -Verbose
+Write-Verbose "machineFilter = $machineFilter" -Verbose
+Write-Verbose "webDeployPackage = $webDeployPackage" -Verbose
+Write-Verbose "webDeployParamFile = $webDeployParamFile" -Verbose
+Write-Verbose "overRideParams = $overRideParams" -Verbose
+Write-Verbose "deployInParallel = $deployInParallel" -Verbose
+
+Write-Verbose "createWebSite = $createWebSite" -Verbose
+Write-Verbose "webSiteName = $webSiteName" -Verbose
+Write-Verbose "webSitePhysicalPath = $webSitePhysicalPath" -Verbose
+Write-Verbose "webSitePhysicalPathAuth = $webSitePhysicalPathAuth" -Verbose
+Write-Verbose "webSiteAuthUserName = $webSiteAuthUserName" -Verbose
+Write-Verbose "addBinding = $addBinding" -Verbose
+Write-Verbose "assignDuplicateBinding = $assignDuplicateBinding" -Verbose
+Write-Verbose "protocol = $protocol" -Verbose
+Write-Verbose "ipAddress = $ipAddress" -Verbose
+Write-Verbose "port = $port" -Verbose
+Write-Verbose "hostName = $hostName" -Verbose
+Write-Verbose "serverNameIndication = $serverNameIndication" -Verbose
+
+Write-Verbose "createAppPool = $createAppPool" -Verbose
+Write-Verbose "appPoolName = $appPoolName" -Verbose
+Write-Verbose "dotNetVersion = $dotNetVersion" -Verbose
+Write-Verbose "pipeLineMode = $pipeLineMode" -Verbose
+Write-Verbose "appPoolIdentity = $appPoolIdentity" -Verbose
+Write-Verbose "appPoolUsername = $appPoolUsername" -Verbose
+
+Write-Verbose "appCmdCommands = $appCmdCommands" -Verbose
+Write-Verbose "deployInParallel = $deployInParallel" -Verbose
+
+import-module "Microsoft.TeamFoundation.DistributedTask.Task.Internal"
+import-module "Microsoft.TeamFoundation.DistributedTask.Task.Common"
+import-module "Microsoft.TeamFoundation.DistributedTask.Task.DevTestLabs"
+Import-Module "Microsoft.TeamFoundation.DistributedTask.Task.Deployment.Internal"
+Import-Module "Microsoft.TeamFoundation.DistributedTask.Task.Deployment.RemoteDeployment"
+
+$webDeployPackage = $webDeployPackage.Trim('"', ' ')
+$webDeployParamFile = $webDeployParamFile.Trim('"', ' ')
+$webSiteName = $webSiteName.Trim('"', ' ')
+$webSitePhysicalPath = $webSitePhysicalPath.Trim('"', ' ')
+$webSiteAuthUserName = $webSiteAuthUserName.Trim()
+
+$appPoolName = $appPoolName.Trim('"', ' ')
+$appPoolUsername = $appPoolUsername.Trim()
+
+$appCmdCommands = $appCmdCommands.Replace('"', '`"')
+
+if($createWebSite -ieq "true" -and [string]::IsNullOrWhiteSpace($webSiteName))
+{
+ throw "Website Name cannot be empty if you want to create or update the target website."
+}
+
+if($createAppPool -ieq "true" -and [string]::IsNullOrWhiteSpace($appPoolName))
+{
+ throw "Application pool name cannot be empty if you want to create or update the target app pool."
+}
+
+
+if(![string]::IsNullOrWhiteSpace($webSiteName))
+{
+ if([string]::IsNullOrWhiteSpace($overRideParams))
+ {
+ Write-Verbose "Adding override params to ensure deployment happens on $webSiteName" -Verbose
+ $overRideParams = [string]::Format('name="IIS Web Application Name",value="{0}"', $webSiteName)
+ }
+ elseif(!$overRideParams.Contains("IIS Web Application Name"))
+ {
+ $overRideParams = $overRideParams + [string]::Format('{0}name="IIS Web Application Name",value="{1}"', [System.Environment]::NewLine, $webSiteName)
+ }
+}
+$overRideParams = $overRideParams.Replace('"', '`"')
+$msDeployScript = Get-Content ./MsDeployOnTargetMachines.ps1 | Out-String
+$invokeMain = "Execute-Main -WebDeployPackage `"$webDeployPackage`" -WebDeployParamFile `"$webDeployParamFile`" -OverRideParams `"$overRideParams`" -WebSiteName `"$webSiteName`" -WebSitePhysicalPath `"$webSitePhysicalPath`" -WebSitePhysicalPathAuth `"$webSitePhysicalPathAuth`" -WebSiteAuthUserName `"$webSiteAuthUserName`" -WebSiteAuthUserPassword `"$webSiteAuthUserPassword`" -AddBinding $addBinding -AssignDuplicateBinding $assignDuplicateBinding -Protocol $protocol -IpAddress `"$ipAddress`" -Port $port -HostName `"$hostName`" -ServerNameIndication $serverNameIndication -SslCertThumbPrint `"$sslCertThumbPrint`" -AppPoolName `"$appPoolName`" -DotNetVersion `"$dotNetVersion`" -PipeLineMode $pipeLineMode -AppPoolIdentity $appPoolIdentity -AppPoolUsername `"$appPoolUsername`" -AppPoolPassword `"$appPoolPassword`" -AppCmdCommands `"$appCmdCommands`" -CreateWebSite $createWebSite -CreateAppPool $createAppPool"
+
+Write-Verbose "Executing main funnction in MsDeployOnTargetMachines : $invokeMain"
+$msDeployOnTargetMachinesScript = [string]::Format("{0} {1} ( {2} )", $msDeployScript, [Environment]::NewLine, $invokeMain)
+Write-Output ( Get-LocalizedString -Key "Starting deployment of IIS Web Deploy Package : {0}" -ArgumentList $webDeployPackage)
+
+$errorMessage = [string]::Empty
+
+if($resourceFilteringMethod -eq "tags")
+{
+ $errorMessage = Invoke-RemoteDeployment -environmentName $environmentName -tags $machineFilter -scriptBlockContent $msDeployOnTargetMachinesScript -runPowershellInParallel $deployInParallel -adminUserName $adminUserName -adminPassword $adminPassword -protocol $winrmProtocol -testCertificate $testCertificate
+}
+else
+{
+ $errorMessage = Invoke-RemoteDeployment -environmentName $environmentName -machineNames $machineFilter -scriptBlockContent $msDeployOnTargetMachinesScript -runPowershellInParallel $deployInParallel -adminUserName $adminUserName -adminPassword $adminPassword -protocol $winrmProtocol -testCertificate $testCertificate
+}
+
+if(-not [string]::IsNullOrEmpty($errorMessage))
+{
+ $readmelink = "https://aka.ms/iiswebappdeployreadme"
+ $helpMessage = (Get-LocalizedString -Key "For more info please refer to {0}" -ArgumentList $readmelink)
+ throw "$errorMessage $helpMessage"
+}
+
+Write-Output ( Get-LocalizedString -Key "Successfully deployed IIS Web Deploy Package : {0}" -ArgumentList $webDeployPackage)
\ No newline at end of file
diff --git a/Tasks/IISWebAppDeployment/MsDeployOnTargetMachines.ps1 b/Tasks/IISWebAppDeployment/MsDeployOnTargetMachines.ps1
new file mode 100644
index 000000000000..0f19c02774f2
--- /dev/null
+++ b/Tasks/IISWebAppDeployment/MsDeployOnTargetMachines.ps1
@@ -0,0 +1,617 @@
+Write-Verbose "Entering script MsDeployOnTargetMachines.ps1"
+$AppCmdRegKey = "HKLM:\SOFTWARE\Microsoft\InetStp"
+$MsDeployInstallPathRegKey = "HKLM:\SOFTWARE\Microsoft\IIS Extensions\MSDeploy"
+
+function Run-Command
+{
+ param(
+ [string]$command,
+ [bool] $failOnErr = $true
+ )
+
+ $ErrorActionPreference = 'Continue'
+
+ if( $psversiontable.PSVersion.Major -le 4)
+ {
+ $result = cmd.exe /c "`"$command`""
+ }
+ else
+ {
+ $result = cmd.exe /c "$command"
+ }
+
+ $ErrorActionPreference = 'Stop'
+
+ if($failOnErr -and $LASTEXITCODE -ne 0)
+ {
+ throw $result
+ }
+
+ return $result
+}
+
+function Get-MsDeployLocation
+{
+ param(
+ [Parameter(Mandatory=$true)]
+ [string]$regKeyPath
+ )
+
+ $msDeployNotFoundError = "Cannot find MsDeploy.exe location. Verify MsDeploy.exe is installed on $env:ComputeName and try operation again."
+
+ if( -not (Test-Path -Path $regKeyPath))
+ {
+ throw $msDeployNotFoundError
+ }
+
+ $path = (Get-ChildItem -Path $regKeyPath | Select -Last 1).GetValue("InstallPath")
+
+ if( -not (Test-Path -Path $path))
+ {
+ throw $msDeployNotFoundError
+ }
+
+ return (Join-Path $path msDeploy.exe)
+}
+
+function Get-AppCmdLocation
+{
+ param(
+ [Parameter(Mandatory=$true)]
+ [string]$regKeyPath
+ )
+
+ $appCmdNotFoundError = "Cannot find appcmd.exe location. Verify IIS is configured on $env:ComputerName and try operation again."
+ $appCmdMinVersionError = "Version of IIS is less than 7.0 on machine $env:ComputerName. Minimum version of IIS required is 7.0"
+
+
+ if(-not (Test-Path -Path $regKeyPath))
+ {
+ throw $appCmdNotFoundError
+ }
+
+ $regKey = Get-ItemProperty -Path $regKeyPath
+ $path = $regKey.InstallPath
+ $version = $regKey.MajorVersion
+
+ if($version -le 6.0)
+ {
+ throw $appCmdMinVersionError
+ }
+
+ if( -not (Test-Path $path))
+ {
+ throw $appCmdNotFoundError
+ }
+
+ return (Join-Path $path appcmd.exe), $version
+}
+
+function Get-MsDeployCmdArgs
+{
+ param(
+ [Parameter(Mandatory=$true)]
+ [string]$webDeployPackage,
+ [string]$webDeployParamFile,
+ [string]$overRideParams
+ )
+
+ if(-not ( Test-Path -Path $webDeployPackage))
+ {
+ throw "Package does not exist : `"$webDeployPackage`""
+ }
+
+ $msDeployCmdArgs = [string]::Empty
+ if(-not [string]::IsNullOrWhiteSpace($webDeployParamFile))
+ {
+
+ if(-not ( Test-Path -Path $webDeployParamFile))
+ {
+ throw "Param file does not exist : `"$webDeployParamFile`""
+ }
+
+ $msDeployCmdArgs = [string]::Format(' -setParamFile="{0}"', $webDeployParamFile)
+ }
+
+ $setParams = $overRideParams.Split([System.Environment]::NewLine, [System.StringSplitOptions]::RemoveEmptyEntries)
+ foreach($setParam in $setParams)
+ {
+ $setParam = $setParam.Trim()
+ if(-not [string]::IsNullOrWhiteSpace($setParam))
+ {
+ $msDeployCmdArgs = [string]::Format('{0} -setParam:{1}', $msDeployCmdArgs, $setParam)
+ }
+ }
+
+ $msDeployCmdArgs = [string]::Format(' -verb:sync -source:package="{0}" {1} -dest:auto -verbose -retryAttempts:3 -retryInterval:3000', $webDeployPackage, $msDeployCmdArgs)
+ return $msDeployCmdArgs
+}
+
+function Does-WebSiteExists
+{
+ param([string] $siteName)
+
+ $appCmdPath, $iisVersion = Get-AppCmdLocation -regKeyPath $AppCmdRegKey
+ $appCmdArgs = [string]::Format(' list site /name:"{0}"',$siteName)
+ $command = "`"$appCmdPath`" $appCmdArgs"
+ Write-Verbose "Checking website exists. Running command : $command"
+
+ $website = Run-Command -command $command -failOnErr $false
+
+ if($website -ne $null)
+ {
+ Write-Verbose "Website (`"$siteName`") already exists"
+ return $true
+ }
+
+ Write-Verbose "Website (`"$siteName`") does not exist"
+ return $false
+}
+
+function Does-BindingExists
+{
+ param(
+ [string]$siteName,
+ [string]$protocol,
+ [string]$ipAddress,
+ [string]$port,
+ [string]$hostname,
+ [string]$assignDupBindings
+ )
+
+ $appCmdPath, $iisVersion = Get-AppCmdLocation -regKeyPath $AppCmdRegKey
+ $appCmdArgs = [string]::Format(' list sites')
+ $command = "`"$appCmdPath`" $appCmdArgs"
+
+ Write-Verbose "Checking binding exists for website (`"$siteName`"). Running command : $command"
+
+ $sites = Run-Command -command $command -failOnErr $false
+ $binding = [string]::Format("{0}/{1}:{2}:{3}", $protocol, $ipAddress, $port, $hostname)
+
+ $isBindingExists = $false
+
+ foreach($site in $sites)
+ {
+ switch($assignDupBindings)
+ {
+ $true
+ {
+ if($site.Contains($siteName) -and $site.Contains($binding))
+ {
+ $isBindingExists = $true
+ }
+ }
+ default
+ {
+ if($site.Contains($siteName) -and $site.Contains($binding))
+ {
+ $isBindingExists = $true
+ }
+ elseif($site.Contains($binding))
+ {
+ throw "Binding already exists for website (`"$site`")"
+ }
+ }
+ }
+ }
+
+ Write-Verbose "Does bindings exist for website (`"$siteName`") is : $isBindingExists"
+ return $isBindingExists
+}
+
+function Does-AppPoolExists
+{
+ param(
+ [string]$appPoolName
+ )
+
+ $appCmdPath, $iisVersion = Get-AppCmdLocation -regKeyPath $AppCmdRegKey
+ $appCmdArgs = [string]::Format(' list apppool /name:"{0}"',$appPoolName)
+ $command = "`"$appCmdPath`" $appCmdArgs"
+
+ Write-Verbose "Checking application exists. Running command : $command"
+
+ $appPool = Run-Command -command $command -failOnErr $false
+
+ if($appPool -ne $null)
+ {
+ Write-Verbose "Application Pool (`"$appPoolName`") already exists"
+ return $true
+ }
+
+ Write-Verbose "Application Pool (`"$appPoolName`") does not exists"
+ return $false
+}
+
+function Enable-SNI
+{
+ param(
+ [string]$siteName,
+ [string]$sni,
+ [string]$ipAddress,
+ [string]$port,
+ [string]$hostname
+ )
+
+ $appCmdPath, $iisVersion = Get-AppCmdLocation -regKeyPath $AppCmdRegKey
+
+ if( -not ($sni -eq "true" -and $iisVersion -ge 8 -and -not [string]::IsNullOrWhiteSpace($hostname)))
+ {
+ Write-Verbose "Not enabling SNI : sni : $sni, iisVersion : $iisVersion, hostname : $hostname. Possible Reasons: `n 1. IIS Version is less than 8 `n 2. HostName input is not provided `n 3. SNI input is set to false"
+ return
+ }
+
+ if($ipAddress -eq "All Unassigned")
+ {
+ $ipAddress = "*"
+ }
+
+ $appCmdArgs = [string]::Format(' set site /site.name:{0} /bindings.[protocol=''https'',bindingInformation=''{1}:{2}:{3}''].sslFlags:"1"',$siteName, $ipAddress, $port, $hostname)
+ $command = "`"$appCmdPath`" $appCmdArgs"
+
+ Write-Verbose "Enabling SNI by setting SslFlags=1 for binding. Running command : $command"
+ Run-Command -command $command
+}
+
+function Add-SslCert
+{
+ param(
+ [string]$port,
+ [string]$certhash,
+ [string]$hostname,
+ [string]$sni,
+ [string]$iisVersion
+ )
+
+ if([string]::IsNullOrWhiteSpace($certhash))
+ {
+ Write-Verbose "CertHash is empty .. returning"
+ return
+ }
+
+ $result = $null
+ $isItSameBinding = $false
+ $addCertCmd = [string]::Empty
+
+ #SNI is supported IIS 8 and above. To enable SNI hostnameport option should be used
+ if($sni -eq "true" -and $iisVersion -ge 8 -and -not [string]::IsNullOrWhiteSpace($hostname))
+ {
+ $showCertCmd = [string]::Format("netsh http show sslcert hostnameport={0}:{1}", $hostname, $port)
+ Write-Verbose "Checking SslCert binding already Present. Running command : $showCertCmd"
+
+ $result = Run-Command -command $showCertCmd -failOnErr $false
+ $isItSameBinding = $result.Get(4).Contains([string]::Format("{0}:{1}", $hostname, $port))
+
+ $addCertCmd = [string]::Format("netsh http add sslcert hostnameport={0}:{1} certhash={2} appid={{{3}}} certstorename=MY", $hostname, $port, $certhash, [System.Guid]::NewGuid().toString())
+ }
+ else
+ {
+ $showCertCmd = [string]::Format("netsh http show sslcert ipport=0.0.0.0:{0}", $port)
+ Write-Verbose "Checking SslCert binding already Present. Running command : $showCertCmd"
+
+ $result = Run-Command -command $showCertCmd -failOnErr $false
+ $isItSameBinding = $result.Get(4).Contains([string]::Format("0.0.0.0:{0}", $port))
+
+ $addCertCmd = [string]::Format("netsh http add sslcert ipport=0.0.0.0:{0} certhash={1} appid={{{2}}}", $port, $certhash, [System.Guid]::NewGuid().toString())
+ }
+
+ $isItSameCert = $result.Get(5).ToLower().Contains([string]::Format("{0}", $certhash.ToLower()))
+
+ if($isItSameBinding -and $isItSameCert)
+ {
+ Write-Verbose "SSL cert binding already present.. returning"
+ return
+ }
+
+ Write-Verbose "Setting SslCert for website."
+ Run-Command -command $addCertCmd
+}
+
+function Deploy-WebSite
+{
+ param(
+ [string]$webDeployPkg,
+ [string]$webDeployParamFile,
+ [string]$overRiderParams
+ )
+
+ $msDeployExePath = Get-MsDeployLocation -regKeyPath $MsDeployInstallPathRegKey
+ $msDeployCmdArgs = Get-MsDeployCmdArgs -webDeployPackage $webDeployPkg -webDeployParamFile $webDeployParamFile -overRideParams $overRiderParams
+
+ $msDeployCmd = "`"$msDeployExePath`" $msDeployCmdArgs"
+ Write-Verbose "Deploying website. Running command: $msDeployCmd"
+ Run-Command -command $msDeployCmd
+}
+
+function Create-WebSite
+{
+ param(
+ [string]$siteName,
+ [string]$physicalPath
+ )
+
+ $appCmdPath, $iisVersion = Get-AppCmdLocation -regKeyPath $AppCmdRegKey
+ $appCmdArgs = [string]::Format(' add site /name:"{0}" /physicalPath:"{1}"',$siteName, $physicalPath)
+ $command = "`"$appCmdPath`" $appCmdArgs"
+
+ Write-Verbose "Creating website. Running command : $command"
+ Run-Command -command $command
+}
+
+function Create-AppPool
+{
+ param(
+ [string]$appPoolName
+ )
+
+ $appCmdPath, $iisVersion = Get-AppCmdLocation -regKeyPath $AppCmdRegKey
+ $appCmdArgs = [string]::Format(' add apppool /name:"{0}"', $appPoolName)
+ $command = "`"$appCmdPath`" $appCmdArgs"
+
+ Write-Verbose "Creating application Pool. Running command : $command"
+ Run-Command -command $command
+}
+
+function Run-AdditionalCommands
+{
+ param(
+ [string]$additionalCommands
+ )
+
+ $appCmdCommands = $additionalCommands.Trim('"').Split([System.Environment]::NewLine, [System.StringSplitOptions]::RemoveEmptyEntries)
+ $appCmdPath, $iisVersion = Get-AppCmdLocation -regKeyPath $AppCmdRegKey
+
+ foreach($appCmdCommand in $appCmdCommands)
+ {
+ if(-not [string]::IsNullOrWhiteSpace($appCmdCommand.Trim(' ')))
+ {
+ $command = "`"$appCmdPath`" $appCmdCommand"
+
+ Write-Verbose "Running additional command. $command"
+ Run-Command -command $command
+ }
+ }
+}
+
+function Update-WebSite
+{
+ param(
+ [string]$siteName,
+ [string]$appPoolName,
+ [string]$physicalPath,
+ [string]$authType,
+ [string]$userName,
+ [string]$password,
+ [string]$addBinding,
+ [string]$protocol,
+ [string]$ipAddress,
+ [string]$port,
+ [string]$hostname,
+ [string]$assignDupBindings
+ )
+
+ $appCmdArgs = [string]::Format(' set site /site.name:"{0}"', $siteName)
+
+ if(-not [string]::IsNullOrWhiteSpace($appPoolName))
+ {
+ $appCmdArgs = [string]::Format('{0} -applicationDefaults.applicationPool:"{1}"', $appCmdArgs, $appPoolName)
+ }
+
+ if(-not [string]::IsNullOrWhiteSpace($physicalPath))
+ {
+ $appCmdArgs = [string]::Format("{0} -[path='/'].[path='/'].physicalPath:`"{1}`"", $appCmdArgs, $physicalPath)
+ }
+
+ if(-not [string]::IsNullOrWhiteSpace($userName) -and $authType -eq "WebsiteWindowsAuth")
+ {
+ $appCmdArgs = [string]::Format("{0} -[path='/'].[path='/'].userName:{1}", $appCmdArgs, $userName)
+ }
+
+ if(-not [string]::IsNullOrWhiteSpace($password) -and $authType -eq "WebsiteWindowsAuth")
+ {
+ $appCmdArgs = [string]::Format("{0} -[path='/'].[path='/'].password:{1}", $appCmdArgs, $password)
+ }
+
+ if($ipAddress -eq "All Unassigned")
+ {
+ $ipAddress = "*"
+ }
+
+ $isBindingExists = Does-BindingExists -siteName $siteName -protocol $protocol -ipAddress $ipAddress -port $port -hostname $hostname -assignDupBindings $assignDupBindings
+
+ if($addBinding -eq "true" -and $isBindingExists -eq $false)
+ {
+ $appCmdArgs = [string]::Format("{0} /+bindings.[protocol='{1}',bindingInformation='{2}:{3}:{4}']", $appCmdArgs, $protocol, $ipAddress, $port, $hostname)
+ }
+
+ $appCmdPath, $iisVersion = Get-AppCmdLocation -regKeyPath $AppCmdRegKey
+ $command = "`"$appCmdPath`" $appCmdArgs"
+
+ Write-Verbose "Updating website properties. Running command : $command"
+ Run-Command -command $command
+}
+
+function Update-AppPool
+{
+ param(
+ [string]$appPoolName,
+ [string]$clrVersion,
+ [string]$pipeLineMode,
+ [string]$identity,
+ [string]$userName,
+ [string]$password
+ )
+
+ $appCmdArgs = ' set config -section:system.applicationHost/applicationPools'
+
+ if(-not [string]::IsNullOrWhiteSpace($clrVersion))
+ {
+ $appCmdArgs = [string]::Format('{0} /[name=''"{1}"''].managedRuntimeVersion:{2}', $appCmdArgs, $appPoolName, $clrVersion)
+ }
+
+ if(-not [string]::IsNullOrWhiteSpace($pipeLineMode))
+ {
+ $appCmdArgs = [string]::Format('{0} /[name=''"{1}"''].managedPipelineMode:{2}', $appCmdArgs, $appPoolName, $pipeLineMode)
+ }
+
+ if($identity -eq "SpecificUser" -and -not [string]::IsNullOrWhiteSpace($userName) -and -not [string]::IsNullOrWhiteSpace($password))
+ {
+ $appCmdArgs = [string]::Format('{0} /[name=''"{1}"''].processModel.identityType:SpecificUser /[name=''"{1}"''].processModel.userName:"{2}" /[name=''"{1}"''].processModel.password:"{3}"',`
+ $appCmdArgs, $appPoolName, $userName, $password)
+ }
+ elseif ($identity -eq "SpecificUser" -and -not [string]::IsNullOrWhiteSpace($userName))
+ {
+ $appCmdArgs = [string]::Format('{0} /[name=''"{1}"''].processModel.identityType:SpecificUser /[name=''"{1}"''].processModel.userName:"{2}"',`
+ $appCmdArgs, $appPoolName, $userName)
+ }
+ else
+ {
+ $appCmdArgs = [string]::Format('{0} /[name=''"{1}"''].processModel.identityType:{2}', $appCmdArgs, $appPoolName, $identity)
+ }
+
+ $appCmdPath, $iisVersion = Get-AppCmdLocation -regKeyPath $AppCmdRegKey
+ $command = "`"$appCmdPath`" $appCmdArgs"
+
+ Write-Verbose "Updating application pool properties. Running command : $command"
+ Run-Command -command $command
+}
+
+function Create-And-Update-WebSite
+{
+ param(
+ [string]$siteName,
+ [string]$appPoolName,
+ [string]$physicalPath,
+ [string]$authType,
+ [string]$userName,
+ [string]$password,
+ [string]$addBinding,
+ [string]$protocol,
+ [string]$ipAddress,
+ [string]$port,
+ [string]$hostname,
+ [string]$assignDupBindings
+ )
+
+ $doesWebSiteExists = Does-WebSiteExists -siteName $siteName
+
+ if( -not $doesWebSiteExists)
+ {
+ Create-WebSite -siteName $siteName -physicalPath $physicalPath
+ }
+
+ Update-WebSite -siteName $siteName -appPoolName $appPoolName -physicalPath $physicalPath -authType $authType -userName $userName -password $password `
+ -addBinding $addBinding -protocol $protocol -ipAddress $ipAddress -port $port -hostname $hostname -assignDupBindings $assignDupBindings
+}
+
+function Create-And-Update-AppPool
+{
+ param(
+ [string]$appPoolName,
+ [string]$clrVersion,
+ [string]$pipeLineMode,
+ [string]$identity,
+ [string]$userName,
+ [string]$password
+ )
+
+ $doesAppPoolExists = Does-AppPoolExists -appPoolName $appPoolName
+
+ if(-not $doesAppPoolExists)
+ {
+ Create-AppPool -appPoolName $appPoolName
+ }
+
+ Update-AppPool -appPoolName $appPoolName -clrVersion $clrVersion -pipeLineMode $pipeLineMode -identity $identity -userName $userName -password $password
+}
+
+function Execute-Main
+{
+ param (
+ [string]$WebDeployPackage,
+ [string]$WebDeployParamFile,
+ [string]$OverRideParams,
+ [string]$CreateWebSite,
+ [string]$WebSiteName,
+ [string]$WebSitePhysicalPath,
+ [string]$WebSitePhysicalPathAuth,
+ [string]$WebSiteAuthUserName,
+ [string]$WebSiteAuthUserPassword,
+ [string]$AddBinding,
+ [string]$AssignDuplicateBinding,
+ [string]$Protocol,
+ [string]$IpAddress,
+ [string]$Port,
+ [string]$HostName,
+ [string]$ServerNameIndication,
+ [string]$SslCertThumbPrint,
+ [string]$CreateAppPool,
+ [string]$AppPoolName,
+ [string]$DotNetVersion,
+ [string]$PipeLineMode,
+ [string]$AppPoolIdentity,
+ [string]$AppPoolUsername,
+ [string]$AppPoolPassword,
+ [string]$AppCmdCommands
+ )
+
+ Write-Verbose "Entering Execute-Main function"
+ Write-Verbose "WebDeployPackage = $WebDeployPackage"
+ Write-Verbose "WebDeployParamFile = $WebDeployParamFile"
+ Write-Verbose "OverRideParams = $OverRideParams"
+
+ Write-Verbose "CreateWebSite= $CreateWebSite"
+ Write-Verbose "WebSiteName = $WebSiteName"
+ Write-Verbose "WebSitePhysicalPath = $WebSitePhysicalPath"
+ Write-Verbose "WebSitePhysicalPathAuth = $WebSitePhysicalPathAuth"
+ Write-Verbose "WebSiteAuthUserName = $WebSiteAuthUserName"
+ Write-Verbose "WebSiteAuthUserPassword = $WebSiteAuthUserPassword"
+ Write-Verbose "AddBinding = $AddBinding"
+ Write-Verbose "AssignDuplicateBinding = $AssignDuplicateBinding"
+ Write-Verbose "Protocol = $Protocol"
+ Write-Verbose "IpAddress = $IpAddress"
+ Write-Verbose "Port = $Port"
+ Write-Verbose "HostName = $HostName"
+ Write-Verbose "ServerNameIndication = $ServerNameIndication"
+
+ Write-Verbose "CreateAppPool = $CreateAppPool"
+ Write-Verbose "AppPoolName = $AppPoolName"
+ Write-Verbose "DotNetVersion = $DotNetVersion"
+ Write-Verbose "PipeLineMode = $PipeLineMode"
+ Write-Verbose "AppPoolIdentity = $AppPoolIdentity"
+ Write-Verbose "AppPoolUsername = $AppPoolUsername"
+ Write-Verbose "AppPoolPassword = $AppPoolPassword"
+ Write-Verbose "AppCmdCommands = $AppCmdCommands"
+
+ if($CreateAppPool -ieq "true")
+ {
+ Create-And-Update-AppPool -appPoolName $AppPoolName -clrVersion $DotNetVersion -pipeLineMode $PipeLineMode -identity $AppPoolIdentity -userName $AppPoolUsername -password $AppPoolPassword
+ }
+
+ if($CreateWebSite -ieq "true")
+ {
+ Create-And-Update-WebSite -siteName $WebSiteName -appPoolName $AppPoolName -physicalPath $WebSitePhysicalPath -authType $WebSitePhysicalPathAuth -userName $WebSiteAuthUserName `
+ -password $WebSiteAuthUserPassword -addBinding $AddBinding -protocol $Protocol -ipAddress $IpAddress -port $Port -hostname $HostName -assignDupBindings $AssignDuplicateBinding
+
+ if($Protocol -eq "https")
+ {
+ $appCmdPath, $iisVersion = Get-AppCmdLocation -regKeyPath $AppCmdRegKey
+ Add-SslCert -port $Port -certhash $SslCertThumbPrint -hostname $HostName -sni $ServerNameIndication -iisVersion $iisVersion
+ Enable-SNI -siteName $WebSiteName -sni $ServerNameIndication -ipAddress $IpAddress -port $Port -hostname $HostName
+ }
+ }
+ else
+ {
+ $doesWebSiteExists = Does-WebSiteExists -siteName $WebSiteName
+ if (-not $doesWebSiteExists)
+ {
+ Write-Verbose "Website does not exist and you did not request to create it - deployment might fail."
+ }
+ }
+
+ Run-AdditionalCommands -additionalCommands $AppCmdCommands
+
+ Deploy-WebSite -webDeployPkg $WebDeployPackage -webDeployParamFile $WebDeployParamFile -overRiderParams $OverRideParams
+
+ Write-Verbose "Exiting Execute-Main function"
+}
diff --git a/Tasks/IISWebAppDeployment/README.md b/Tasks/IISWebAppDeployment/README.md
new file mode 100644
index 000000000000..b474b448c437
--- /dev/null
+++ b/Tasks/IISWebAppDeployment/README.md
@@ -0,0 +1,110 @@
+# IIS Web Application Deployment
+
+## **Important Notice**
+The preview IIS Web Application Deployment task has been **deprecated and will be removed soon**. The task has been **shipped as an extension for Visual Studio Team Services**, and is available in the marketplace - https://marketplace.visualstudio.com/items?itemName=ms-vscs-rm.iiswebapp.
+
+**Install the extension, and add the tasks from the extension in Build or Release Definitions, and remove this IIS Web Application Deployment task from the definition.**
+
+
+## Overview
+
+The task is used to deploy a web application or a website to IIS web server and to create or update websites and application pools, and the underlying technologies used by the task is [Web Deploy](https://www.iis.net/downloads/microsoft/web-deploy) and [AppCmd.exe](https://www.iis.net/learn/get-started/getting-started-with-iis/getting-started-with-appcmdexe). Web Deploy packages the web application content, configuration and any other artifacts like registry, GAC assemblies etc. that can be used deployment. If the package needs to be redeployed to a different environment, configuration values within the package can be parameterized during deployment without requiring modifications to the packages themselves. Web deploy works with IIS 7, IIS 7.5, IIS 8, and IIS 8.5. AppCmd.exe is the single command line tool for managing IIS 7 and above. It exposes all key server management functionality through a set of intuitive management objects that can be manipulated from the command line or from scripts.
+
+The task runs on the target machine(s) and it is important to have the pre-requisites, as described below, installed on the machine(s). The flow is that the automation agent when executing the task, connects to the target machine using the Windows Remote Management (WinRM), and then launches a bootstrap service, which in turn invokes the PowerShell scripts to locate the msdeploy.exe on the machine, and deploys the web application using the msdeploy.exe.
+
+## Contact Information
+
+Please contact the alias RM\_Customer\_Queries at microsoft dot com, if you are facing problems in making this task work. Also, if you would like to share feedback about the task and the new features that you would like to see in it, then do send an email to the alias.
+
+## Pre-requisites for the task
+
+The following pre-requisites need to be setup for the task to work properly.
+
+### Web Deploy
+
+Web Deploy (msdeploy.exe) is used to deploy the web application on the IIS server, and needs to be installed on the target machines, and can be easily done so using [Microsoft Web Platform Installer](https://www.microsoft.com/web/gallery/install.aspx?appid=wdeploynosmo). Note that the link will open Web PI with the Web Deploy showing-up ready to install. The WebDeploy 3.5 needs to be installed without the bundled SQL support and using the default settings. There is no need to choose any custom settings while installing web deploy. After installation the Web Deploy is available at C:\Program Files (x86)\IIS\Microsoft Web Deploy V3. The task [PowerShell on Target Machines](https://github.com/Microsoft/vsts-tasks/tree/master/Tasks/PowerShellOnTargetMachines) can be used to deploy Web Deploy to Azure virtual machines or domain-joined/workgroup machines.
+
+AppCmd.exe is an in-built command line tool of IIS and does not need to be separately installed. It is used to create or update websites and application pools.
+
+### IIS Web Server
+
+There should be a IIS web server already installed and configured on the pre-existing machines or virtual machines. The task creates or updates websites and application pools, and deploys IIS web applications but does not install or configure IIS web server on the machines.
+
+### Pre-existing Machine Groups
+
+If the web application is being deployed on pre-existing machines (physical or virtual machines) then a machine group has to be created in the Machines Hub. There is a manage link next to the Machine Group parameter of the task. Click on the link to navigate to the Machines Hub and create a machine group. Note that the IP Address or the FDQN of Azure virtual machines can be also added in the machine group. The difference between using the domain-joined/workgroup machines and the Azure virtual machines is that copying files to them uses separate tasks wiz. [Windows Machine File Copy](https://github.com/Microsoft/vsts-tasks/tree/master/Tasks/WindowsMachineFileCopy) for the domain-joined/workgroup machines and [Azure File Copy](https://github.com/Microsoft/vsts-tasks/tree/master/Tasks/AzureFileCopy) for the Azure virtual machines. Note that the IIS Web Application Deployment task expects the web application's package zip files to be available on the machines or on a UNC path that is accessible by the machine administrator's login. Prior to using the IIS Web Application Deployment task ensure that the zip files are available for the deployment by copying them to the machines using the Windows Machine File Copy or the Azure File Copy tasks.
+
+### WinRM setup
+This task uses the [Windows Remote Management](https://msdn.microsoft.com/en-us/library/aa384426.aspx) (WinRM) to access domain-joined or workgroup, on-premises physical or virtual machines.
+
+#### Windows Remote Management (WinRM) Setup for On-premises Physical or Virtual Machines
+To easily **setup WinRM** on the **host machines** follow the directions for [domain-joined machines](https://www.visualstudio.com/en-us/docs/release/examples/other-servers/net-to-vm) or the [workgroup machines](https://www.visualstudio.com/en-us/docs/release/examples/other-servers/net-to-workgroup-vm).
+
+#### Windows Remote Management (WinRM) Setup for Azure Virtual Machines
+Azure virtual machines only work with the WinRM HTTPS protocol. With the WinRM protocol selected as HTTPS, you have an option to use the Test Certificate. Selecting the Test Certificate option means that the certificate is a self-signed certificate, and the automation agent will skip validating the authenticity of the machine's certificate from a trusted certification authority.
+
+- **Classic Virtual machines:** When creating [classic virtual machine](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-windows-tutorial-classic-portal/) from the [new Azure portal](https://portal.azure.com/) or the [classic Azure portal](https://manage.windowsazure.com/), the virtual machine is already setup for WinRM HTTPS, with the default port 5986 already open in Firewall, and a self-signed certificate installed on the machine. These virtual machines can be directly added to the WinRM. The existing [classic virtual machine](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-windows-tutorial-classic-portal/) can be also selected by using the [Azure Resource Group Deployment task](https://github.com/Microsoft/vso-agent-tasks/tree/master/Tasks/DeployAzureResourceGroup).
+
+- **• Azure Resource Group:** If an [Azure resource group](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-windows-hero-tutorial/) has been created in the [new Azure portal](https://portal.azure.com/), then it needs to be setup for the WinRM HTTPS protocol (WinRM HTTPS, with the default port 5986 already open in Firewall, and a self-signed certificate installed on the machine). To dynamically deploy Azure resource groups with virtual machines in them use the [Azure Resource Group Deployment task](https://github.com/Microsoft/vso-agent-tasks/tree/master/Tasks/DeployAzureResourceGroup). The task has a checkbox titled - **Enable Deployment Pre-requisites**. Select this option to setup the WinRM HTTPS protocol on the virtual machines, and to open the 5986 port in the Firewall, and to install the test certificate. After this the virtual machines are ready for use in the deployment task.
+
+## Parameters of the task
+
+The task can be used to deploy a web application to an existing website in the IIS web server using web deploy, and it can be also used for creating new IIS website and application pools, or to update existing ones. The task has three sections and the parameters of the different sections are described in detail below. The parameters listed with a \* are required parameters for the task.
+
+The task first creates/updates the application pool, then creates/updates the websites, then applies the additional App.Cmd.exe commands, and then deploys the web application to the website using the web deploy. The application pool, website, and the additional AppCmd.exe sections are optional and if none of them are provided, then the task directly deploys the web application to the IIS website.
+
+### Deploy IIS Web Application
+This section of the task is used to deploy the web application to an existing IIS website and uses Web Deploy to do so.
+
+ - **Machines**: Specify comma separated list of machine FQDNs/ip addresses along with port(optional). For example dbserver.fabrikam.com, dbserver_int.fabrikam.com:5986,192.168.34:5986. Port when not specified will be defaulted to WinRM defaults based on the specified protocol. i.e., (For *WinRM 2.0*): The default HTTP port is 5985, and the default HTTPS port is 5986. Machines field also accepts 'Machine Groups' defined under 'Test' hub, 'Machines' tab.
+ - **Admin Login**: Domain/Local administrator of the target host. Format: <Domain or hostname>\ < Admin User>. Mandatory when used with list of machines, optional for Test Machine Group (will override test machine group value when specified).
+ - **Password**: Password for the admin login. It can accept variable defined in Build/Release definitions as '$(passwordVariable)'. You may mark variable type as 'secret' to secure it. Mandatory when used with list of machines, optional for Test Machine Group (will override test machine group value when specified).
+ - **Protocol**: Specify the protocol that will be used to connect to target host, either HTTP or HTTPS.
+ - **Test Certificate**: Select the option to skip validating the authenticity of the machine's certificate by a trusted certification authority. The parameter is required for the WinRM HTTPS protocol.
+ - **Web Deploy Package\*:** Location of the web deploy zip package file on the target machine or on a UNC path that is accessible to the administrator credentials of the machine like, \\\\BudgetIT\Web\Deploy\FabrikamWeb.zip. Environment variables are also supported like $env:windir, $env:systemroot etc. For example, $env:windir\FabrikamFibre\Web.
+ - **Web Deploy Parameters File:** The parameter file is used to override the default settings in the web deploy zip package file like, the IIS Web application name or the database connection string. This helps in having a single package that can be deployed across dev, test, staging, and production, with a specific parameter file for each environment. The parameter takes in the location of the parameter file on the target machines or on a UNC path.
+ - **Override Parameters:** Parameters specified here will override the parameters in the MSDeploy zip file and the Parameter file. The format followed here is same as that for [setParam](https://technet.microsoft.com/en-us/library/dd569084(v=ws.10).aspx) option of MsDeploy.exe. For example, name="IIS Web Application Name",value="Fabrikam/MyApplication"
+
+### Website
+The section of the task is used to create a new IIS website or to update an existing one by using the IIS Server's AppCmd.exe command line tool. For more information about the parameters see the [websites](https://technet.microsoft.com/library/hh831681.aspx#Add_Site) page on MSDN.
+
+ - **Create or Update Website:** Select this option to create a new website or to update an existing one.
+ - **Website Name\*:** The name of the IIS website that will be created if it does not exist, or it will be updated if it is already present on the IIS server. The name of the website should be same as that specified in the web deploy zip package file. If a Parameter file and override Parameters setting is also specified, then the name of the website should be same as that in the override Parameters setting.
+ - **Physical Path\*:** Physical path where the website content is stored. The content can reside on the local computer or on a remote directory or share like, C:\Fabrikam or \\ContentShare\Fabrikam
+ - **Physical Path Authentication\*:** Specify credentials to connect to the physical path. If credentials are not provided, the web server uses pass-through authentication. This means that content is accessed by using the application user's identity, and configuration files are accessed by using the application pool's identity. By default, Application user (pass-through authentication) is selected.
+ - **Username:** If Windows authentication is selected in the physical path authentication, then provide the username for accessing the physical path.
+ - **Password:** Password of the user to access the physical path.
+ - **Add Binding:** Select the option to add bindings for the website.
+ - **Assign Duplicate Binding:** Selecting this option will add the bindings specified here, even if there is another website with the same bindings. If there are binding conflicts, then only one of the website will start.
+ - **Protocol:** Select HTTP for the website to have an HTTP binding, or select HTTPS for the website to have a Secure Sockets Layer (SSL) binding.
+ - **IP Address:** Type an IP address that users can use to access this website. If All Unassigned is selected, the site will respond to requests for all IP addresses on the port and the optional host name that is specified for this site, unless there is another site on the server that has a binding on the same port but with a specific IP address. For example, the default website binding specifies All Unassigned for IP address, and 80 for Port, and no host name. If the server has a second site named Fabrikam with a binding that specifies 172.30.189.132 for IP address on port 80 and no host name, Contoso receives all HTTP requests to port 80 on IP address 172.30.189.132, and the default website continues to receive HTTP requests to port 80 on any IP address other than 172.30.189.132.
+ - **Port:** Type the port on which Hypertext Transfer Protocol Stack (HTTP.sys) must listen for requests made to this website. The default port for HTTP is 80 and for HTTPS it is 443. If any other port is specified, apart from the default ports, clients must specify the port number in requests to the server or they will not be able to connect to the website.
+ - **Host Name:** To assign one or more host names (aka domain names) to a computer that uses a single IP address, type a host name here. If a host name is specified, then the clients must use the host name instead of the IP address to access the website.
+ - **Server Name Indication Required:** Determines whether the website requires Server Name Indication (SNI). SNI extends the SSL and TLS protocols to indicate what host name the client is attempting to connect to. It allows multiple secure websites with different certificates to use the same IP address. The checkbox is displayed when the binding type is HTTPS. This parameter only works with IIS 8 and later versions of IIS. If SNI is selected, then host name should be also specified
+ - **SSL Certificate Thumbprint:** Thumbprint of the Secure Socket Layer certificate that the website is going to use. The certificate should be already installed on the machine and present under the Local Computer, Personal store.
+
+### Application Pool
+The section is used to create a new IIS application pool or to update an existing one by using the IIS Server's AppCmd.exe command line tool. For more information about the parameters see the [application pools](https://technet.microsoft.com/library/hh831797.aspx) page on MSDN.
+
+ - **Create or Update Application Pool:** Select this option to create a new application pool or to update an existing one.
+ - **Name\*:** The name of the IIS application pool that will be created if it does not exist, or it will be updated if it is already present on the IIS server. The name of the application pool should be same as that specified in the web deploy zip package file. If a Parameter file and override Parameters setting is also specified, then the name of the application pool should be same as that in the override Parameters setting.
+ - **.NET Version\*:** Version of the .NET Framework that is loaded by this application pool. If the applications assigned to this application pool do not contain managed code, select the No Managed Code option from the list.
+ - **Managed Pipeline Mode\*:** Managed pipeline mode specifies how IIS processes requests for managed content. Use classic mode only when the applications in the application pool cannot run in the Integrated mode.
+ - **Identity\*:** Configure the account under which an application pool's worker process runs. Select one of the predefined security accounts or configure a custom account.
+
+### Advanced
+The section provides for advanced options.
+
+ - **Additional AppCmd.exe Commands:** Additional [AppCmd.exe](https://technet.microsoft.com/en-us/library/cc732107(v=ws.10).aspx) commands to set website or application pool properties. For more than one command use line separator. For example:
+
+ ```c
+ set config /section:applicationPools /[name='Fabrikam'].autoStart:false
+ add site /name:fabrikam /bindings:http/\*:85: fabrikam.com.
+ ```
+
+ - **Deploy in Parallel:** Setting it to true will run the database deployment task in-parallel on the target machines.
+
+## Known Issues
+
+ - The IIS Web Application Deployment task does not provide support for Web Deploy manifest files and has not been tested and verified for ASP.NET 5 and MVC 6 web application. Please send us feedback for the task and for the support for manifest files, ASP.NET 5/MVC 6 we applications at RM\_Customer\_Queries at microsoft dot com.
+ - The Override Parameters can take only one parameter based on the [setParam](https://technet.microsoft.com/en-us/library/dd569084(v=ws.10).aspx) option of MsDeploy.exe
diff --git a/Tasks/IISWebAppDeployment/Strings/resources.resjson/de-de/resources.resjson b/Tasks/IISWebAppDeployment/Strings/resources.resjson/de-de/resources.resjson
new file mode 100644
index 000000000000..6981ecc078e5
--- /dev/null
+++ b/Tasks/IISWebAppDeployment/Strings/resources.resjson/de-de/resources.resjson
@@ -0,0 +1,79 @@
+{
+ "loc.friendlyName": "[Veraltet] IIS-Web-App-Bereitstellung",
+ "loc.helpMarkDown": "[More Information](https://aka.ms/iiswebappdeployreadme)",
+ "loc.description": "Bereitstellen durch MSDeploy, Erstellen/Aktualisieren der Website und App-Pools.",
+ "loc.instanceNameFormat": "[Veraltet] IIS-App bereitstellen: $(WebDeployPackage)",
+ "loc.group.displayName.deployment": "Bereitstellung",
+ "loc.group.displayName.website": "Website",
+ "loc.group.displayName.applicationPool": "Anwendungspool",
+ "loc.group.displayName.advanced": "Erweitert",
+ "loc.input.label.EnvironmentName": "Computer",
+ "loc.input.help.EnvironmentName": "Stellen Sie eine durch Kommas getrennte Liste der IP-Computeradressen oder FQDNs zusammen mit den Ports bereit. Die Standardeinstellung für den Port basiert auf dem ausgewählten Protokoll. Beispiel: \"dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986\" Sie können auch die Ausgabevariable anderer Tasks angeben. Beispiel: \"$(variableName)\".",
+ "loc.input.label.AdminUserName": "Administratoranmeldung",
+ "loc.input.help.AdminUserName": "Die Administratoranmeldung für die Zielcomputer.",
+ "loc.input.label.AdminPassword": "Kennwort",
+ "loc.input.help.AdminPassword": "Das Administratorkennwort für die Zielcomputer. Es kann die Variable annehmen, die in Build-/Releasedefinitionen als\"$(passwordVariable)\" definiert wird. Sie können den Variablentyp als \"secret\" markieren, um die Variable zu sichern. ",
+ "loc.input.label.WinRMProtocol": "Protokoll",
+ "loc.input.help.WinRMProtocol": "Wählen Sie das Protokoll aus, das für die WinRM-Verbindung mit dem Computer bzw. den Computern verwendet werden soll. Der Standardwert ist HTTPS.",
+ "loc.input.label.TestCertificate": "Testzertifikat",
+ "loc.input.help.TestCertificate": "Wählen Sie die Option aus, um die Überprüfung der Authentizität des Zertifikats des Computers durch eine vertrauenswürdige Zertifizierungsstelle zu überspringen. Der Parameter ist für das WinRM HTTPS-Protokoll erforderlich.",
+ "loc.input.label.WebDeployPackage": "Web Deploy-Paket",
+ "loc.input.help.WebDeployPackage": "Der Speicherort der Web Deploy-ZIP-Datei (MSDeploy) auf den Zielcomputern oder in einem UNC-Pfad (z. B. \"\\\\\\\\BudgetIT\\WebDeploy\\WebDeployPackage.zip\"). Auf den UNC-Pfad sollte über das Administratorkonto des Computers zugegriffen werden können. Umgebungsvariablen werden ebenfalls unterstützt. Beispiel: \"$env:windir\", \"$env:systemroot – \"$env:windir\\FabrikamFibre\\Web\".",
+ "loc.input.label.WebDeployParamFile": "Web Deploy-Parameterdatei",
+ "loc.input.help.WebDeployParamFile": "Der Speicherort der Parameterdatei auf dem Zielcomputer oder in einem UNC-Pfad. Die Parameterdatei wird zum Außerkraftsetzen der Konfigurationseinstellungen der Webanwendung (z. B. des Namens der IIS-Webanwendung oder der Datenbankverbindungszeichenfolge) verwendet.",
+ "loc.input.label.OverRideParams": "Parameter außer Kraft setzen",
+ "loc.input.help.OverRideParams": "Hier angegebenen Parameter überschreiben die Parameter in der MSDeploy-ZIP-Datei und in der Parameterdatei. Wenn mehrere Parameter überschrieben werden sollen, verwenden Sie Zeilentrennzeichen, z. B. \"IIS Web Application Name\"=\"Fabrikam\" \"ConnectionString\"=\"Server=localhost;Database=Fabrikam;\"",
+ "loc.input.label.CreateWebSite": "Website erstellen oder aktualisieren",
+ "loc.input.help.CreateWebSite": "Wählen Sie diese Option aus, um eine Website zu erstellen oder eine vorhandene Website zu aktualisieren.",
+ "loc.input.label.WebSiteName": "Websitename",
+ "loc.input.help.WebSiteName": "Der Name der IIS-Website, die erstellt werden soll, wenn sie nicht vorhanden ist, oder die aktualisiert wird, wenn sie auf dem IIS-Server bereits vorhanden ist. Der Name der Website sollte mit dem in der Web Deploy-ZIP-Paketdatei angegebenen Namen identisch sein. Wenn eine Parameterdatei und eine Einstellung zum Überschreiben von Parametern ebenfalls angegeben werden, sollte der Name der Website identisch mit der Einstellung zum Überschreiben von Parametern sein.",
+ "loc.input.label.WebSitePhysicalPath": "Physischer Pfad",
+ "loc.input.help.WebSitePhysicalPath": "Der physische Pfad, unter dem der Websiteinhalt gespeichert ist. Der Inhalt kann sich auf dem lokalen Computer, in einem Remoteverzeichnis oder auf einer Freigabe befinden. Beispiel: \"C:\\Fabrikam\" oder \"\\\\\\\\ContentShare\\Fabrikam\".",
+ "loc.input.label.WebSitePhysicalPathAuth": "Authentifizierung des physischen Pfads",
+ "loc.input.help.WebSitePhysicalPathAuth": "Der Authentifizierungsmechanismus für den Zugriff auf den physischen Pfad der Website.",
+ "loc.input.label.WebSiteAuthUserName": "Benutzername",
+ "loc.input.help.WebSiteAuthUserName": "Der Benutzername für den Zugriff auf den physischen Pfad der Website.",
+ "loc.input.label.WebSiteAuthUserPassword": "Kennwort",
+ "loc.input.help.WebSiteAuthUserPassword": "Das Kennwort für den Zugriff auf den physischen Pfad der Website. Wenn Sie gMSA verwenden, ist dieses nicht erforderlich.",
+ "loc.input.label.AddBinding": "Bindung hinzufügen",
+ "loc.input.help.AddBinding": "Wählen Sie diese Option aus, um eine Portbindung für die Website hinzuzufügen.",
+ "loc.input.label.AssignDuplicateBinding": "Doppelte Bindung zuweisen",
+ "loc.input.help.AssignDuplicateBinding": "Wählen Sie die Option aus, um die hier angegebenen Bindungen selbst dann hinzuzufügen, wenn eine andere Website mit den gleichen Bindungen vorhanden ist. Wenn Bindungskonflikte auftreten, wird nur eine der Websites gestartet.",
+ "loc.input.label.Protocol": "Protokoll",
+ "loc.input.help.Protocol": "Wählen Sie HTTP für die Website aus, um eine HTTP-Bindung zu verwenden, oder HTTPS, um eine HTTPS-Bindung (Secure Sockets Layer) zu verwenden.",
+ "loc.input.label.IPAddress": "IP-Adresse",
+ "loc.input.help.IPAddress": "Geben Sie eine IP-Adresse ein, die Benutzer für den Zugriff auf diese Website verwenden können. Wenn \"Alle nicht zugewiesen\" ausgewählt ist, antwortet die Website auf Anforderungen für alle IP-Adressen für den Port und den optionalen Hostnamen, der für diese Website angegeben wurde. Dies ist nur dann nicht der Fall, wenn eine andere Website auf dem Server eine Bindung am gleichen Port mit einer bestimmten IP-Adresse besitzt.",
+ "loc.input.label.Port": "Port",
+ "loc.input.help.Port": "Geben Sie den Port ein, an dem \"HTTP.sys\" (Hypertext Transfer Protocol Stack) auf Anforderungen dieser Website lauschen muss.",
+ "loc.input.label.ServerNameIndication": "Die Angabe des Servernamens ist erforderlich.",
+ "loc.input.help.ServerNameIndication": "Ermittelt, ob für die Website SNI (Server Name Indication, Servernamensanzeige) erforderlich ist. SNI erweitert die SSL- und TLS-Protokolle so, dass der Hostname angegeben wird, mit dem der Client versucht, eine Verbindung herzustellen. Mehrere sichere Websites mit verschiedenen Zertifikaten können die gleiche IP-Adresse verwenden.",
+ "loc.input.label.HostNameWithOutSNI": "Hostname",
+ "loc.input.help.HostNameWithOutSNI": "Wenn Sie einem Computer, der eine einzelne IP-Adresse verwendet, mindestens einen Hostnamen (oder Domänennamen) zuweisen möchten, geben Sie hier einen Hostnamen ein. Wenn ein Hostname angegeben wird, müssen Clients den Hostnamen anstelle der IP-Adresse für den Zugriff auf die Website verwenden.",
+ "loc.input.label.HostNameWithHttp": "Hostname",
+ "loc.input.help.HostNameWithHttp": "Wenn Sie einem Computer, der eine einzelne IP-Adresse verwendet, mindestens einen Hostnamen (oder Domänennamen) zuweisen möchten, geben Sie hier einen Hostnamen ein. Wenn ein Hostname angegeben wird, müssen Clients den Hostnamen anstelle der IP-Adresse für den Zugriff auf die Website verwenden.",
+ "loc.input.label.HostNameWithSNI": "Hostname",
+ "loc.input.help.HostNameWithSNI": "Wenn Sie einem Computer, der eine einzelne IP-Adresse verwendet, mindestens einen Hostnamen (oder Domänennamen) zuweisen möchten, geben Sie hier einen Hostnamen ein. Wenn ein Hostname angegeben wird, müssen Clients den Hostnamen anstelle der IP-Adresse für den Zugriff auf die Website verwenden.",
+ "loc.input.label.SSLCertThumbPrint": "Fingerabdruck des SSL-Zertifikats",
+ "loc.input.help.SSLCertThumbPrint": "Der Fingerabdruck des SSL-Zertifikats, das die Website verwenden wird. Das Zertifikat sollte bereits auf dem Computer installiert und im lokalen persönlichen Speicher des Computers vorhanden sein.",
+ "loc.input.label.CreateAppPool": "Anwendungspool erstellen oder aktualisieren",
+ "loc.input.help.CreateAppPool": "Wählen Sie die Option aus, um einen Anwendungspool zu erstellen oder einen vorhandenen Anwendungspool zu aktualisieren.",
+ "loc.input.label.AppPoolName": "Name",
+ "loc.input.help.AppPoolName": "Der Name des IIS-Anwendungspools, der erstellt oder aktualisiert werden soll. Ein vorhandener Anwendungspool wird mit den hier angegebenen Einstellungen aktualisiert.",
+ "loc.input.label.DotNetVersion": ".NET-Version",
+ "loc.input.help.DotNetVersion": "Die Version von .NET Framework, die von diesem Anwendungspool geladen wird. Wenn die Anwendung, die diesem Anwendungspool zugewiesen ist, keinen verwalteten Code enthält, wählen Sie die Option \"Kein verwalteter Code\" aus der Liste aus.",
+ "loc.input.label.PipeLineMode": "Verwalteter Pipelinemodus",
+ "loc.input.help.PipeLineMode": "Der verwaltete Pipelinemodus gibt an, wie IIS Anforderungen für verwalteten Inhalt verarbeitet. Verwenden Sie den klassischen Modus nur, wenn die Anwendung im Anwendungspool nicht im integrierten Modus ausgeführt werden kann.",
+ "loc.input.label.AppPoolIdentity": "Identität",
+ "loc.input.help.AppPoolIdentity": "Konfigurieren Sie das Konto, unter dem der Arbeitsprozess eines Anwendungspools ausgeführt wird. Wählen Sie eines der vordefinierten Sicherheitskonten aus, oder konfigurieren Sie ein benutzerdefiniertes Konto.",
+ "loc.input.label.AppPoolUsername": "Benutzername",
+ "loc.input.label.AppPoolPassword": "Kennwort",
+ "loc.input.help.AppPoolPassword": "Wenn Sie gMSA verwenden, ist dies nicht erforderlich.",
+ "loc.input.label.AppCmdCommands": "Weitere AppCmd.exe-Befehle",
+ "loc.input.help.AppCmdCommands": "Zusätzliche AppCmd.exe-Befehle zum Festlegen von Website- oder Anwendungspooleigenschaften. Verwenden Sie für mehrere Befehle Zeilentrennzeichen. Beispiel: \"list apppools\" \"list sites\"",
+ "loc.input.label.DeployInParallel": "Parallel bereitstellen",
+ "loc.input.help.DeployInParallel": "Wenn diese Option auf \"true\" festgelegt wird, wird die Webanwendung parallel auf den Zielcomputern bereitgestellt.",
+ "loc.input.label.ResourceFilteringMethod": "Computer auswählen nach",
+ "loc.input.help.ResourceFilteringMethod": "Wählen Sie optional eine Teilmenge der Computer durch Angeben von Computernamen oder Tags aus.",
+ "loc.input.label.MachineFilter": "Auf Computern bereitstellen",
+ "loc.input.help.MachineFilter": "Diese Eingabe ist nur gültig für Computergruppen und wird noch nicht für flache Listen von Computern oder Ausgabevariablen unterstützt. Geben Sie eine Liste von Computern (z. B. \"dbserver.fabrikam.com\", \"webserver.fabrikam.com\", \"192.168.12.34\") oder Tags (z. B. \"Role:DB\", \"OS:Win8.1\") an. Wenn mehrere Tags angegeben werden, wird der Task auf allen Computern mit den angegebenen Tags ausgeführt. Geben Sie für Azure-Ressourcengruppen den Namen der virtuellen Maschine an, z. B. \"ffweb\" oder \"ffdb\". Standardmäßig wird der Task auf allen Computern ausgeführt."
+}
\ No newline at end of file
diff --git a/Tasks/IISWebAppDeployment/Strings/resources.resjson/en-US/resources.resjson b/Tasks/IISWebAppDeployment/Strings/resources.resjson/en-US/resources.resjson
new file mode 100644
index 000000000000..886500a88b87
--- /dev/null
+++ b/Tasks/IISWebAppDeployment/Strings/resources.resjson/en-US/resources.resjson
@@ -0,0 +1,79 @@
+{
+ "loc.friendlyName": "[Deprecated] IIS Web App Deployment",
+ "loc.helpMarkDown": "[More Information](https://aka.ms/iiswebappdeployreadme)",
+ "loc.description": "Deploy by MSDeploy, create/update website & app pools",
+ "loc.instanceNameFormat": "[Deprecated] Deploy IIS App: $(WebDeployPackage)",
+ "loc.group.displayName.deployment": "Deployment",
+ "loc.group.displayName.website": "Website",
+ "loc.group.displayName.applicationPool": "Application Pool",
+ "loc.group.displayName.advanced": "Advanced",
+ "loc.input.label.EnvironmentName": "Machines",
+ "loc.input.help.EnvironmentName": "Provide a comma separated list of machine IP addresses or FQDNs along with ports. Port is defaulted based on the selected protocol. Eg: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986 Or provide output variable of other tasks. Eg: $(variableName)",
+ "loc.input.label.AdminUserName": "Admin Login",
+ "loc.input.help.AdminUserName": "Administrator login for the target machines.",
+ "loc.input.label.AdminPassword": "Password",
+ "loc.input.help.AdminPassword": "Administrator password for the target machines. It can accept variable defined in Build/Release definitions as '$(passwordVariable)'. You may mark variable type as 'secret' to secure it. ",
+ "loc.input.label.WinRMProtocol": "Protocol",
+ "loc.input.help.WinRMProtocol": "Select the protocol to use for the WinRM connection with the machine(s). Default is HTTPS.",
+ "loc.input.label.TestCertificate": "Test Certificate",
+ "loc.input.help.TestCertificate": "Select the option to skip validating the authenticity of the machine's certificate by a trusted certification authority. The parameter is required for the WinRM HTTPS protocol.",
+ "loc.input.label.WebDeployPackage": "Web Deploy Package",
+ "loc.input.help.WebDeployPackage": "Location of the Web Deploy (MSDeploy) zip file on the target machines or on a UNC path like, \\\\\\\\BudgetIT\\WebDeploy\\WebDeployPackage.zip. The UNC path should be accessible to the machine's administrator account. Environment variables are also supported like, $env:windir, $env:systemroot, like, $env:windir\\FabrikamFibre\\Web.",
+ "loc.input.label.WebDeployParamFile": "Web Deploy Parameter File",
+ "loc.input.help.WebDeployParamFile": "Location of the Parameter file on the target machines or on a UNC path. Parameter file is used to override Web application configuration settings like, IIS Web application name or database connection string.",
+ "loc.input.label.OverRideParams": "Override Parameters",
+ "loc.input.help.OverRideParams": "Parameters specified here will override the parameters in the MSDeploy zip file and the Parameter file. To override more than one parameter use line separator, e.g., \"IIS Web Application Name\"=\"Fabrikam\" \"ConnectionString\"=\"Server=localhost;Database=Fabrikam;\"",
+ "loc.input.label.CreateWebSite": "Create or Update Website",
+ "loc.input.help.CreateWebSite": "Select the option to create a website or to update an existing website.",
+ "loc.input.label.WebSiteName": "Website Name",
+ "loc.input.help.WebSiteName": "Name of the IIS website that will be created if it does not exist, or it will be updated if it is already present on the IIS server. The name of the website should be same as that specified in the web deploy zip package file. If a Parameter file and override Parameters setting is also specified, then the name of the website should be same as that in the override Parameters setting.",
+ "loc.input.label.WebSitePhysicalPath": "Physical Path",
+ "loc.input.help.WebSitePhysicalPath": "Physical path where the website content is stored. The content can reside on the local computer or on a remote directory or share like, C:\\Fabrikam or \\\\\\\\ContentShare\\Fabrikam.",
+ "loc.input.label.WebSitePhysicalPathAuth": "Physical Path Authentication",
+ "loc.input.help.WebSitePhysicalPathAuth": "Authentication mechanism for accessing the physical path of the website.",
+ "loc.input.label.WebSiteAuthUserName": "User Name",
+ "loc.input.help.WebSiteAuthUserName": "User name for accessing the website's physical path.",
+ "loc.input.label.WebSiteAuthUserPassword": "Password",
+ "loc.input.help.WebSiteAuthUserPassword": "Password for accessing the website's physical path. If you are using a gMSA, this is not required.",
+ "loc.input.label.AddBinding": "Add Binding",
+ "loc.input.help.AddBinding": "Select the option to add port binding for the website.",
+ "loc.input.label.AssignDuplicateBinding": "Assign Duplicate Binding",
+ "loc.input.help.AssignDuplicateBinding": "Select the option to add the bindings specified here, even if there is another website with the same bindings. If there are binding conflicts, then only one of the website will start.",
+ "loc.input.label.Protocol": "Protocol",
+ "loc.input.help.Protocol": "Select HTTP for the website to have an HTTP binding, or select HTTPS for the website to have a Secure Sockets Layer (SSL) binding.",
+ "loc.input.label.IPAddress": "IP Address",
+ "loc.input.help.IPAddress": "Type an IP address that users can use to access this website. If All Unassigned is selected, the site will respond to requests for all IP addresses on the port and the optional host name that is specified for this site, unless another site on the server has a binding on the same port but with a specific IP address.",
+ "loc.input.label.Port": "Port",
+ "loc.input.help.Port": "Type the port on which Hypertext Transfer Protocol Stack (HTTP.sys) must listen for requests made to this website.",
+ "loc.input.label.ServerNameIndication": "Server Name Indication Required",
+ "loc.input.help.ServerNameIndication": "Determines whether the website requires Server Name Indication (SNI). SNI extends the SSL and TLS protocols to indicate what host name the client is attempting to connect to. It allows multiple secure websites with different certificates to use the same IP address.",
+ "loc.input.label.HostNameWithOutSNI": "Host Name",
+ "loc.input.help.HostNameWithOutSNI": "To assign one or more host names (or domain names) to a computer that uses a single IP address, type a host name here. If a host name is specified then the clients must use the host name instead of the IP address to access the website.",
+ "loc.input.label.HostNameWithHttp": "Host Name",
+ "loc.input.help.HostNameWithHttp": "To assign one or more host names (or domain names) to a computer that uses a single IP address, type a host name here. If a host name is specified then the clients must use the host name instead of the IP address to access the website.",
+ "loc.input.label.HostNameWithSNI": "Host Name",
+ "loc.input.help.HostNameWithSNI": "To assign one or more host names (or domain names) to a computer that uses a single IP address, type a host name here. If a host name is specified then the clients must use the host name instead of the IP address to access the website.",
+ "loc.input.label.SSLCertThumbPrint": "SSL Certificate Thumb Print",
+ "loc.input.help.SSLCertThumbPrint": "Thumb-print of the Secure Socket Layer certificate that the website is going to use. The certificate should be already installed on the machine and present under the Local Computer, Personal store.",
+ "loc.input.label.CreateAppPool": "Create or Update Application Pool",
+ "loc.input.help.CreateAppPool": "Select the option to create an application pool or to update an existing application pool.",
+ "loc.input.label.AppPoolName": "Name",
+ "loc.input.help.AppPoolName": "Name of the IIS application pool to create or update. Existing application pool will be updated with the settings specified here.",
+ "loc.input.label.DotNetVersion": ".NET Version",
+ "loc.input.help.DotNetVersion": "Version of the .NET Framework that is loaded by this application pool. If the applications assigned to this application pool do not contain managed code, select the No Managed Code option from the list.",
+ "loc.input.label.PipeLineMode": "Managed Pipeline Mode",
+ "loc.input.help.PipeLineMode": "Managed pipeline mode specifies how IIS processes requests for managed content. Use classic mode only when the applications in the application pool cannot run in the Integrated mode.",
+ "loc.input.label.AppPoolIdentity": "Identity",
+ "loc.input.help.AppPoolIdentity": "Configure the account under which an application pool's worker process runs. Select one of the predefined security accounts or configure a custom account.",
+ "loc.input.label.AppPoolUsername": "Username",
+ "loc.input.label.AppPoolPassword": "Password",
+ "loc.input.help.AppPoolPassword": "If you are using a gMSA, this is not required.",
+ "loc.input.label.AppCmdCommands": "Additional AppCmd.exe Commands",
+ "loc.input.help.AppCmdCommands": "Additional AppCmd.exe commands to set website or application pool properties. For more than one command use line separator, e.g., list apppools list sites",
+ "loc.input.label.DeployInParallel": "Deploy in Parallel",
+ "loc.input.help.DeployInParallel": "Setting it to true will deploy the Web application in-parallel on the target machines.",
+ "loc.input.label.ResourceFilteringMethod": "Select Machines By",
+ "loc.input.help.ResourceFilteringMethod": "Optionally, select a subset of machines either by providing machine names or tags.",
+ "loc.input.label.MachineFilter": "Deploy to Machines",
+ "loc.input.help.MachineFilter": "This input is valid only for machine groups and is not supported for flat list of machines or output variables yet. Provide a list of machines like, dbserver.fabrikam.com, webserver.fabrikam.com, 192.168.12.34, or tags like, Role:DB; OS:Win8.1. If multiple tags are provided, then the task will run in all the machines with the specified tags. For Azure Resource Groups, provide the virtual machine's name like, ffweb, ffdb. The default is to run the task in all machines."
+}
\ No newline at end of file
diff --git a/Tasks/IISWebAppDeployment/Strings/resources.resjson/es-es/resources.resjson b/Tasks/IISWebAppDeployment/Strings/resources.resjson/es-es/resources.resjson
new file mode 100644
index 000000000000..0ef82c67b924
--- /dev/null
+++ b/Tasks/IISWebAppDeployment/Strings/resources.resjson/es-es/resources.resjson
@@ -0,0 +1,79 @@
+{
+ "loc.friendlyName": "[En desuso] Implementación de la aplicación web de IIS",
+ "loc.helpMarkDown": "[More Information](https://aka.ms/iiswebappdeployreadme)",
+ "loc.description": "Implementar con MSDeploy, crear o actualizar el sitio web y los grupos de aplicaciones",
+ "loc.instanceNameFormat": "[En desuso] Implementar aplicación de IIS: $(WebDeployPackage)",
+ "loc.group.displayName.deployment": "Implementación",
+ "loc.group.displayName.website": "Sitio web",
+ "loc.group.displayName.applicationPool": "Grupo de aplicaciones",
+ "loc.group.displayName.advanced": "Avanzado",
+ "loc.input.label.EnvironmentName": "Equipos",
+ "loc.input.help.EnvironmentName": "Proporcione una lista separada por comas de direcciones IP de equipos o nombres de dominio completos junto con puertos. El puerto se establece de manera predeterminada en función del protocolo seleccionado. Ejemplo: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986 O bien proporcione la variable de salida de otras tareas. Ejemplo: $(nombreDeVariable)",
+ "loc.input.label.AdminUserName": "Inicio de sesión del administrador",
+ "loc.input.help.AdminUserName": "Inicio de sesión del administrador para los equipos de destino.",
+ "loc.input.label.AdminPassword": "Contraseña",
+ "loc.input.help.AdminPassword": "Contraseña del administrador para las máquinas de destino. Admite la variable declarada en las definiciones de compilación o versión como \"$(passwordVariable)\". Para proteger la variable, puede marcar el tipo como \"secret\". ",
+ "loc.input.label.WinRMProtocol": "Protocolo",
+ "loc.input.help.WinRMProtocol": "Seleccione el protocolo que se usará para la conexión WinRM con los equipos. El valor predeterminado es HTTPS.",
+ "loc.input.label.TestCertificate": "Certificado de prueba",
+ "loc.input.help.TestCertificate": "Seleccione la opción para omitir la validación de la autenticidad del certificado del equipo por parte de una entidad de certificación de confianza. El parámetro es obligatorio para el protocolo HTTPS de WinRM.",
+ "loc.input.label.WebDeployPackage": "Paquete de Web Deploy",
+ "loc.input.help.WebDeployPackage": "Ubicación del archivo zip de Web Deploy (MSDeploy) en las máquinas de destino o en una ruta de acceso UNC, como \\\\\\\\BudgetIT\\WebDeploy\\WebDeployPackage.zip. La ruta de acceso UNC debe ser accesible para la cuenta del administrador de la máquina. También se admiten variables de entorno, como $env:windir o $env:systemroot, por ejemplo, en $env:windir\\FabrikamFibre\\Web.",
+ "loc.input.label.WebDeployParamFile": "Archivo de parámetros de Web Deploy",
+ "loc.input.help.WebDeployParamFile": "Ubicación del archivo de parámetros en las máquinas de destino o en una ruta de acceso UNC. El archivo de parámetros se usa para reemplazar opciones de configuración de aplicaciones web tales como el nombre de aplicación web IIS o la cadena de conexión de base de datos.",
+ "loc.input.label.OverRideParams": "Parámetros de reemplazo",
+ "loc.input.help.OverRideParams": "Los parámetros que se especifiquen aquí reemplazarán a los parámetros del archivo zip de MSDeploy y del archivo de parámetros. Para reemplazar más de un parámetro, utilice el separador de líneas, por ejemplo, \"Nombre de aplicación web de IIS\"=\"Fabrikam\" \"ConnectionString\"=\"Server=localhost;Database=Fabrikam;\"",
+ "loc.input.label.CreateWebSite": "Crear o actualizar sitio web",
+ "loc.input.help.CreateWebSite": "Seleccione la opción para crear un sitio web o actualizar un sitio web existente.",
+ "loc.input.label.WebSiteName": "Nombre del sitio web",
+ "loc.input.help.WebSiteName": "Nombre del sitio web que se va a crear si no existe, o que se actualizará si ya está presente en el servidor IIS. El nombre del sitio web debe ser el mismo que el que se especificó en el archivo del paquete zip de implementación web. Si también se especifica un archivo de parámetros y la configuración de los parámetros de reemplazo, el nombre del sitio web debe ser igual que en la configuración de parámetros de reemplazo.",
+ "loc.input.label.WebSitePhysicalPath": "Ruta de acceso física",
+ "loc.input.help.WebSitePhysicalPath": "Ruta de acceso física donde se almacena el contenido del sitio web. El contenido puede residir en el equipo local o en un directorio o recurso compartido remoto, como C:\\Fabrikam o \\\\\\\\ContentShare\\Fabrikam.",
+ "loc.input.label.WebSitePhysicalPathAuth": "Autenticación de ruta de acceso física",
+ "loc.input.help.WebSitePhysicalPathAuth": "Mecanismo de autenticación para acceder a la ruta de acceso física del sitio web.",
+ "loc.input.label.WebSiteAuthUserName": "Nombre de usuario",
+ "loc.input.help.WebSiteAuthUserName": "Nombre de usuario para acceder a la ruta de acceso física del sitio web.",
+ "loc.input.label.WebSiteAuthUserPassword": "Contraseña",
+ "loc.input.help.WebSiteAuthUserPassword": "Contraseña para acceder a la ruta de acceso física del sitio web. Si usa gMSA, esto no es necesario.",
+ "loc.input.label.AddBinding": "Agregar enlace",
+ "loc.input.help.AddBinding": "Seleccione la opción para agregar enlace de puerto al sitio web.",
+ "loc.input.label.AssignDuplicateBinding": "Asignar enlace duplicado",
+ "loc.input.help.AssignDuplicateBinding": "Seleccione la opción para agregar los enlaces especificados aquí, incluso si hay otro sitio web con los mismos enlaces. Si hay conflictos de enlace, solo se iniciará uno de los sitios web.",
+ "loc.input.label.Protocol": "Protocolo",
+ "loc.input.help.Protocol": "Seleccione HTTP para que el sitio web tenga un enlace HTTP o seleccione HTTPS para que el sitio web tenga un enlace SSL (Capa de sockets seguros).",
+ "loc.input.label.IPAddress": "Dirección IP",
+ "loc.input.help.IPAddress": "Escriba una dirección IP que los usuarios puedan usar para acceder al sitio web. Si se selecciona Todas las no asignadas, el sitio responderá a las solicitudes de todas las direcciones IP del puerto y el nombre de host opcional que se especifique para este sitio, a menos que otro sitio del servidor tenga un enlace al mismo puerto pero con una dirección IP específica.",
+ "loc.input.label.Port": "Puerto",
+ "loc.input.help.Port": "Escriba el puerto en el que la pila del Protocolo de transferencia de hipertexto (HTTP.sys) debe escuchar las solicitudes efectuadas a este sitio web.",
+ "loc.input.label.ServerNameIndication": "Se requiere indicación de nombre de servidor",
+ "loc.input.help.ServerNameIndication": "Determina si el sitio web requiere Indicación de nombre de servidor (SNI). SNI extiende los protocolos SSL y TLS para indicar el nombre de host al que el cliente intenta conectarse. Permite que sitios web seguros con certificados diferentes usen la misma dirección IP.",
+ "loc.input.label.HostNameWithOutSNI": "Nombre de host",
+ "loc.input.help.HostNameWithOutSNI": "Para asignar uno o más nombres de host (o nombres de dominio) a un equipo que usa una sola dirección IP, escriba aquí un nombre de host. Si se especifica un nombre de host, los clientes deben usar este nombre y no la dirección IP para acceder al sitio web.",
+ "loc.input.label.HostNameWithHttp": "Nombre de host",
+ "loc.input.help.HostNameWithHttp": "Para asignar uno o más nombres de host (o nombres de dominio) a un equipo que usa una sola dirección IP, escriba aquí un nombre de host. Si se especifica un nombre de host, los clientes deben usar este nombre y no la dirección IP para acceder al sitio web.",
+ "loc.input.label.HostNameWithSNI": "Nombre de host",
+ "loc.input.help.HostNameWithSNI": "Para asignar uno o más nombres de host (o nombres de dominio) a un equipo que usa una sola dirección IP, escriba aquí un nombre de host. Si se especifica un nombre de host, los clientes deben usar este nombre y no la dirección IP para acceder al sitio web.",
+ "loc.input.label.SSLCertThumbPrint": "Huella digital del certificado SSL",
+ "loc.input.help.SSLCertThumbPrint": "Huella digital del certificado de Capa de sockets seguros que el sitio web va a usar. El certificado debe estar ya instalado en la máquina y presente en el almacén personal del equipo local.",
+ "loc.input.label.CreateAppPool": "Crear o actualizar grupo de aplicaciones",
+ "loc.input.help.CreateAppPool": "Seleccione la opción para crear un grupo de aplicaciones o actualizar un grupo de aplicaciones existente.",
+ "loc.input.label.AppPoolName": "Nombre",
+ "loc.input.help.AppPoolName": "Nombre del grupo de aplicaciones de IIS que se quiere crear o actualizar. El grupo de aplicaciones existente se actualizará con la configuración que se establezca aquí.",
+ "loc.input.label.DotNetVersion": "Versión de .NET",
+ "loc.input.help.DotNetVersion": "Versión de .NET Framework que se carga con este grupo de aplicaciones. Si las aplicaciones asignadas al grupo no contienen código administrado, seleccione en la lista la opción Sin código administrado.",
+ "loc.input.label.PipeLineMode": "Modo de canalización administrada",
+ "loc.input.help.PipeLineMode": "El modo de canalización administrada especifica cómo procesa IIS las solicitudes de contenido administrado. Use el modo clásico solo cuando las aplicaciones del grupo de aplicaciones no se puedan ejecutar en el modo integrado.",
+ "loc.input.label.AppPoolIdentity": "Identidad",
+ "loc.input.help.AppPoolIdentity": "Configure la cuenta en la que se ejecuta el proceso de trabajo de un grupo de aplicaciones. Seleccione una de las cuentas de seguridad predefinidas o configure una cuenta personalizada.",
+ "loc.input.label.AppPoolUsername": "Nombre de usuario",
+ "loc.input.label.AppPoolPassword": "Contraseña",
+ "loc.input.help.AppPoolPassword": "Si usa gMSA, esto no es necesario.",
+ "loc.input.label.AppCmdCommands": "Comandos adicionales de AppCmd.exe",
+ "loc.input.help.AppCmdCommands": "Comandos adicionales de AppCmd.exe para establecer propiedades de sitios web o grupos de aplicaciones. Para más de un comando, use separadores de líneas, p. ej., list apppools list sites",
+ "loc.input.label.DeployInParallel": "Implementar en paralelo",
+ "loc.input.help.DeployInParallel": "Si se establece en true, la aplicación web se implementará en paralelo en las máquinas de destino.",
+ "loc.input.label.ResourceFilteringMethod": "Seleccionar máquinas por",
+ "loc.input.help.ResourceFilteringMethod": "También puede seleccionar un subconjunto de máquinas especificando nombres de máquina o etiquetas.",
+ "loc.input.label.MachineFilter": "Implementar en las máquinas",
+ "loc.input.help.MachineFilter": "Esta entrada solo es válida para los grupos de máquinas y no se admite para una lista plana de máquinas o de variables de salida. Proporcione una lista de máquinas (como dbserver.fabrikam.com, webserver.fabrikam.com o 192.168.12.34) o etiquetas (como Role:DB; OS:Win8.1). Si se proporcionan varias etiquetas, la tarea se ejecutará en todas las máquinas que tengan las etiquetas especificadas. Para los grupos de recursos de Azure, proporcione el nombre de la máquina virtual, como ffweb o ffdb. La opción predeterminada es ejecutar la tarea en todas las máquinas."
+}
\ No newline at end of file
diff --git a/Tasks/IISWebAppDeployment/Strings/resources.resjson/fr-fr/resources.resjson b/Tasks/IISWebAppDeployment/Strings/resources.resjson/fr-fr/resources.resjson
new file mode 100644
index 000000000000..ef9ee6cc6700
--- /dev/null
+++ b/Tasks/IISWebAppDeployment/Strings/resources.resjson/fr-fr/resources.resjson
@@ -0,0 +1,79 @@
+{
+ "loc.friendlyName": "[Déconseillé] Déploiement d'applications web IIS",
+ "loc.helpMarkDown": "[More Information](https://aka.ms/iiswebappdeployreadme)",
+ "loc.description": "Effectuer le déploiement avec MSDeploy, créer/mettre à jour un site web et un pool d'applications",
+ "loc.instanceNameFormat": "[Déconseillé] Déployer une application IIS : $(WebDeployPackage)",
+ "loc.group.displayName.deployment": "Déploiement",
+ "loc.group.displayName.website": "Site web",
+ "loc.group.displayName.applicationPool": "Pool d'applications",
+ "loc.group.displayName.advanced": "Avancé",
+ "loc.input.label.EnvironmentName": "Ordinateurs",
+ "loc.input.help.EnvironmentName": "Indiquez une liste séparée par des virgules d'adresses IP ou de noms de domaine complets d'ordinateurs ainsi que les ports. Le port par défaut dépend du protocole sélectionné. Exemple : dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986 Ou indiquez une variable de sortie d'autres tâches. Exemple : $(variableName)",
+ "loc.input.label.AdminUserName": "Informations de connexion d'administrateur",
+ "loc.input.help.AdminUserName": "Informations de connexion d'administrateur pour les machines cibles.",
+ "loc.input.label.AdminPassword": "Mot de passe",
+ "loc.input.help.AdminPassword": "Mot de passe d'administrateur pour les machines cibles. Il peut accepter une variable définie dans les définitions Build/Release sous la forme '$(passwordVariable)'. Vous pouvez marquer le type de variable en tant que 'secret' pour renforcer sa sécurité. ",
+ "loc.input.label.WinRMProtocol": "Protocole",
+ "loc.input.help.WinRMProtocol": "Sélectionnez le protocole à utiliser pour la connexion WinRM avec les machines. La valeur par défaut est HTTPS.",
+ "loc.input.label.TestCertificate": "Certificat de test",
+ "loc.input.help.TestCertificate": "Sélectionnez l'option pour ignorer l'étape de validation de l'authenticité du certificat de l'ordinateur par une autorité de certification approuvée. Le paramètre est requis pour le protocole HTTPS WinRM.",
+ "loc.input.label.WebDeployPackage": "Package Web Deploy",
+ "loc.input.help.WebDeployPackage": "Emplacement du fichier zip Web Deploy (MSDeploy) sur les ordinateurs cibles ou dans un chemin d'accès UNC tel que \\\\\\\\BudgetIT\\WebDeploy\\WebDeployPackage.zip. Le chemin d'accès UNC doit être accessible au compte Administrateur de l'ordinateur. Les variables d'environnement sont également prises en charge, par exemple, $env:windir, $env:systemroot ou $env:windir\\FabrikamFibre\\Web.",
+ "loc.input.label.WebDeployParamFile": "Fichier de paramètres Web Deploy",
+ "loc.input.help.WebDeployParamFile": "Emplacement du fichier de paramètres sur les ordinateurs cibles ou dans un chemin d'accès UNC. Utilisez le fichier de paramètres pour remplacer les paramètres de configuration d'une application web, tels que le nom de l'application web IIS ou la chaîne de connexion de base de données.",
+ "loc.input.label.OverRideParams": "Remplacer les paramètres",
+ "loc.input.help.OverRideParams": "Les paramètres spécifiés ici remplacent les paramètres définis dans le fichier zip MSDeploy et le fichier Parameter. Pour remplacer plusieurs paramètres, utilisez le séparateur de ligne. Exemple : \"IIS Web Application Name\"=\"Fabrikam\" \"ConnectionString\"=\"Server=localhost;Database=Fabrikam;\"",
+ "loc.input.label.CreateWebSite": "Créer ou mettre à jour un site web",
+ "loc.input.help.CreateWebSite": "Sélectionnez l'option pour créer un site web ou mettre à jour un site web existant.",
+ "loc.input.label.WebSiteName": "Nom du site web",
+ "loc.input.help.WebSiteName": "Nom du site web IIS qui sera créé s'il n'existe pas ou qui sera mis à jour s'il est déjà présent sur le serveur IIS. Le nom du site web doit être identique à celui spécifié dans le fichier de package zip de déploiement web. Si un fichier de paramètres et des valeurs de remplacement des paramètres sont également spécifiés, le nom du site web doit être identique à celui spécifié dans les valeurs de remplacement des paramètres.",
+ "loc.input.label.WebSitePhysicalPath": "Chemin d'accès physique",
+ "loc.input.help.WebSitePhysicalPath": "Chemin d'accès physique où est stocké le contenu du site web. Le contenu peut résider sur l'ordinateur local ou dans un répertoire ou partage distant, tel que C:\\Fabrikam ou \\\\\\\\ContentShare\\Fabrikam.",
+ "loc.input.label.WebSitePhysicalPathAuth": "Authentification du chemin d'accès physique",
+ "loc.input.help.WebSitePhysicalPathAuth": "Mécanisme d'authentification pour accéder au chemin d'accès physique du site web.",
+ "loc.input.label.WebSiteAuthUserName": "Nom d'utilisateur",
+ "loc.input.help.WebSiteAuthUserName": "Nom d'utilisateur permettant d'accéder au chemin d'accès physique du site web.",
+ "loc.input.label.WebSiteAuthUserPassword": "Mot de passe",
+ "loc.input.help.WebSiteAuthUserPassword": "Mot de passe permettant d'accéder au chemin physique du site web. Si vous utilisez un gMSA, ce n'est pas obligatoire.",
+ "loc.input.label.AddBinding": "Ajouter une liaison",
+ "loc.input.help.AddBinding": "Sélectionnez l'option permettant d'ajouter une liaison de port pour le site web.",
+ "loc.input.label.AssignDuplicateBinding": "Assigner une liaison dupliquée",
+ "loc.input.help.AssignDuplicateBinding": "Sélectionnez l'option pour ajouter les liaisons spécifiées ici, même si un autre site web contient les mêmes liaisons. En cas de conflit entre les liaisons, un seul site web démarre.",
+ "loc.input.label.Protocol": "Protocole",
+ "loc.input.help.Protocol": "Sélectionnez HTTP pour assigner une liaison HTTP au site web, ou HTTPS pour lui assigner une liaison SSL (Secure Sockets Layer).",
+ "loc.input.label.IPAddress": "Adresse IP",
+ "loc.input.help.IPAddress": "Tapez une adresse IP avec laquelle les utilisateurs peuvent accéder à ce site web. Si l'option \"Non assignée\" est sélectionnée, le site répond aux demandes pour toutes les adresses IP sur le port et pour le nom d'hôte facultatif spécifié pour ce site, sauf si un autre site sur le serveur a une liaison sur le même port, mais avec une adresse IP spécifique.",
+ "loc.input.label.Port": "Port",
+ "loc.input.help.Port": "Tapez le numéro du port sur lequel la pile HTTP (HTTP.sys) doit écouter les demandes effectuées à ce site web.",
+ "loc.input.label.ServerNameIndication": "Indication du nom du serveur (SNI) requise",
+ "loc.input.help.ServerNameIndication": "Détermine si le site web nécessite l'indication du nom du serveur (SNI). SNI étend les protocoles SSL et TLS pour indiquer le nom d'hôte auquel le client tente de se connecter. Cette fonctionnalité permet à plusieurs sites web sécurisés ayant des certificats différents d'utiliser la même adresse IP.",
+ "loc.input.label.HostNameWithOutSNI": "Nom de l'hôte",
+ "loc.input.help.HostNameWithOutSNI": "Pour assigner un ou plusieurs noms d'hôte (ou noms de domaine) à un ordinateur utilisant une seule adresse IP, tapez un nom d'hôte ici. Si un nom d'hôte est spécifié, les clients doivent utiliser ce nom à la place de l'adresse IP pour accéder au site web.",
+ "loc.input.label.HostNameWithHttp": "Nom de l'hôte",
+ "loc.input.help.HostNameWithHttp": "Pour assigner un ou plusieurs noms d'hôte (ou noms de domaine) à un ordinateur utilisant une seule adresse IP, tapez un nom d'hôte ici. Si un nom d'hôte est spécifié, les clients doivent utiliser ce nom à la place de l'adresse IP pour accéder au site web.",
+ "loc.input.label.HostNameWithSNI": "Nom de l'hôte",
+ "loc.input.help.HostNameWithSNI": "Pour assigner un ou plusieurs noms d'hôte (ou noms de domaine) à un ordinateur utilisant une seule adresse IP, tapez un nom d'hôte ici. Si un nom d'hôte est spécifié, les clients doivent utiliser ce nom à la place de l'adresse IP pour accéder au site web.",
+ "loc.input.label.SSLCertThumbPrint": "Empreinte numérique du certificat SSL",
+ "loc.input.help.SSLCertThumbPrint": "Empreinte numérique du certificat SSL (Secure Socket Layer) utilisé par le site web. Le certificat doit être déjà installé sur l'ordinateur et disponible dans le magasin personnel de l'ordinateur local.",
+ "loc.input.label.CreateAppPool": "Créer ou mettre à jour un pool d'applications",
+ "loc.input.help.CreateAppPool": "Sélectionnez l'option pour créer un pool d'applications ou mettre à jour un pool d'applications existant.",
+ "loc.input.label.AppPoolName": "Nom",
+ "loc.input.help.AppPoolName": "Nom du pool d'applications IIS à créer ou à mettre à jour. Le pool d'applications existant sera mis à jour avec les paramètres spécifiés ici.",
+ "loc.input.label.DotNetVersion": "Version de .NET",
+ "loc.input.help.DotNetVersion": "Version du .NET Framework qui est chargé par ce pool d'applications. Si les applications assignées à ce pool d'applications ne contiennent pas de code managé, sélectionnez l'option \"Aucun code managé\" dans la liste.",
+ "loc.input.label.PipeLineMode": "Mode pipeline géré",
+ "loc.input.help.PipeLineMode": "Le mode pipeline géré spécifie de quelle manière les processus IIS demandent le contenu géré. Utilisez le mode Classique uniquement quand les applications du pool d'applications ne peuvent pas s'exécuter en mode Intégré.",
+ "loc.input.label.AppPoolIdentity": "Identité",
+ "loc.input.help.AppPoolIdentity": "Configurez le compte sous lequel est exécuté le processus de travail d'un pool d'applications. Sélectionnez l'un des comptes de sécurité prédéfinis ou configurez un compte personnalisé.",
+ "loc.input.label.AppPoolUsername": "Nom d'utilisateur",
+ "loc.input.label.AppPoolPassword": "Mot de passe",
+ "loc.input.help.AppPoolPassword": "Si vous utilisez un gMSA, ceci n'est pas obligatoire.",
+ "loc.input.label.AppCmdCommands": "Commandes AppCmd.exe supplémentaires",
+ "loc.input.help.AppCmdCommands": "Commandes AppCmd.exe supplémentaires pour définir les propriétés d'un site web ou d'un pool d'applications. Pour spécifier plusieurs commandes, utilisez un séparateur de ligne, par exemple, liste poolsapplications liste sites",
+ "loc.input.label.DeployInParallel": "Déployer en parallèle",
+ "loc.input.help.DeployInParallel": "Si la valeur est true, l'application web est déployée en parallèle sur les machines cibles.",
+ "loc.input.label.ResourceFilteringMethod": "Sélectionner les machines par",
+ "loc.input.help.ResourceFilteringMethod": "Vous pouvez également sélectionner un sous-ensemble de machines en spécifiant les noms des machines ou les balises associées.",
+ "loc.input.label.MachineFilter": "Déployer sur les ordinateurs",
+ "loc.input.help.MachineFilter": "Cette entrée est valide uniquement pour les groupes de machines. Elle n'est pas encore prise en charge pour une liste plate de machines ou de variables de sortie. Indiquez une liste de machines, par exemple dbserver.fabrikam.com, webserver.fabrikam.com, 192.168.12.34, ou utilisez des balises telles que Role:DB; OS:Win8.1. Si plusieurs balises sont indiquées, la tâche s'exécute sur toutes les machines correspondant aux balises spécifiées. Pour les groupes de ressources Azure, indiquez le nom de la machine virtuelle, par exemple ffweb, ffdb. Par défaut, la tâche s'exécute sur toutes les machines."
+}
\ No newline at end of file
diff --git a/Tasks/IISWebAppDeployment/Strings/resources.resjson/it-IT/resources.resjson b/Tasks/IISWebAppDeployment/Strings/resources.resjson/it-IT/resources.resjson
new file mode 100644
index 000000000000..3eadc1737b8d
--- /dev/null
+++ b/Tasks/IISWebAppDeployment/Strings/resources.resjson/it-IT/resources.resjson
@@ -0,0 +1,79 @@
+{
+ "loc.friendlyName": "[Deprecata] Distribuzione app Web IIS",
+ "loc.helpMarkDown": "[More Information](https://aka.ms/iiswebappdeployreadme)",
+ "loc.description": "Consente di distribuire con MSDeploy e di creare/aggiornare il sito Web e i pool di applicazioni",
+ "loc.instanceNameFormat": "[Deprecata] Distribuisci app IIS: $(WebDeployPackage)",
+ "loc.group.displayName.deployment": "Distribuzione",
+ "loc.group.displayName.website": "Sito Web",
+ "loc.group.displayName.applicationPool": "Pool di applicazioni",
+ "loc.group.displayName.advanced": "Avanzate",
+ "loc.input.label.EnvironmentName": "Computer",
+ "loc.input.help.EnvironmentName": "Consente di specificare un elenco di indirizzi IP o FQDN separati da virgola unitamente alle porte. Per impostazione predefinita, la porta è basata sul protocollo selezionato. Esempio: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986 In alternativa, consente di specificare la variabile di output di altre attività. Esempio: $(variableName)",
+ "loc.input.label.AdminUserName": "Account di accesso amministratore",
+ "loc.input.help.AdminUserName": "Account di accesso dell'amministratore per i computer di destinazione.",
+ "loc.input.label.AdminPassword": "Password",
+ "loc.input.help.AdminPassword": "Password dell'amministratore per i computer di destinazione. Accetta la variabile definita nelle definizioni di compilazione/versione come '$(passwordVariable)'. Per proteggerla, è possibile contrassegnare il tipo di variabile come 'secret'. ",
+ "loc.input.label.WinRMProtocol": "Protocollo",
+ "loc.input.help.WinRMProtocol": "Consente di selezionare il protocollo da usare per la connessione WinRM con i computer. Il valore predefinito è HTTPS.",
+ "loc.input.label.TestCertificate": "Certificato di test",
+ "loc.input.help.TestCertificate": "Consente di selezionare l'opzione per ignorare la convalida dell'autenticità del certificato del computer da parte di un'Autorità di certificazione attendibile. Il parametro è obbligatorio per il protocollo HTTPS di WinRM.",
+ "loc.input.label.WebDeployPackage": "Pacchetto Distribuzione Web",
+ "loc.input.help.WebDeployPackage": "Percorso del file ZIP di Distribuzione Web (MSDeploy) nei computer di destinazione o in un percorso UNC, ad esempio \\\\\\\\BudgetIT\\WebDeploy\\WebDeployPackage.zip. Il percorso UNC deve essere accessibile all'account Administrator del computer. Sono supportate anche variabili di ambiente come $env:windir, $env:systemroot, $env:windir\\FabrikamFibre\\Web.",
+ "loc.input.label.WebDeployParamFile": "File di parametri Distribuzione Web",
+ "loc.input.help.WebDeployParamFile": "Percorso del file dei parametri nei computer di destinazione o in un percorso UNC. Il file dei parametri viene usato per sostituire le impostazioni di configurazione dell'applicazione Web, ad esempio il nome dell'applicazione Web IIS o la stringa della connessione di database.",
+ "loc.input.label.OverRideParams": "Parametri di sostituzione",
+ "loc.input.help.OverRideParams": "I parametri specificati qui sostituiscono quelli nel file ZIP di MSDeploy e nel file dei parametri. Per eseguire l'override di più parametri, usare il separatore di riga, ad esempio \"IIS Web Application Name\"=\"Fabrikam\" \"ConnectionString\"=\"Server=localhost;Database=Fabrikam;\"",
+ "loc.input.label.CreateWebSite": "Crea o aggiorna sito Web",
+ "loc.input.help.CreateWebSite": "Consente di selezionare l'opzione per creare un sito Web o aggiornarne uno esistente.",
+ "loc.input.label.WebSiteName": "Nome del sito Web",
+ "loc.input.help.WebSiteName": "Nome del sito Web IIS che verrà creato se non esiste o verrà aggiornato se è già presente nel server IIS. Il nome del sito Web deve essere uguale a quello specificato nel file del pacchetto ZIP di Distribuzione Web. Se si specificano anche un file di parametri e un'impostazione per i parametri di sostituzione, il nome del sito Web deve essere uguale a quello dell'impostazione dei parametri di sostituzione.",
+ "loc.input.label.WebSitePhysicalPath": "Percorso fisico",
+ "loc.input.help.WebSitePhysicalPath": "Percorso fisico in cui è archiviato il contenuto del sito Web. Il contenuto può risiedere nel computer locale oppure in una directory o condivisione remota, ad esempio C:\\Fabrikam o \\\\\\\\ContentShare\\Fabrikam.",
+ "loc.input.label.WebSitePhysicalPathAuth": "Autenticazione del percorso fisico",
+ "loc.input.help.WebSitePhysicalPathAuth": "Meccanismo di autenticazione per accedere al percorso fisico del sito Web.",
+ "loc.input.label.WebSiteAuthUserName": "Nome utente",
+ "loc.input.help.WebSiteAuthUserName": "Nome utente per accedere al percorso fisico del sito Web.",
+ "loc.input.label.WebSiteAuthUserPassword": "Password",
+ "loc.input.help.WebSiteAuthUserPassword": "Password per accedere al percorso fisico del sito Web. Se si usa un account del servizio gestito del gruppo, non è necessario immettere questo valore.",
+ "loc.input.label.AddBinding": "Aggiungi binding",
+ "loc.input.help.AddBinding": "Selezionare l'opzione per aggiungere il binding delle porte per il sito Web.",
+ "loc.input.label.AssignDuplicateBinding": "Assegna binding duplicato",
+ "loc.input.help.AssignDuplicateBinding": "Consente di selezionare l'opzione per aggiungere i binding specificati qui, anche se è presente un altro sito Web con gli stessi binding. In presenza di conflitti di binding, verrà avviato solo quello del sito Web.",
+ "loc.input.label.Protocol": "Protocollo",
+ "loc.input.help.Protocol": "Selezionare HTTP o HTTPS per impostare rispettivamente un binding HTTP o SSL (Secure Sockets Layer) per il sito Web.",
+ "loc.input.label.IPAddress": "Indirizzo IP",
+ "loc.input.help.IPAddress": "Digitare un indirizzo IP che gli utenti possono usare per accedere a questo sito Web. Se è selezionato Tutti non assegnati, il sito risponderà alle richieste relative a tutti gli indirizzi IP sulla porta e al nome host facoltativo specificato per questo sito, a meno che nel server non sia presente un altro sito con un binding sulla stessa porta ma con un indirizzo IP specifico.",
+ "loc.input.label.Port": "Porta",
+ "loc.input.help.Port": "Digitare il numero della porta su cui Hypertext Transfer Protocol Stack (HTTP.sys) deve rimanere in ascolto delle richieste effettuate a questo sito Web.",
+ "loc.input.label.ServerNameIndication": "Indicazione nome server obbligatoria",
+ "loc.input.help.ServerNameIndication": "Determina se il sito Web richiede Indicazione nome server (SNI). Tale funzionalità estende i protocolli SSL e TLS per indicare il nome host a cui il client sta provando a connettersi. Consente di usare lo stesso indirizzo a più siti Web sicuri con certificati diversi.",
+ "loc.input.label.HostNameWithOutSNI": "Nome host",
+ "loc.input.help.HostNameWithOutSNI": "Per assegnare uno o più nomi host (o nomi di dominio) a un computer che usa un singolo indirizzo IP, digitare qui un nome host. Se si specifica un nome host, per accedere al sito Web, i client devono usare tale nome invece dell'indirizzo IP.",
+ "loc.input.label.HostNameWithHttp": "Nome host",
+ "loc.input.help.HostNameWithHttp": "Per assegnare uno o più nomi host (o nomi di dominio) a un computer che usa un singolo indirizzo IP, digitare qui un nome host. Se si specifica un nome host, per accedere al sito Web, i client devono usare tale nome invece dell'indirizzo IP.",
+ "loc.input.label.HostNameWithSNI": "Nome host",
+ "loc.input.help.HostNameWithSNI": "Per assegnare uno o più nomi host (o nomi di dominio) a un computer che usa un singolo indirizzo IP, digitare qui un nome host. Se si specifica un nome host, per accedere al sito Web, i client devono usare tale nome invece dell'indirizzo IP.",
+ "loc.input.label.SSLCertThumbPrint": "Identificazione personale certificato SSL",
+ "loc.input.help.SSLCertThumbPrint": "Identificazione personale del certificato SSL (Secure Socket Layer) che verrà usato dal sito Web. Il certificato deve essere già installato nel computer e presente nell'archivio personale del computer locale.",
+ "loc.input.label.CreateAppPool": "Crea o aggiorna pool di applicazioni",
+ "loc.input.help.CreateAppPool": "Consente di selezionare l'opzione per creare un pool di applicazioni o aggiornarne uno esistente.",
+ "loc.input.label.AppPoolName": "Nome",
+ "loc.input.help.AppPoolName": "Nome del pool di applicazioni IIS da creare o aggiornare. Il pool di applicazioni IIS verrà aggiornato con le impostazioni specificate qui.",
+ "loc.input.label.DotNetVersion": "Versione di .NET",
+ "loc.input.help.DotNetVersion": "Versione di .NET Framework caricata da questo pool di applicazioni. Se le applicazioni assegnate a questo pool di applicazioni non contengono codice gestito, selezionare l'opzione Nessun codice gestito nell'elenco.",
+ "loc.input.label.PipeLineMode": "Modalità pipeline gestita",
+ "loc.input.help.PipeLineMode": "La modalità pipeline gestita consente di specificare in che modo IIS elabora le richieste relative al contenuto gestito. Usare la modalità classica solo quando non è possibile eseguire le applicazioni del pool di applicazioni nella modalità integrata.",
+ "loc.input.label.AppPoolIdentity": "Identità",
+ "loc.input.help.AppPoolIdentity": "Consente di configurare l'account con cui verrà eseguito il processo di lavoro del pool di applicazioni. Selezionare uno degli account di sicurezza predefiniti o configurare un account personalizzato.",
+ "loc.input.label.AppPoolUsername": "Nome utente",
+ "loc.input.label.AppPoolPassword": "Password",
+ "loc.input.help.AppPoolPassword": "Se si usa un account del servizio gestito del gruppo, non è necessario immettere questo valore.",
+ "loc.input.label.AppCmdCommands": "Comandi aggiuntivi di AppCmd.exe",
+ "loc.input.help.AppCmdCommands": "Comandi aggiuntivi di AppCmd.exe per impostare le proprietà del sito Web o del pool di applicazioni. Per più comandi, usare il separatore di riga, ad esempio list apppools list sites",
+ "loc.input.label.DeployInParallel": "Distribuisci in parallelo",
+ "loc.input.help.DeployInParallel": "Se è impostato su true, l'applicazione Web verrà distribuita in parallelo nei computer di destinazione.",
+ "loc.input.label.ResourceFilteringMethod": "Seleziona computer per",
+ "loc.input.help.ResourceFilteringMethod": "Selezionare, facoltativamente, un sottoinsieme di computer specificando nomi o tag dei computer.",
+ "loc.input.label.MachineFilter": "Distribuisci in computer",
+ "loc.input.help.MachineFilter": "Questo input è valido solo per gruppi di computer e non è ancora supportato per elenchi semplici di computer o variabili di output. Consente di specificare un elenco di computer come dbserver.fabrikam.com, webserver.fabrikam.com, 192.168.12.34 o tag come Role:DB; OS:Win8.1. Se vengono specificati più tag, l'attività verrà eseguita in tutti i computer con i tag specificati. Per Gruppo di risorse di Azure specificare il nome della macchina virtuale, ad esempio ffweb o ffdb. Per impostazione predefinita, l'attività viene eseguita in tutti i computer."
+}
\ No newline at end of file
diff --git a/Tasks/IISWebAppDeployment/Strings/resources.resjson/ja-jp/resources.resjson b/Tasks/IISWebAppDeployment/Strings/resources.resjson/ja-jp/resources.resjson
new file mode 100644
index 000000000000..caa4ac6ed619
--- /dev/null
+++ b/Tasks/IISWebAppDeployment/Strings/resources.resjson/ja-jp/resources.resjson
@@ -0,0 +1,79 @@
+{
+ "loc.friendlyName": "[非推奨] IIS Web アプリの展開",
+ "loc.helpMarkDown": "[More Information](https://aka.ms/iiswebappdeployreadme)",
+ "loc.description": "MSDeploy で展開し、Web サイトとアプリ プールを作成またはアップデートします",
+ "loc.instanceNameFormat": "[非推奨] IIS アプリ: $(WebDeployPackage) の展開",
+ "loc.group.displayName.deployment": "配置",
+ "loc.group.displayName.website": "Web サイト",
+ "loc.group.displayName.applicationPool": "アプリケーション プール",
+ "loc.group.displayName.advanced": "詳細設定",
+ "loc.input.label.EnvironmentName": "コンピューター",
+ "loc.input.help.EnvironmentName": "コンピューターの IP アドレスまたは FQDN とポートのコンマ区切り一覧を指定します。ポートは選んだプロトコルに基づいて既定値に設定されます。 例: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986 または他のタスクの出力変数を指定します。例: $(variableName)",
+ "loc.input.label.AdminUserName": "管理者ログイン",
+ "loc.input.help.AdminUserName": "ターゲット コンピューターの管理者ログイン。",
+ "loc.input.label.AdminPassword": "パスワード",
+ "loc.input.help.AdminPassword": "対象のコンピューターの管理者パスワード。 ビルド/リリース定義で '$(passwordVariable)' として定義された変数を受け入れることができます。 変数タイプを 'シークレット' とマークして保護することもできます。",
+ "loc.input.label.WinRMProtocol": "プロトコル",
+ "loc.input.help.WinRMProtocol": "コンピューターとの WinRM 接続に使用するプロトコルを選びます。既定は HTTPS です。",
+ "loc.input.label.TestCertificate": "証明書のテスト",
+ "loc.input.help.TestCertificate": "信頼された証明機関によるコンピューターの証明書の信頼性の検証をスキップするにはこのオプションを選びます。WinRM HTTPS プロトコルにはこのパラメーターが必要です。",
+ "loc.input.label.WebDeployPackage": "Web 展開パッケージ",
+ "loc.input.help.WebDeployPackage": "対象のコンピューターまたは UNC パス (\\\\\\\\BudgetIT\\WebDeploy\\WebDeployPackage.zip など) 上の Web 展開 (MSDeploy) zip ファイルの場所。UNC パスはコンピューターの管理者アカウントからアクセスできる必要があります。$env:windir、$env:systemroot などの環境変数を使って $env:windir\\FabrikamFibre\\Web のように指定することもサポートされます。",
+ "loc.input.label.WebDeployParamFile": "Web 展開パラメーター ファイル",
+ "loc.input.help.WebDeployParamFile": "対象のコンピューターまたは UNC パスにあるパラメーター ファイルの場所。パラメーター ファイルは IIS Web アプリケーション名やデータベース接続文字列などの Web アプリケーション構成設定を上書きするために用いられます。",
+ "loc.input.label.OverRideParams": "パラメーターの上書き",
+ "loc.input.help.OverRideParams": "ここで指定されたパラメーターで MSDeploy zip ファイルおよびパラメーター ファイルのパラメーターが上書きされます。1 つ以上のパラメーターを上書きするには、行区切りを使用します。例: \"IIS Web Application Name\"=\"Fabrikam\" \"ConnectionString\"=\"Server=localhost;Database=Fabrikam;\"",
+ "loc.input.label.CreateWebSite": "Web サイトの作成または更新",
+ "loc.input.help.CreateWebSite": "Web サイトを作成する、または既存の Web サイトを更新するオプションを選択します。",
+ "loc.input.label.WebSiteName": "Web サイト名",
+ "loc.input.help.WebSiteName": "IIS Web サイトの名前。存在しない場合は作成され、IIS サーバーに既に存在する場合は更新されます。Web サイトの名前は Web 展開 zip パッケージ ファイルで指定されたものと同じである必要があります。パラメーター ファイルとパラメーターの上書き設定も指定される場合、Web サイトの名前はパラメーターの上書き設定のものと同じである必要があります。",
+ "loc.input.label.WebSitePhysicalPath": "物理パス",
+ "loc.input.help.WebSitePhysicalPath": "Web サイトのコンテンツが保存されている物理パス。コンテンツはローカル コンピューター、リモート ディレクトリ、共有に置くことができます (C:\\Fabrikam、\\\\\\\\ContentShare\\Fabrikam など)。",
+ "loc.input.label.WebSitePhysicalPathAuth": "物理パス認証",
+ "loc.input.help.WebSitePhysicalPathAuth": "Web サイトの物理パスにアクセスする認証機構。",
+ "loc.input.label.WebSiteAuthUserName": "ユーザー名",
+ "loc.input.help.WebSiteAuthUserName": "Web サイトの物理パスにアクセスするユーザー名。",
+ "loc.input.label.WebSiteAuthUserPassword": "パスワード",
+ "loc.input.help.WebSiteAuthUserPassword": "Web サイトの物理パスにアクセスするためのパスワード。gMSA を使用している場合、これは必要ありません。",
+ "loc.input.label.AddBinding": "バインドの追加",
+ "loc.input.help.AddBinding": "このオプションを選択して Web サイトのポートのバインドを追加します。",
+ "loc.input.label.AssignDuplicateBinding": "重複するバインドの割り当て",
+ "loc.input.help.AssignDuplicateBinding": "同じバインドを持つ他の Web サイトがある場合でも、ここで指定されたバインドを追加するオプションを選択します。バインドの競合がある場合は、Web サイトのうちの 1 つのみが開始されます。",
+ "loc.input.label.Protocol": "プロトコル",
+ "loc.input.help.Protocol": "Web サイトに HTTP を選択して HTTP バインドとするか、Web サイトに HTTPS を選択して Secure Sockets Layer (SSL) バインドとします。",
+ "loc.input.label.IPAddress": "IP アドレス",
+ "loc.input.help.IPAddress": "ユーザーがこの Web サイトへのアクセスで用いることができる IP アドレスを入力します。[割り当てなし] が選択されると、同じサーバーの別サイトが同一ポートに特定の IP アドレスでバインドされていない限り、サイトはポート上すべての IP アドレスと、このサイトに指定されたオプションのホスト名に対する要求に応答します。",
+ "loc.input.label.Port": "ポート",
+ "loc.input.help.Port": "ハイパーテキスト転送プロトコル スタック (HTTP.sys) がこの Web サイトで作られた要求を待ち受けるポートを入力します。",
+ "loc.input.label.ServerNameIndication": "サーバー名の通知が必要です",
+ "loc.input.help.ServerNameIndication": "Web サイトで Server Name Indication (SNI) が要求されるかどうかを指定します。SNI は SSL と TLS プロトコルを拡張したもので、クライアントが接続を試みるホスト名を指定します。これによって異なる証明書を持つ複数の安全な Web サイトで同一 IP アドレスを使うことができるようになります。",
+ "loc.input.label.HostNameWithOutSNI": "ホスト名",
+ "loc.input.help.HostNameWithOutSNI": "1 つの IP アドレスを使用するコンピューターに 1 つか複数のホスト名 (ドメイン名) を割り当てるには、ここでホスト名を入力します。ホスト名が指定されると、クライアントが Web サイトにアクセスする際に IP アドレスではなくホスト名が使用されます。",
+ "loc.input.label.HostNameWithHttp": "ホスト名",
+ "loc.input.help.HostNameWithHttp": "1 つの IP アドレスを使用するコンピューターに 1 つか複数のホスト名 (ドメイン名) を割り当てるには、ここでホスト名を入力します。ホスト名が指定されると、クライアントが Web サイトにアクセスする際に IP アドレスではなくホスト名が使用されます。",
+ "loc.input.label.HostNameWithSNI": "ホスト名",
+ "loc.input.help.HostNameWithSNI": "1 つの IP アドレスを使用するコンピューターに 1 つか複数のホスト名 (ドメイン名) を割り当てるには、ここでホスト名を入力します。ホスト名が指定されると、クライアントが Web サイトにアクセスする際に IP アドレスではなくホスト名が使用されます。",
+ "loc.input.label.SSLCertThumbPrint": "SSL 証明書の拇印",
+ "loc.input.help.SSLCertThumbPrint": "Web サイトが使用する Secure Socket Layer 証明書の拇印。証明書はあらかじめインストールされ、コンピューターのローカル システムの個人用保存場所に置かれている必要があります。",
+ "loc.input.label.CreateAppPool": "アプリケーション プールの作成または更新",
+ "loc.input.help.CreateAppPool": "アプリケーション プールを作成するオプションか、既存のアプリケーション プールを更新するオプションを選択します。",
+ "loc.input.label.AppPoolName": "名前",
+ "loc.input.help.AppPoolName": "作成または更新する IIS アプリケーション プールの名前。既存のアプリケーション プールはここで指定した設定で更新されます。",
+ "loc.input.label.DotNetVersion": ".NET バージョン",
+ "loc.input.help.DotNetVersion": "このアプリケーション プールで読み込まれる .NET Framework のバージョン。このアプリケーション プールに割り当てられたアプリケーションにマネージ コードがない場合、リストから [マネージ コードなし] オプションを選択します。",
+ "loc.input.label.PipeLineMode": "マネージ パイプライン モード",
+ "loc.input.help.PipeLineMode": "マネージ パイプライン モードは、管理コンテンツの要求が IIS で処理される方法を指定します。アプリケーション プールのアプリケーションが統合モードで実行できない場合は、クラシック モードのみ使用します。",
+ "loc.input.label.AppPoolIdentity": "ID",
+ "loc.input.help.AppPoolIdentity": "アプリケーション プールのワーカー プロセスが実行されるアカウントを構成します。定義済みセキュリティ アカウントの 1 つを選択するか、カスタム アカウントを構成します。",
+ "loc.input.label.AppPoolUsername": "ユーザー名",
+ "loc.input.label.AppPoolPassword": "パスワード",
+ "loc.input.help.AppPoolPassword": "gMSA を使用している場合、これは必要ありません。",
+ "loc.input.label.AppCmdCommands": "Appcmd.exe 追加コマンド",
+ "loc.input.help.AppCmdCommands": "Web サイトまたはアプリケーション プールのプロパティを設定する Appcmd.exe 追加コマンド。複数のコマンドを指定する場合は行区切りを使用します。例: list apppools list sites",
+ "loc.input.label.DeployInParallel": "並列で展開",
+ "loc.input.help.DeployInParallel": "この値を [True] に設定すると、対象のコンピューターで平行して Web アプリケーションが展開されます。",
+ "loc.input.label.ResourceFilteringMethod": "以下の条件でコンピューターを選択",
+ "loc.input.help.ResourceFilteringMethod": "必要に応じて、コンピューター名またはタグを指定してコンピューターのサブセットを選択します。",
+ "loc.input.label.MachineFilter": "コンピューターに展開",
+ "loc.input.help.MachineFilter": "この入力はコンピューター グループでのみ使用でき、コンピューターまたは出力変数の単純なリストではまだサポートされていません。コンピューターのリスト (dbserver.fabrikam.com, webserver.fabrikam.com, 192.168.12.34 など)、またはタグのリスト (Role:DB; OS:Win8.1) をご指定ください。複数のタグを指定した場合、指定されたタグを持つすべてのコンピューターでタスクが実行されます。Azure リソース グループの場合は、ffweb または ffdb のような仮想マシン名をご指定ください。既定値ではタスクがすべてのコンピューターで実行されます。"
+}
\ No newline at end of file
diff --git a/Tasks/IISWebAppDeployment/Strings/resources.resjson/ko-KR/resources.resjson b/Tasks/IISWebAppDeployment/Strings/resources.resjson/ko-KR/resources.resjson
new file mode 100644
index 000000000000..e4a895e98fa4
--- /dev/null
+++ b/Tasks/IISWebAppDeployment/Strings/resources.resjson/ko-KR/resources.resjson
@@ -0,0 +1,79 @@
+{
+ "loc.friendlyName": "[사용되지 않음] IIS 웹앱 배포",
+ "loc.helpMarkDown": "[More Information](https://aka.ms/iiswebappdeployreadme)",
+ "loc.description": "MSDeploy에 의한 배포, 웹 사이트 및 앱 풀 만들기/업데이트",
+ "loc.instanceNameFormat": "[사용되지 않음] IIS 앱 배포: $(WebDeployPackage)",
+ "loc.group.displayName.deployment": "배포",
+ "loc.group.displayName.website": "웹 사이트",
+ "loc.group.displayName.applicationPool": "응용 프로그램 풀",
+ "loc.group.displayName.advanced": "고급",
+ "loc.input.label.EnvironmentName": "컴퓨터",
+ "loc.input.help.EnvironmentName": "포트와 함께 쉼표로 구분된 컴퓨터 IP 주소 또는 FQDN 목록을 제공하세요. 포트의 기본값이 선택된 프로토콜을 기준으로 설정되었습니다. 예: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986 또는 다른 작업의 출력 변수를 제공하세요. 예: $(variableName)",
+ "loc.input.label.AdminUserName": "관리자 로그인",
+ "loc.input.help.AdminUserName": "대상 컴퓨터에 대한 관리자 로그인입니다.",
+ "loc.input.label.AdminPassword": "암호",
+ "loc.input.help.AdminPassword": "대상 컴퓨터에 대한 관리자 암호입니다. 빌드/릴리스 정의에 '$(passwordVariable)'(으)로 정의된 변수를 사용할 수 있습니다. 보호하기 위해 변수 형식을 'secret'으로 표시할 수 있습니다.",
+ "loc.input.label.WinRMProtocol": "프로토콜",
+ "loc.input.help.WinRMProtocol": "컴퓨터와의 WinRM 연결에 사용할 프로토콜을 선택하세요. 기본값은 HTTPS입니다.",
+ "loc.input.label.TestCertificate": "테스트 인증서",
+ "loc.input.help.TestCertificate": "신뢰할 수 있는 인증 기관의 컴퓨터 인증서 신뢰성 확인을 건너뛰려면 이 옵션을 선택하세요. WinRM HTTPS 프로토콜에는 매개 변수가 필요합니다.",
+ "loc.input.label.WebDeployPackage": "웹 배포 패키지",
+ "loc.input.help.WebDeployPackage": "대상 컴퓨터나 UNC 경로에 있는 웹 배포(MSDeploy) zip 파일의 위치입니다(예: \\\\\\\\BudgetIT\\WebDeploy\\WebDeployPackage.zip). UNC 경로는 컴퓨터의 관리자 계정이 액세스할 수 있어야 합니다. 환경 변수도 지원됩니다(예: $env:windir, $env:systemroot, $env:windir\\FabrikamFibre\\Web).",
+ "loc.input.label.WebDeployParamFile": "웹 배포 매개 변수 파일",
+ "loc.input.help.WebDeployParamFile": "대상 컴퓨터나 UNC 경로에 있는 매개 변수 파일의 위치입니다. 매개 변수 파일은 IIS 웹 응용 프로그램 이름 또는 데이터베이스 연결 문자열과 같은 웹 응용 프로그램 구성 설정을 재정의하는 데 사용됩니다.",
+ "loc.input.label.OverRideParams": "재정의 매개 변수",
+ "loc.input.help.OverRideParams": "여기에서 지정된 매개 변수는 MSDeploy zip 파일 및 매개 변수 파일의 매개 변수를 재정의합니다. 하나 이상의 매개 변수를 재정의하려면 줄 구분선을 사용하세요. 예: \"IIS 웹 응용 프로그램 이름\"=\"Fabrikam\" \"ConnectionString\"=\"Server=localhost;Database=Fabrikam;\"",
+ "loc.input.label.CreateWebSite": "웹 사이트 만들기 또는 업데이트",
+ "loc.input.help.CreateWebSite": "웹 사이트를 만들거나 기존 웹 사이트를 업데이트하는 옵션을 선택합니다.",
+ "loc.input.label.WebSiteName": "웹 사이트 이름",
+ "loc.input.help.WebSiteName": "없는 경우 만들어지고 IIS 서버에 이미 있는 경우 업데이트될 IIS 웹 사이트의 이름입니다. 웹 사이트의 이름은 웹 배포 zip 패키지 파일에서 지정된 웹 사이트 이름과 같아야 합니다. 매개 변수 파일과 재정의 매개 변수 설정도 지정된 경우에는 웹 사이트의 이름이 재정의 매개 변수 설정의 웹 사이트 이름과 같아야 합니다.",
+ "loc.input.label.WebSitePhysicalPath": "실제 경로",
+ "loc.input.help.WebSitePhysicalPath": "웹 사이트 콘텐츠가 저장되는 실제 경로입니다. 콘텐츠는 로컬 컴퓨터나 원격 디렉터리 또는 공유에 있을 수 있습니다(예: C:\\Fabrikam 또는 \\\\\\\\ContentShare\\Fabrikam).",
+ "loc.input.label.WebSitePhysicalPathAuth": "실제 경로 인증",
+ "loc.input.help.WebSitePhysicalPathAuth": "웹 사이트의 실제 경로에 액세스하기 위한 인증 메커니즘입니다.",
+ "loc.input.label.WebSiteAuthUserName": "사용자 이름",
+ "loc.input.help.WebSiteAuthUserName": "웹 사이트의 실제 경로에 액세스하기 위한 사용자 이름입니다.",
+ "loc.input.label.WebSiteAuthUserPassword": "암호",
+ "loc.input.help.WebSiteAuthUserPassword": "웹 사이트의 실제 경로에 액세스하기 위한 암호입니다. gMSA를 사용 중인 경우 이 항목은 필수 항목이 아닙니다.",
+ "loc.input.label.AddBinding": "바인딩 추가",
+ "loc.input.help.AddBinding": "웹 사이트에 대한 포트 바인딩을 추가하는 옵션을 선택합니다.",
+ "loc.input.label.AssignDuplicateBinding": "중복 바인딩 할당",
+ "loc.input.help.AssignDuplicateBinding": "바인딩이 동일한 다른 웹 사이트가 있는 경우에도 여기에서 지정된 바인딩을 추가하는 옵션을 선택합니다. 바인딩 충돌이 있는 경우 웹 사이트 중 하나만 시작됩니다.",
+ "loc.input.label.Protocol": "프로토콜",
+ "loc.input.help.Protocol": "HTTP 바인딩을 사용할 웹 사이트의 경우 HTTP를 선택하고, SSL(Secure Sockets Layer) 바인딩을 사용할 웹 사이트의 경우에는 HTTPS를 선택합니다.",
+ "loc.input.label.IPAddress": "IP 주소",
+ "loc.input.help.IPAddress": "사용자가 이 웹 사이트에 액세스하는 데 사용할 수 있는 IP 주소를 입력합니다. [지정하지 않은 모든 IP]를 선택하는 경우 동일한 포트에 있지만 특정 IP 주소를 가진 바인딩이 서버의 다른 사이트에 없으면 이 사이트에 대해 지정된 포트와 선택적 호스트 이름의 모든 IP 주소에 대한 요청에 이 사이트가 응답합니다.",
+ "loc.input.label.Port": "포트",
+ "loc.input.help.Port": "HTTP(Hypertext Transfer Protocol) 스택(HTTP.sys)에서 이 웹 사이트에 실행된 요청을 수신 대기해야 하는 포트를 입력합니다.",
+ "loc.input.label.ServerNameIndication": "서버 이름 표시 필요",
+ "loc.input.help.ServerNameIndication": "웹 사이트에 SNI(서버 이름 표시)가 필요한지 여부를 확인합니다. SNI는 SSL 및 TLS 프로토콜을 확장하여 클라이언트가 연결하려고 하는 호스트 이름을 나타냅니다. SNI를 통해 서로 다른 인증서를 사용하는 여러 보안 웹 사이트에서 동일한 IP 주소를 사용할 수 있습니다.",
+ "loc.input.label.HostNameWithOutSNI": "호스트 이름",
+ "loc.input.help.HostNameWithOutSNI": "단일 IP 주소를 사용하는 컴퓨터에 호스트 이름(또는 도메인 이름)을 하나 이상 할당하려면 여기에 호스트 이름을 입력합니다. 호스트 이름이 지정된 경우 클라이언트는 IP 주소 대신 호스트 이름을 사용하여 웹 사이트에 액세스해야 합니다.",
+ "loc.input.label.HostNameWithHttp": "호스트 이름",
+ "loc.input.help.HostNameWithHttp": "단일 IP 주소를 사용하는 컴퓨터에 호스트 이름(또는 도메인 이름)을 하나 이상 할당하려면 여기에 호스트 이름을 입력합니다. 호스트 이름이 지정된 경우 클라이언트는 IP 주소 대신 호스트 이름을 사용하여 웹 사이트에 액세스해야 합니다.",
+ "loc.input.label.HostNameWithSNI": "호스트 이름",
+ "loc.input.help.HostNameWithSNI": "단일 IP 주소를 사용하는 컴퓨터에 호스트 이름(또는 도메인 이름)을 하나 이상 할당하려면 여기에 호스트 이름을 입력합니다. 호스트 이름이 지정된 경우 클라이언트는 IP 주소 대신 호스트 이름을 사용하여 웹 사이트에 액세스해야 합니다.",
+ "loc.input.label.SSLCertThumbPrint": "SSL 인증서 지문",
+ "loc.input.help.SSLCertThumbPrint": "웹 사이트에서 사용할 SSL(Secure Socket Layer) 인증서의 지문입니다. 인증서가 컴퓨터에 이미 설치되어 있고 로컬 컴퓨터, 개인 저장소에 있어야 합니다.",
+ "loc.input.label.CreateAppPool": "응용 프로그램 풀 만들기 또는 업데이트",
+ "loc.input.help.CreateAppPool": "응용 프로그램 풀을 만들거나 기존 응용 프로그램 풀을 업데이트하는 옵션을 선택합니다.",
+ "loc.input.label.AppPoolName": "이름",
+ "loc.input.help.AppPoolName": "만들거나 업데이트할 IIS 응용 프로그램 풀의 이름입니다. 기존 응용 프로그램 풀은 여기에서 지정된 설정으로 업데이트됩니다.",
+ "loc.input.label.DotNetVersion": ".NET 버전",
+ "loc.input.help.DotNetVersion": "이 응용 프로그램 풀에 의해 로드되는 .NET Framework의 버전입니다. 이 응용 프로그램 풀에 할당된 응용 프로그램에 관리 코드가 포함되지 않은 경우 목록에서 [관리 코드 없음] 옵션을 선택합니다.",
+ "loc.input.label.PipeLineMode": "관리되는 파이프라인 모드",
+ "loc.input.help.PipeLineMode": "관리되는 파이프라인 모드는 IIS에서 관리되는 콘텐츠에 대한 요청을 처리하는 방식을 지정합니다. 응용 프로그램 풀의 응용 프로그램이 통합 모드에서 실행될 수 없는 경우에만 클래식 모드를 사용하세요.",
+ "loc.input.label.AppPoolIdentity": "ID",
+ "loc.input.help.AppPoolIdentity": "응용 프로그램 풀의 작업자 프로세스가 실행되는 계정을 구성합니다. 미리 정의된 보안 계정 중 하나를 선택하거나 사용자 지정 계정을 구성합니다.",
+ "loc.input.label.AppPoolUsername": "사용자 이름",
+ "loc.input.label.AppPoolPassword": "암호",
+ "loc.input.help.AppPoolPassword": "gMSA를 사용 중인 경우 이 항목은 필수 항목이 아닙니다.",
+ "loc.input.label.AppCmdCommands": "추가 AppCmd.exe 명령",
+ "loc.input.help.AppCmdCommands": "웹 사이트 또는 응용 프로그램 풀 속성을 설정할 추가 AppCmd.exe 명령입니다. 명령이 두 개 이상인 경우 줄 구분 기호를 사용하세요. 예: list apppools list sites",
+ "loc.input.label.DeployInParallel": "동시 배포",
+ "loc.input.help.DeployInParallel": "true로 설정하면 웹 응용 프로그램이 대상 컴퓨터에 동시에 배포됩니다.",
+ "loc.input.label.ResourceFilteringMethod": "컴퓨터 선택 기준",
+ "loc.input.help.ResourceFilteringMethod": "필요한 경우 컴퓨터 이름 또는 태그를 제공하여 컴퓨터의 하위 집합을 선택합니다.",
+ "loc.input.label.MachineFilter": "컴퓨터에 배포",
+ "loc.input.help.MachineFilter": "이 입력은 컴퓨터 그룹에만 유효하며 컴퓨터 또는 변수의 단순 목록에는 아직 지원되지 않습니다. dbserver.fabrikam.com, webserver.fabrikam.com, 192.168.12.34 등과 같은 컴퓨터나 Role:DB; OS:Win8.1 등과 같은 태그 목록을 지정하세요. 여러 태그를 지정하는 경우 지정된 태그가 포함된 모든 컴퓨터에서 작업이 실행됩니다. Azure 리소스 그룹의 경우 ffweb, ffdb 등과 같은 가상 컴퓨터 이름을 지정하세요. 기본값은 모든 컴퓨터에서 실행하는 것입니다."
+}
\ No newline at end of file
diff --git a/Tasks/IISWebAppDeployment/Strings/resources.resjson/ru-RU/resources.resjson b/Tasks/IISWebAppDeployment/Strings/resources.resjson/ru-RU/resources.resjson
new file mode 100644
index 000000000000..a3376cb2c694
--- /dev/null
+++ b/Tasks/IISWebAppDeployment/Strings/resources.resjson/ru-RU/resources.resjson
@@ -0,0 +1,79 @@
+{
+ "loc.friendlyName": "[Не рекомендуется] Развертывание веб-приложений IIS",
+ "loc.helpMarkDown": "[More Information](https://aka.ms/iiswebappdeployreadme)",
+ "loc.description": "Развертывание с помощью MSDeploy, создание и обновление пула веб-сайтов и приложений",
+ "loc.instanceNameFormat": "[Не рекомендуется] Развертывание приложения IIS: $(WebDeployPackage)",
+ "loc.group.displayName.deployment": "Развертывание",
+ "loc.group.displayName.website": "Веб-сайт",
+ "loc.group.displayName.applicationPool": "Пул приложений",
+ "loc.group.displayName.advanced": "Дополнительно",
+ "loc.input.label.EnvironmentName": "Компьютеры",
+ "loc.input.help.EnvironmentName": "Укажите разделенный запятыми список IP-адресов компьютеров или полных доменных имен вместе с портами. Порт по умолчанию выбирается исходя из используемого протокола. Например: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986 Или укажите выходную переменную из других задач. Например: $(variableName)",
+ "loc.input.label.AdminUserName": "Имя для входа администратора",
+ "loc.input.help.AdminUserName": "Имя для входа администратора для целевых компьютеров.",
+ "loc.input.label.AdminPassword": "Пароль",
+ "loc.input.help.AdminPassword": "Пароль администратора для целевых компьютеров. Он может принять переменную, заданную в определениях сборки или выпуска в качестве \"$(passwordVariable)\". Вы можете отметить тип переменной как \"secret\", чтобы защитить ее. ",
+ "loc.input.label.WinRMProtocol": "Протокол",
+ "loc.input.help.WinRMProtocol": "Выберите протокол, используемый в WinRM-подключениях к компьютерам. Значение по умолчанию — HTTPS.",
+ "loc.input.label.TestCertificate": "Тестовый сертификат",
+ "loc.input.help.TestCertificate": "Выберите этот параметр, чтобы пропустить проверку достоверности сертификата компьютера доверенным центром сертификации. Параметр обязателен для протокола WinRM HTTPS.",
+ "loc.input.label.WebDeployPackage": "Пакет веб-развертывания",
+ "loc.input.help.WebDeployPackage": "Расположение ZIP-файла веб-развертывания (MSDeploy) на целевых компьютерах или UNC-путь, например \\\\\\\\BudgetIT\\WebDeploy\\WebDeployPackage.zip. UNC-путь должен быть доступен для учетной записи администратора компьютера. Также поддерживаются переменные среды, такие как $env:windir, $env:systemroot, like, $env:windir\\FabrikamFibre\\Web.",
+ "loc.input.label.WebDeployParamFile": "Файл параметров веб-развертывания",
+ "loc.input.help.WebDeployParamFile": "Расположение файла параметров на целевых компьютерах или UNC-путь. С помощью файла параметров переопределяются параметры конфигурации веб-приложения, например имя веб-приложения IIS или строка подключения к базе данных.",
+ "loc.input.label.OverRideParams": "Переопределить параметры",
+ "loc.input.help.OverRideParams": "Указанные здесь параметры переопределяют параметры в ZIP-файле MSDeploy и файле параметров. Чтобы переопределить больше одного параметра, используйте разделитель строк, например IIS Web Application Name = Fabrikam ConnectionString = Server=localhost;Database=Fabrikam;",
+ "loc.input.label.CreateWebSite": "Создать или обновить веб-сайт",
+ "loc.input.help.CreateWebSite": "Параметр для создания нового веб-сайта или обновления существующего.",
+ "loc.input.label.WebSiteName": "Имя веб-сайта",
+ "loc.input.help.WebSiteName": "Имя веб-сайта IIS, который будет создан, если веб-сайт еще не существует, или который будет обновлен, если веб-сайт уже существует на сервере IIS. Имя веб-сайта должно совпадать с именем, указанным в ZIP-файле веб-развертывания. Если файл параметров и настройки параметров переопределения также указаны, то имя веб-сайта должно быть таким же, как в настройках параметров переопределения.",
+ "loc.input.label.WebSitePhysicalPath": "Физический путь",
+ "loc.input.help.WebSitePhysicalPath": "Физический путь к месту хранения содержимого веб-сайта. Содержимое может располагаться на локальном компьютере или в удаленном каталоге или общей папке, например C:\\Fabrikam или \\\\\\\\ContentShare\\Fabrikam.",
+ "loc.input.label.WebSitePhysicalPathAuth": "Проверка подлинности физического пути",
+ "loc.input.help.WebSitePhysicalPathAuth": "Механизм проверки подлинности для доступа к физическому пути веб-сайта.",
+ "loc.input.label.WebSiteAuthUserName": "Имя пользователя",
+ "loc.input.help.WebSiteAuthUserName": "Имя пользователя для доступа к физическому пути веб-сайта.",
+ "loc.input.label.WebSiteAuthUserPassword": "Пароль",
+ "loc.input.help.WebSiteAuthUserPassword": "Пароль для доступа к физическому пути веб-сайта. При использовании gMSA не требуется.",
+ "loc.input.label.AddBinding": "Добавить привязку",
+ "loc.input.help.AddBinding": "Выберите параметр для добавления привязки порта для веб-сайта.",
+ "loc.input.label.AssignDuplicateBinding": "Назначить повторяющуюся привязку",
+ "loc.input.help.AssignDuplicateBinding": "Выберите параметр для добавления привязок, указанных здесь, даже если существует другой веб-сайт с такими же привязками. Если возникнет конфликт привязок, то будет запущен только один веб-сайт.",
+ "loc.input.label.Protocol": "Протокол",
+ "loc.input.help.Protocol": "Выберите \"HTTP\", чтобы веб-сайт имел привязку HTTP, или выберите \"HTTPS\", чтобы веб-сайт имел привязку SSL.",
+ "loc.input.label.IPAddress": "IP-адрес",
+ "loc.input.help.IPAddress": "Введите IP-адрес для доступа пользователей к веб-сайту. Если выбрано \"Все неназначенные\", сайт будет отвечать на запросы со всех IP-адресов порта и необязательного имени узла, указанного для этого сайта, если только другой сайт на сервере не имеет привязки к тому же порту, но с указанным IP-адресом.",
+ "loc.input.label.Port": "Порт",
+ "loc.input.help.Port": "Введите порт, от которого стеку протокола HTTP (HTTP.sys) нужно ожидать передачи запросов, выполняемых к этому веб-сайту.",
+ "loc.input.label.ServerNameIndication": "Требуется указать имя сервера",
+ "loc.input.help.ServerNameIndication": "Определяет, требуется ли веб-сайту указание имени сервера (SNI). Указание имени сервера расширяет возможности протоколов SSL и TLS по указанию имени узла, к которому клиент пытается подключиться. Оно позволяет нескольким безопасным веб-сайтам с разными сертификатами использовать один IP-адрес.",
+ "loc.input.label.HostNameWithOutSNI": "Имя узла",
+ "loc.input.help.HostNameWithOutSNI": "Чтобы назначить одно или несколько имен узла (доменных имен) компьютеру, который использует один IP-адрес, введите имя узла здесь. Если указано имя узла, клиенты должны использовать его вместо IP-адреса для доступа к веб-сайту.",
+ "loc.input.label.HostNameWithHttp": "Имя узла",
+ "loc.input.help.HostNameWithHttp": "Чтобы назначить одно или несколько имен узла (доменных имен) компьютеру, который использует один IP-адрес, введите имя узла здесь. Если указано имя узла, клиенты должны использовать его вместо IP-адреса для доступа к веб-сайту.",
+ "loc.input.label.HostNameWithSNI": "Имя узла",
+ "loc.input.help.HostNameWithSNI": "Чтобы назначить одно или несколько имен узла (доменных имен) компьютеру, который использует один IP-адрес, введите имя узла здесь. Если указано имя узла, клиенты должны использовать его вместо IP-адреса для доступа к веб-сайту.",
+ "loc.input.label.SSLCertThumbPrint": "Отпечаток SSL-сертификата",
+ "loc.input.help.SSLCertThumbPrint": "Отпечаток SSL-сертификата, который будет использоваться веб-сайтом. Сертификат должен быть уже установлен на компьютере и присутствовать в личном хранилище сертификатов на локальном компьютере.",
+ "loc.input.label.CreateAppPool": "Создать или обновить пул приложений",
+ "loc.input.help.CreateAppPool": "Параметр для создания нового пула приложений или обновления существующего.",
+ "loc.input.label.AppPoolName": "Имя",
+ "loc.input.help.AppPoolName": "Имя пула приложений IIS для создания или обновления. Существующий пул приложений будет обновлен с использованием указанных здесь параметров.",
+ "loc.input.label.DotNetVersion": "Версия .NET",
+ "loc.input.help.DotNetVersion": "Версия платформы .NET Framework, загруженная этим пулом приложений. Если приложения, назначенные для этого пула приложений, не содержат управляемого кода, в списке выберите параметр \"Без управляемого кода\".",
+ "loc.input.label.PipeLineMode": "Режим управляемого конвейера",
+ "loc.input.help.PipeLineMode": "Режим управляемого конвейера указывает, как IIS обрабатывает запросы к управляемому содержимому. Используйте классический режим, только если приложение из пула приложений не может быть запущено в интегрированном режиме.",
+ "loc.input.label.AppPoolIdentity": "Идентификатор",
+ "loc.input.help.AppPoolIdentity": "Настройте учетную запись, с которой будет запущен рабочий процесс пула. Выберите одну из предопределенных учетных записей безопасности или настройте пользовательскую учетную запись.",
+ "loc.input.label.AppPoolUsername": "Имя пользователя",
+ "loc.input.label.AppPoolPassword": "Пароль",
+ "loc.input.help.AppPoolPassword": "При использовании gMSA не требуется.",
+ "loc.input.label.AppCmdCommands": "Дополнительные команды AppCmd.exe",
+ "loc.input.help.AppCmdCommands": "Дополнительные команды AppCmd.exe для задания свойств веб-сайта или пула приложений. Если команд несколько, используйте строку-разделитель, например \" список пулов список сайтов\".",
+ "loc.input.label.DeployInParallel": "Параллельное развертывание",
+ "loc.input.help.DeployInParallel": "Если задать значение \"True\", будет выполнено одновременное развертывание веб-приложения на целевых машинах.",
+ "loc.input.label.ResourceFilteringMethod": "Выбор компьютеров по",
+ "loc.input.help.ResourceFilteringMethod": "Как вариант, выберите подмножество компьютеров, указав их имена или теги.",
+ "loc.input.label.MachineFilter": "Развертывание на компьютерах",
+ "loc.input.help.MachineFilter": "Входные данные допустимы только для групп компьютеров и пока не поддерживаются для плоского списка компьютеров или выходных переменных. Укажите список компьютеров, например, dbserver.fabrikam.com, webserver.fabrikam.com, 192.168.12.34 или теги, такие как Role:DB; OS:Win8.1. Если указано несколько тегов, задача будет выполняться на всех компьютерах с указанными тегами. Для групп ресурсов Azure укажите имя виртуальной машины (например, ffweb, ffdb). Поведение по умолчанию — запуск задачи на всех компьютерах."
+}
\ No newline at end of file
diff --git a/Tasks/IISWebAppDeployment/Strings/resources.resjson/zh-CN/resources.resjson b/Tasks/IISWebAppDeployment/Strings/resources.resjson/zh-CN/resources.resjson
new file mode 100644
index 000000000000..ec7afe10786d
--- /dev/null
+++ b/Tasks/IISWebAppDeployment/Strings/resources.resjson/zh-CN/resources.resjson
@@ -0,0 +1,79 @@
+{
+ "loc.friendlyName": "[已弃用] IIS Web 应用部署",
+ "loc.helpMarkDown": "[More Information](https://aka.ms/iiswebappdeployreadme)",
+ "loc.description": "通过 MSDeploy 进行部署,创建/更新网站和应用池",
+ "loc.instanceNameFormat": "[已弃用]部署 IIS App: $(WebDeployPackage)",
+ "loc.group.displayName.deployment": "部署",
+ "loc.group.displayName.website": "网站",
+ "loc.group.displayName.applicationPool": "应用程序池",
+ "loc.group.displayName.advanced": "高级",
+ "loc.input.label.EnvironmentName": "计算机",
+ "loc.input.help.EnvironmentName": "提供以逗号分隔的计算机 IP 地址或 FQDN 以及端口列表。端口默认基于选定的协议。 例如: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986 或者提供其他任务的输出变量。例如: $(variableName)",
+ "loc.input.label.AdminUserName": "管理员登录名",
+ "loc.input.help.AdminUserName": "目标计算机的管理员登录名。",
+ "loc.input.label.AdminPassword": "密码",
+ "loc.input.help.AdminPassword": "目标计算机的管理员密码。 可接受“生成/发布”定义中定义为 \"$(passwordVariable)\" 的变量。 你可将变量类型标记为“机密”来进行保护。",
+ "loc.input.label.WinRMProtocol": "协议",
+ "loc.input.help.WinRMProtocol": "选择与计算机进行 WinRM 连接时使用的协议。默认为 HTTPS.",
+ "loc.input.label.TestCertificate": "测试证书",
+ "loc.input.help.TestCertificate": "选择跳过验证计算机的证书是否真正由受信任的证书颁发机构签署的选项。WinRM HTTPS 协议需要该参数。",
+ "loc.input.label.WebDeployPackage": "Web 部署包",
+ "loc.input.help.WebDeployPackage": "目标计算机或 UNC 路径上 Web 部署(MSDeploy) zip 文件的位置,如,\\\\\\\\BudgetIT\\WebDeploy\\WebDeployPackage.zip。计算机的管理员帐户应可访问该 UNC 路径。也支持环境变量,如 $env:windir、$env:systemroot、 $env:windir\\FabrikamFibre\\Web。",
+ "loc.input.label.WebDeployParamFile": "Web 部署参数文件",
+ "loc.input.help.WebDeployParamFile": "目标计算机或 UNC 路径上参数文件的位置。参数文件用于替代 Web 应用程序配置设置,如 IIS Web 应用程序名称或数据库连接字符串。",
+ "loc.input.label.OverRideParams": "替代参数",
+ "loc.input.help.OverRideParams": "此处指定的参数将替代 MSDeploy zip 文件和参数文件中的参数。要替代多个参数,请使用行分隔符,例如, \"IIS Web Application Name\"=\"Fabrikam\" \"ConnectionString\"=\"Server=localhost;Database=Fabrikam;\"",
+ "loc.input.label.CreateWebSite": "创建或更新网站",
+ "loc.input.help.CreateWebSite": "选择创建网站或更新现有网站的选项。",
+ "loc.input.label.WebSiteName": "网站名",
+ "loc.input.help.WebSiteName": "将创建的 IIS 网站(如果不存在)的名称,如果 IIS 服务器上已存在 IIS 网站,则将进行更新。网站的名称应与 Web 部署 zip 包文件中指定的名称相同。如果还指定了参数文件和 override 参数设置,则网站名称还应与 override 参数设置中的名称相同。",
+ "loc.input.label.WebSitePhysicalPath": "物理路径",
+ "loc.input.help.WebSitePhysicalPath": "存储网站内容的物理路径。该内容可位于本地计算机、远程目录或共享上。如,C:\\Fabrikam or \\\\\\\\ContentShare\\Fabrikam。",
+ "loc.input.label.WebSitePhysicalPathAuth": "物理路径身份验证",
+ "loc.input.help.WebSitePhysicalPathAuth": "应用访问网站的物理路径的身份验证机制。",
+ "loc.input.label.WebSiteAuthUserName": "用户名",
+ "loc.input.help.WebSiteAuthUserName": "用于访问网站的物理路径的用户名。",
+ "loc.input.label.WebSiteAuthUserPassword": "密码",
+ "loc.input.help.WebSiteAuthUserPassword": "用于访问网站的物理路径的密码。如果使用的是 gMSA,则不需要。",
+ "loc.input.label.AddBinding": "添加绑定",
+ "loc.input.help.AddBinding": "选择为网站添加端口绑定的选项。",
+ "loc.input.label.AssignDuplicateBinding": "分配重复绑定",
+ "loc.input.help.AssignDuplicateBinding": "选择添加此处指定的绑定(即使另一个网站具有相同的绑定)的选项。如果存在绑定冲突,则仅将启动其中一个网站。",
+ "loc.input.label.Protocol": "协议",
+ "loc.input.help.Protocol": "为将具有 HTTP 绑定的网站选择 HTTP,或为将具有安全套接字层(SSL)绑定的网站选择 HTTPS。",
+ "loc.input.label.IPAddress": "IP 地址",
+ "loc.input.help.IPAddress": "键入用户可用于访问此网站的 IP 地址。如果选择“全部取消分配”,则站点将响应针对为此站点指定的端口和可选主机名上所有 IP 地址的请求,除非服务器上的另一个站点在具有特定 IP 地址的同一端口上具有绑定。",
+ "loc.input.label.Port": "端口",
+ "loc.input.help.Port": "键入必须在其上侦听超文本传输协议堆栈(HTTP.sys)的端口,以对此网站发出请求。",
+ "loc.input.label.ServerNameIndication": "需要服务器名称指示",
+ "loc.input.help.ServerNameIndication": "确定网站是否需要服务器名称指示(SNI)。SNI 扩展 SSL 和 TLS 协议以指示客户端尝试连接到的主机名。它允许使用不同证书的多个安全网站使用相同的 IP 地址。",
+ "loc.input.label.HostNameWithOutSNI": "主机名",
+ "loc.input.help.HostNameWithOutSNI": "若要向使用单个 IP 地址的计算机分配一个或多个主机名(或域名),请在此处键入主机名。如果已指定主机名,则客户端必须使用主机名而非 IP 地址来访问网站。",
+ "loc.input.label.HostNameWithHttp": "主机名",
+ "loc.input.help.HostNameWithHttp": "若要向使用单个 IP 地址的计算机分配一个或多个主机名(或域名),请在此处键入主机名。如果已指定主机名,则客户端必须使用主机名而非 IP 地址来访问网站。",
+ "loc.input.label.HostNameWithSNI": "主机名",
+ "loc.input.help.HostNameWithSNI": "若要向使用单个 IP 地址的计算机分配一个或多个主机名(或域名),请在此处键入主机名。如果已指定主机名,则客户端必须使用主机名而非 IP 地址来访问网站。",
+ "loc.input.label.SSLCertThumbPrint": "SSL 证书缩略图打印",
+ "loc.input.help.SSLCertThumbPrint": "网站将使用的安全套接字层证书的缩略图打印。证书应已安装在计算机上,并位于本地计算机下的个人存储中。",
+ "loc.input.label.CreateAppPool": "创建或更新应用程序池",
+ "loc.input.help.CreateAppPool": "选择创建应用程序池或更新现有应用程序池的选项。",
+ "loc.input.label.AppPoolName": "名称",
+ "loc.input.help.AppPoolName": "要创建或更新的 IIS 应用程序池的名称。将使用此处指定的设置更新现有应用程序池。",
+ "loc.input.label.DotNetVersion": ".NET 版本",
+ "loc.input.help.DotNetVersion": "此应用程序池加载的 .NET Framework 的版本。如果分配给此应用程序池的应用程序不包含托管代码,则从列表中选择“无托管代码”选项。",
+ "loc.input.label.PipeLineMode": "托管管道模式",
+ "loc.input.help.PipeLineMode": "托管管道模式指定 IIS 进程如何请求托管内容。仅当应用程序池中的应用程序无法在集成模式下运行时使用经典模式。",
+ "loc.input.label.AppPoolIdentity": "标识",
+ "loc.input.help.AppPoolIdentity": "配置运行应用程序池的工作进程的帐户。选择一个预定义安全帐户或配置一个自定义帐户。",
+ "loc.input.label.AppPoolUsername": "用户名",
+ "loc.input.label.AppPoolPassword": "密码",
+ "loc.input.help.AppPoolPassword": "如果你使用的是 gMSA,则不需要。",
+ "loc.input.label.AppCmdCommands": "其他 AppCmd.exe 命令",
+ "loc.input.help.AppCmdCommands": "用于设置网站或应用程序池属性的其他 AppCmd.exe 命令。对于多个命令,使用行分隔符,如 list apppools list sites",
+ "loc.input.label.DeployInParallel": "并行部署",
+ "loc.input.help.DeployInParallel": "将它设置为 true 会在目标计算机上并行部署 Web 应用程序。",
+ "loc.input.label.ResourceFilteringMethod": "计算机选择依据",
+ "loc.input.help.ResourceFilteringMethod": "(可选)通过提供计算机名或标记来选择计算机的子集。",
+ "loc.input.label.MachineFilter": "部署到计算机",
+ "loc.input.help.MachineFilter": "此输入仅对计算机组有效,且尚不支持计算机或输出变量的简单列表。提供计算机列表(如 dbserver.fabrikam.com, webserver.fabrikam.com, 192.168.12.34)或标记列表(如 Role:DB; OS:Win8.1)。如果提供了多个标记,则任务将在具有指定标记的所有计算机中运行。对于 Azure 资源组,提供虚拟机的名称,如 ffweb、ffdb。默认为在所有计算机中运行任务。"
+}
\ No newline at end of file
diff --git a/Tasks/IISWebAppDeployment/Strings/resources.resjson/zh-TW/resources.resjson b/Tasks/IISWebAppDeployment/Strings/resources.resjson/zh-TW/resources.resjson
new file mode 100644
index 000000000000..a9324281ef35
--- /dev/null
+++ b/Tasks/IISWebAppDeployment/Strings/resources.resjson/zh-TW/resources.resjson
@@ -0,0 +1,79 @@
+{
+ "loc.friendlyName": "[已取代] IIS Web 應用程式部署",
+ "loc.helpMarkDown": "[More Information](https://aka.ms/iiswebappdeployreadme)",
+ "loc.description": "使用 MSDeploy 部署,建立/更新網站和 app 集區",
+ "loc.instanceNameFormat": "[已取代] 部署 IIS 應用程式: $(WebDeployPackage)",
+ "loc.group.displayName.deployment": "部署",
+ "loc.group.displayName.website": "網站",
+ "loc.group.displayName.applicationPool": "應用程式集區",
+ "loc.group.displayName.advanced": "進階",
+ "loc.input.label.EnvironmentName": "電腦",
+ "loc.input.help.EnvironmentName": "提供以逗號分隔,包含電腦 IP 位址或 FQDN 與連接埠的清單。連接埠的預設值隨所選的通訊協定而定。 例如: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986 或提供其他作業的輸出變數。例如: $(variableName)",
+ "loc.input.label.AdminUserName": "系統管理員登入",
+ "loc.input.help.AdminUserName": "目標電腦的系統管理員登入。",
+ "loc.input.label.AdminPassword": "密碼",
+ "loc.input.help.AdminPassword": "目標電腦的系統管理員密碼。 其可接受組建/發行定義中 '$(passwordVariable)' 這類形式的變數。 您可以將變數類型標示為 'secret' 加以保護。",
+ "loc.input.label.WinRMProtocol": "通訊協定",
+ "loc.input.help.WinRMProtocol": "選取 WinRM 與電腦連線時所囡使用的通訊協定。預設值為 HTTPS。",
+ "loc.input.label.TestCertificate": "測試憑證",
+ "loc.input.help.TestCertificate": "選取此選項可略過驗證電腦憑證是否確實經由信任的憑證授權單位簽署。WinRM HTTPS 通訊協定需要此參數。",
+ "loc.input.label.WebDeployPackage": "Web Deploy 封裝",
+ "loc.input.help.WebDeployPackage": "目標電腦或 UNC 路徑上的 Web Deploy (MSDeploy) 壓縮檔位置,例如 \\\\\\\\BudgetIT\\WebDeploy\\WebDeployPackage.zip。電腦的系統管理員帳戶必須可以存取 UNC 路徑。同時也支援環境變數,例如 $env:windir、$env:systemroot 像是 $env:windir\\FabrikamFibre\\Web。",
+ "loc.input.label.WebDeployParamFile": "Web Deploy 參數檔",
+ "loc.input.help.WebDeployParamFile": "目標電腦或 UNC 路徑上的參數檔位置。參數檔可用來覆寫 Web 應用程式的組態設定,如 IIS Web 應用程式名稱或資料庫連接字串。",
+ "loc.input.label.OverRideParams": "覆寫參數",
+ "loc.input.help.OverRideParams": "此處指定的參數會覆寫 MSDeploy zip 檔案及參數檔案中的參數。若要覆寫一個以上的參數,請使用行分隔符號,例如 \"IIS Web Application Name\"=\"Fabrikam\" \"ConnectionString\"=\"Server=localhost;Database=Fabrikam;\" ",
+ "loc.input.label.CreateWebSite": "建立或更新網站",
+ "loc.input.help.CreateWebSite": "選取選項以建立網站或更新現有網站。",
+ "loc.input.label.WebSiteName": "網站名稱",
+ "loc.input.help.WebSiteName": "若不存在則會加以建立,或是若已存在於 IIS 伺服器上則會加以更新的 IIS 網站名稱。網站名稱應與 Web Deploy ZIP 封裝檔中所指定的名稱相同。若同時指定了參數檔及覆寫參數設定,則網站名稱應與覆寫參數設定中的名稱相同。",
+ "loc.input.label.WebSitePhysicalPath": "實體路徑",
+ "loc.input.help.WebSitePhysicalPath": "儲存網站內容所在的實體路徑。內容可以存放在本機電腦上或遠端目錄或是共用上,如 C:\\Fabrikam 或 \\\\\\\\ContentShare\\Fabrikam。",
+ "loc.input.label.WebSitePhysicalPathAuth": "實體路徑驗證",
+ "loc.input.help.WebSitePhysicalPathAuth": "存取網站實體路徑時,所使用的驗證機制。",
+ "loc.input.label.WebSiteAuthUserName": "使用者名稱",
+ "loc.input.help.WebSiteAuthUserName": "用以存取網站實體路徑的使用者名稱。",
+ "loc.input.label.WebSiteAuthUserPassword": "密碼",
+ "loc.input.help.WebSiteAuthUserPassword": "用來存取網站實體路徑的密碼。如果您使用 gMSA,則不需要此項目。",
+ "loc.input.label.AddBinding": "新增繫結",
+ "loc.input.help.AddBinding": "選取選項以加入網站的連接埠繫結。",
+ "loc.input.label.AssignDuplicateBinding": "指派重複的繫結",
+ "loc.input.help.AssignDuplicateBinding": "選取選項,以加入在此處指定的繫結 (即使其他網站已具有相同繫結)。若有繫結衝突的情形,則只會啟動其中一個網站。",
+ "loc.input.label.Protocol": "通訊協定",
+ "loc.input.help.Protocol": "選取網站的 HTTP 以建立 HTTP 繫結,或者選取網站的 HTTPS 以建立 Secure Sockets Layer (SSL) 繫結。",
+ "loc.input.label.IPAddress": "IP 位址",
+ "loc.input.help.IPAddress": "輸入使用者可以用來存取這個網站的 IP 位址。如果選取 [全部未指派],則當任一 IP 位址位於連接埠上,或位於指定給此網站的選用主機名稱上,該網站便會為其回應所有要求,除非伺服器上的另一個網站在相同連接埠上具有繫結,卻使用特定的 IP 位址。",
+ "loc.input.label.Port": "連接埠",
+ "loc.input.help.Port": "輸入超文字傳輸通訊協定堆疊 (HTTP.sys) 務必接聽對此網站提出之要求時所使用的連接埠。",
+ "loc.input.label.ServerNameIndication": "需要有伺服器名稱指示",
+ "loc.input.help.ServerNameIndication": "判斷網站是否需要伺服器名稱指示 (SNI)。SNI 會擴充 SSL 和 TLS 通訊協定,以表示用戶端正在嘗試連接的主機名稱。其允許多個具有不同憑證的安全網站使用相同的 IP 位址。",
+ "loc.input.label.HostNameWithOutSNI": "主機名稱",
+ "loc.input.help.HostNameWithOutSNI": "若要將一或多個主機名稱 (或網域名稱) 指派給使用單一 IP 位址的電腦,請在這裡輸入主機名稱。如果指定了主機名稱,用戶端就必須使用主機名稱 (而非 IP 位址) 來存取網站。",
+ "loc.input.label.HostNameWithHttp": "主機名稱",
+ "loc.input.help.HostNameWithHttp": "若要將一或多個主機名稱 (或網域名稱) 指派給使用單一 IP 位址的電腦,請在這裡輸入主機名稱。如果指定了主機名稱,用戶端就必須使用主機名稱 (而非 IP 位址) 來存取網站。",
+ "loc.input.label.HostNameWithSNI": "主機名稱",
+ "loc.input.help.HostNameWithSNI": "若要將一或多個主機名稱 (或網域名稱) 指派給使用單一 IP 位址的電腦,請在這裡輸入主機名稱。如果指定了主機名稱,用戶端就必須使用主機名稱 (而非 IP 位址) 來存取網站。",
+ "loc.input.label.SSLCertThumbPrint": "SSL 憑證指紋",
+ "loc.input.help.SSLCertThumbPrint": "網站要使用的安全通訊端層憑證指紋。此憑證應該已安裝在電腦上,且存在於本機電腦的個人存放區之下。",
+ "loc.input.label.CreateAppPool": "建立或更新應用程式集區",
+ "loc.input.help.CreateAppPool": "選取選項以建立應用程式集區或更新現有應用程式集區。",
+ "loc.input.label.AppPoolName": "名稱",
+ "loc.input.help.AppPoolName": "要建立或更新之 IIS 應用程式集區的名稱。將以此處指定的設定來更新現有應用程式集區。",
+ "loc.input.label.DotNetVersion": ".NET 版本",
+ "loc.input.help.DotNetVersion": "此應用程式集區所載入的 .NET Framework 版本。如果指派至此應用程式集區的應用程式不包含 Managed 程式碼,請選取清單中的 [沒有 Managed 程式碼] 選項。",
+ "loc.input.label.PipeLineMode": "Managed 管線模式",
+ "loc.input.help.PipeLineMode": "Managed 管線模式會指定 IIS 如何處理受管理內容的要求。只有當應用程式集區中的應用程式無法在整合模式中執行時,才能使用傳統模式。",
+ "loc.input.label.AppPoolIdentity": "身分識別",
+ "loc.input.help.AppPoolIdentity": "設定應用程式集區執行所在的帳戶。選取其中一個預先定義的安全性帳戶或設定自訂帳戶。",
+ "loc.input.label.AppPoolUsername": "使用者名稱",
+ "loc.input.label.AppPoolPassword": "密碼",
+ "loc.input.help.AppPoolPassword": "如果您使用 gMSA,則不需要此項目。",
+ "loc.input.label.AppCmdCommands": "其他 AppCmd.exe 命令",
+ "loc.input.help.AppCmdCommands": "其他用來設定網站或應用程式集區屬性的 AppCmd.exe 命令。使用一個以上的命令時,請利用行分隔符號,例如 list apppools list sites",
+ "loc.input.label.DeployInParallel": "平行部署",
+ "loc.input.help.DeployInParallel": "設定為 true 即會以平行方式在目標電腦上部署 Web 應用程式。",
+ "loc.input.label.ResourceFilteringMethod": "選取電腦依據",
+ "loc.input.help.ResourceFilteringMethod": "選擇性地提供電腦名稱或標記來選取電腦的子集。",
+ "loc.input.label.MachineFilter": "部署至電腦",
+ "loc.input.help.MachineFilter": "此輸入只對電腦群組有效,電腦的簡單列表或輸出變數目前尚無法支援。請以 dbserver.fabrikam.com、webserver.fabrikam.com、192.168.12.34 等形式提供電腦清單,或以 Role:DB; OS:Win8.1 等提供標記清單。若提供多個標記,工作會在所有具有指定標記的電腦上執行。若為 Azure 資源群組,請提供虛擬機器的名稱 (例如 ffweb、ffdb)。預設會在所有電腦上執行此工作。"
+}
\ No newline at end of file
diff --git a/Tasks/IISWebAppDeployment/icon.png b/Tasks/IISWebAppDeployment/icon.png
new file mode 100644
index 000000000000..8e866e9503ac
Binary files /dev/null and b/Tasks/IISWebAppDeployment/icon.png differ
diff --git a/Tasks/IISWebAppDeployment/task.json b/Tasks/IISWebAppDeployment/task.json
new file mode 100644
index 000000000000..89c1a80507b6
--- /dev/null
+++ b/Tasks/IISWebAppDeployment/task.json
@@ -0,0 +1,417 @@
+{
+ "id": "89A3A82D-4B3E-4A09-8D40-A793849DC94F",
+ "name": "IISWebAppDeployment",
+ "friendlyName": "[Deprecated] IIS Web App Deployment",
+ "description": "Deploy by MSDeploy, create/update website & app pools",
+ "helpMarkDown": "[More Information](https://aka.ms/iiswebappdeployreadme)",
+ "category": "Deploy",
+ "visibility": [
+ "Preview",
+ "Build",
+ "Release"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 1,
+ "Minor": 0,
+ "Patch": 21
+ },
+ "demands": [],
+ "minimumAgentVersion": "1.91.0",
+ "deprecated": true,
+ "groups": [
+ {
+ "name": "deployment",
+ "displayName": "Deployment",
+ "isExpanded": true
+ },
+ {
+ "name": "website",
+ "displayName": "Website",
+ "isExpanded": true
+ },
+ {
+ "name": "applicationPool",
+ "displayName": "Application Pool",
+ "isExpanded": true
+ },
+ {
+ "name": "advanced",
+ "displayName": "Advanced",
+ "isExpanded": false
+ }
+ ],
+ "inputs": [
+ {
+ "name": "EnvironmentName",
+ "type": "multiLine",
+ "label": "Machines",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Provide a comma separated list of machine IP addresses or FQDNs along with ports. Port is defaulted based on the selected protocol. Eg: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986 Or provide output variable of other tasks. Eg: $(variableName)"
+ },
+ {
+ "name": "AdminUserName",
+ "type": "string",
+ "label": "Admin Login",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Administrator login for the target machines."
+ },
+ {
+ "name": "AdminPassword",
+ "type": "string",
+ "label": "Password",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Administrator password for the target machines. It can accept variable defined in Build/Release definitions as '$(passwordVariable)'. You may mark variable type as 'secret' to secure it. "
+ },
+ {
+ "name": "WinRMProtocol",
+ "type": "radio",
+ "label": "Protocol",
+ "required": false,
+ "defaultValue": "",
+ "options": {
+ "Http": "HTTP",
+ "Https": "HTTPS"
+ },
+ "helpMarkDown": "Select the protocol to use for the WinRM connection with the machine(s). Default is HTTPS."
+ },
+ {
+ "name": "TestCertificate",
+ "type": "boolean",
+ "label": "Test Certificate",
+ "defaultValue": "true",
+ "visibleRule": "WinRMProtocol = Https",
+ "required": false,
+ "helpMarkDown": "Select the option to skip validating the authenticity of the machine's certificate by a trusted certification authority. The parameter is required for the WinRM HTTPS protocol."
+ },
+ {
+ "name": "WebDeployPackage",
+ "type": "string",
+ "label": "Web Deploy Package",
+ "required": true,
+ "groupName": "deployment",
+ "defaultValue": "",
+ "helpMarkDown": "Location of the Web Deploy (MSDeploy) zip file on the target machines or on a UNC path like, \\\\\\\\BudgetIT\\WebDeploy\\WebDeployPackage.zip. The UNC path should be accessible to the machine's administrator account. Environment variables are also supported like, $env:windir, $env:systemroot, like, $env:windir\\FabrikamFibre\\Web."
+ },
+ {
+ "name": "WebDeployParamFile",
+ "type": "string",
+ "label": "Web Deploy Parameter File",
+ "required": false,
+ "groupName": "deployment",
+ "defaultValue": "",
+ "helpMarkDown": "Location of the Parameter file on the target machines or on a UNC path. Parameter file is used to override Web application configuration settings like, IIS Web application name or database connection string."
+ },
+ {
+ "name": "OverRideParams",
+ "type": "multiLine",
+ "label": "Override Parameters",
+ "required": false,
+ "groupName": "deployment",
+ "defaultValue": "",
+ "helpMarkDown": "Parameters specified here will override the parameters in the MSDeploy zip file and the Parameter file. To override more than one parameter use line separator, e.g., \"IIS Web Application Name\"=\"Fabrikam\" \"ConnectionString\"=\"Server=localhost;Database=Fabrikam;\""
+ },
+ {
+ "name": "CreateWebSite",
+ "type": "boolean",
+ "label": "Create or Update Website",
+ "required": false,
+ "groupName": "website",
+ "defaultValue": "false",
+ "helpMarkDown": "Select the option to create a website or to update an existing website."
+ },
+ {
+ "name": "WebSiteName",
+ "type": "string",
+ "label": "Website Name",
+ "required": true,
+ "groupName": "website",
+ "defaultValue": "",
+ "visibleRule": "CreateWebSite = true",
+ "helpMarkDown": "Name of the IIS website that will be created if it does not exist, or it will be updated if it is already present on the IIS server. The name of the website should be same as that specified in the web deploy zip package file. If a Parameter file and override Parameters setting is also specified, then the name of the website should be same as that in the override Parameters setting."
+ },
+ {
+ "name": "WebSitePhysicalPath",
+ "type": "string",
+ "label": "Physical Path",
+ "required": true,
+ "groupName": "website",
+ "defaultValue": "%SystemDrive%\\inetpub\\wwwroot",
+ "visibleRule": "CreateWebSite = true",
+ "helpMarkDown": "Physical path where the website content is stored. The content can reside on the local computer or on a remote directory or share like, C:\\Fabrikam or \\\\\\\\ContentShare\\Fabrikam."
+ },
+ {
+ "name": "WebSitePhysicalPathAuth",
+ "type": "pickList",
+ "label": "Physical Path Authentication",
+ "required": true,
+ "groupName": "website",
+ "defaultValue": "Application User (Pass-through)",
+ "visibleRule": "CreateWebSite = true",
+ "options": {
+ "WebSiteUserPassThrough": "Application User (Pass-through)",
+ "WebSiteWindowsAuth": "Windows Authentication"
+ },
+ "helpMarkDown": "Authentication mechanism for accessing the physical path of the website."
+ },
+ {
+ "name": "WebSiteAuthUserName",
+ "type": "string",
+ "label": "User Name",
+ "required": true,
+ "groupName": "website",
+ "defaultValue": "",
+ "visibleRule": "WebSitePhysicalPathAuth = WebSiteWindowsAuth",
+ "helpMarkDown": "User name for accessing the website's physical path."
+ },
+ {
+ "name": "WebSiteAuthUserPassword",
+ "type": "string",
+ "label": "Password",
+ "required": false,
+ "groupName": "website",
+ "defaultValue": "",
+ "visibleRule": "WebSitePhysicalPathAuth = WebSiteWindowsAuth",
+ "helpMarkDown": "Password for accessing the website's physical path. If you are using a gMSA, this is not required."
+ },
+ {
+ "name": "AddBinding",
+ "type": "boolean",
+ "label": "Add Binding",
+ "required": false,
+ "groupName": "website",
+ "defaultValue": "true",
+ "visibleRule": "CreateWebSite = true",
+ "helpMarkDown": "Select the option to add port binding for the website."
+ },
+ {
+ "name": "AssignDuplicateBinding",
+ "type": "boolean",
+ "label": "Assign Duplicate Binding",
+ "required": false,
+ "groupName": "website",
+ "defaultValue": "false",
+ "visibleRule": "AddBinding = true",
+ "helpMarkDown": "Select the option to add the bindings specified here, even if there is another website with the same bindings. If there are binding conflicts, then only one of the website will start."
+ },
+ {
+ "name": "Protocol",
+ "type": "pickList",
+ "label": "Protocol",
+ "required": true,
+ "groupName": "website",
+ "defaultValue": "http",
+ "options": {
+ "https": "https",
+ "http": "http"
+ },
+ "visibleRule": "AddBinding = true",
+ "helpMarkDown": "Select HTTP for the website to have an HTTP binding, or select HTTPS for the website to have a Secure Sockets Layer (SSL) binding."
+ },
+ {
+ "name": "IPAddress",
+ "type": "string",
+ "label": "IP Address",
+ "required": true,
+ "groupName": "website",
+ "defaultValue": "All Unassigned",
+ "visibleRule": "AddBinding = true",
+ "helpMarkDown": "Type an IP address that users can use to access this website. If All Unassigned is selected, the site will respond to requests for all IP addresses on the port and the optional host name that is specified for this site, unless another site on the server has a binding on the same port but with a specific IP address."
+ },
+ {
+ "name": "Port",
+ "type": "string",
+ "label": "Port",
+ "required": true,
+ "groupName": "website",
+ "defaultValue": "80",
+ "visibleRule": "AddBinding = true",
+ "helpMarkDown": "Type the port on which Hypertext Transfer Protocol Stack (HTTP.sys) must listen for requests made to this website."
+ },
+ {
+ "name": "ServerNameIndication",
+ "type": "boolean",
+ "label": "Server Name Indication Required",
+ "required": false,
+ "groupName": "website",
+ "defaultValue": "false",
+ "visibleRule": "Protocol = https",
+ "helpMarkDown": "Determines whether the website requires Server Name Indication (SNI). SNI extends the SSL and TLS protocols to indicate what host name the client is attempting to connect to. It allows multiple secure websites with different certificates to use the same IP address."
+ },
+ {
+ "name": "HostNameWithOutSNI",
+ "type": "string",
+ "label": "Host Name",
+ "required": false,
+ "groupName": "website",
+ "defaultValue": "",
+ "visibleRule": "ServerNameIndication = false",
+ "helpMarkDown": "To assign one or more host names (or domain names) to a computer that uses a single IP address, type a host name here. If a host name is specified then the clients must use the host name instead of the IP address to access the website."
+ },
+ {
+ "name": "HostNameWithHttp",
+ "type": "string",
+ "label": "Host Name",
+ "required": false,
+ "groupName": "website",
+ "defaultValue": "",
+ "visibleRule": "Protocol = http",
+ "helpMarkDown": "To assign one or more host names (or domain names) to a computer that uses a single IP address, type a host name here. If a host name is specified then the clients must use the host name instead of the IP address to access the website."
+ },
+ {
+ "name": "HostNameWithSNI",
+ "type": "string",
+ "label": "Host Name",
+ "required": true,
+ "groupName": "website",
+ "defaultValue": "",
+ "visibleRule": "ServerNameIndication = true",
+ "helpMarkDown": "To assign one or more host names (or domain names) to a computer that uses a single IP address, type a host name here. If a host name is specified then the clients must use the host name instead of the IP address to access the website."
+ },
+ {
+ "name": "SSLCertThumbPrint",
+ "type": "string",
+ "label": "SSL Certificate Thumb Print",
+ "required": true,
+ "groupName": "website",
+ "defaultValue": "",
+ "visibleRule": "Protocol = https",
+ "helpMarkDown": "Thumb-print of the Secure Socket Layer certificate that the website is going to use. The certificate should be already installed on the machine and present under the Local Computer, Personal store."
+ },
+ {
+ "name": "CreateAppPool",
+ "type": "boolean",
+ "label": "Create or Update Application Pool",
+ "required": false,
+ "groupName": "applicationPool",
+ "defaultValue": "false",
+ "helpMarkDown": "Select the option to create an application pool or to update an existing application pool."
+ },
+ {
+ "name": "AppPoolName",
+ "type": "string",
+ "label": "Name",
+ "defaultValue": "",
+ "required": true,
+ "groupName": "applicationPool",
+ "visibleRule": "CreateAppPool = true",
+ "helpMarkDown": "Name of the IIS application pool to create or update. Existing application pool will be updated with the settings specified here."
+ },
+ {
+ "name": "DotNetVersion",
+ "type": "pickList",
+ "label": ".NET Version",
+ "defaultValue": "v4.0",
+ "required": true,
+ "groupName": "applicationPool",
+ "visibleRule": "CreateAppPool = true",
+ "helpMarkDown": "Version of the .NET Framework that is loaded by this application pool. If the applications assigned to this application pool do not contain managed code, select the No Managed Code option from the list.",
+ "options": {
+ "v4.0": "v4.0",
+ "v2.0": "v2.0",
+ "No Managed Code": "No Managed Code"
+ }
+ },
+ {
+ "name": "PipeLineMode",
+ "type": "pickList",
+ "label": "Managed Pipeline Mode",
+ "defaultValue": "Integrated",
+ "required": true,
+ "groupName": "applicationPool",
+ "visibleRule": "CreateAppPool = true",
+ "helpMarkDown": "Managed pipeline mode specifies how IIS processes requests for managed content. Use classic mode only when the applications in the application pool cannot run in the Integrated mode.",
+ "options": {
+ "Integrated": "Integrated",
+ "Classic": "Classic"
+ }
+ },
+ {
+ "name": "AppPoolIdentity",
+ "type": "pickList",
+ "label": "Identity",
+ "defaultValue": "ApplicationPoolIdentity",
+ "required": true,
+ "groupName": "applicationPool",
+ "visibleRule": "CreateAppPool = true",
+ "helpMarkDown": "Configure the account under which an application pool's worker process runs. Select one of the predefined security accounts or configure a custom account.",
+ "options": {
+ "ApplicationPoolIdentity": "ApplicationPoolIdentity",
+ "LocalService": "LocalService",
+ "LocalSystem": "LocalSystem",
+ "NetworkService": "NetworkService",
+ "SpecificUser": "Custom Account"
+ }
+ },
+ {
+ "name": "AppPoolUsername",
+ "type": "string",
+ "label": "Username",
+ "defaultValue": "",
+ "required": true,
+ "groupName": "applicationPool",
+ "visibleRule": "AppPoolIdentity = SpecificUser"
+ },
+ {
+ "name": "AppPoolPassword",
+ "type": "string",
+ "label": "Password",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "If you are using a gMSA, this is not required.",
+ "groupName": "applicationPool",
+ "visibleRule": "AppPoolIdentity = SpecificUser"
+ },
+ {
+ "name": "AppCmdCommands",
+ "type": "multiLine",
+ "label": "Additional AppCmd.exe Commands",
+ "required": false,
+ "groupName": "advanced",
+ "defaultValue": "",
+ "helpMarkDown": "Additional AppCmd.exe commands to set website or application pool properties. For more than one command use line separator, e.g., list apppools list sites"
+ },
+ {
+ "name": "DeployInParallel",
+ "type": "boolean",
+ "label": "Deploy in Parallel",
+ "defaultValue": "true",
+ "required": false,
+ "groupName": "advanced",
+ "helpMarkDown": "Setting it to true will deploy the Web application in-parallel on the target machines."
+ },
+ {
+ "name": "ResourceFilteringMethod",
+ "type": "radio",
+ "label": "Select Machines By",
+ "required": false,
+ "defaultValue": "machineNames",
+ "options": {
+ "machineNames": "Machine Names",
+ "tags": "Tags"
+ },
+ "groupName": "advanced",
+ "helpMarkDown": "Optionally, select a subset of machines either by providing machine names or tags."
+ },
+ {
+ "name": "MachineFilter",
+ "type": "string",
+ "label": "Deploy to Machines",
+ "required": false,
+ "defaultValue": "",
+ "groupName": "advanced",
+ "helpMarkDown": "This input is valid only for machine groups and is not supported for flat list of machines or output variables yet. Provide a list of machines like, dbserver.fabrikam.com, webserver.fabrikam.com, 192.168.12.34, or tags like, Role:DB; OS:Win8.1. If multiple tags are provided, then the task will run in all the machines with the specified tags. For Azure Resource Groups, provide the virtual machine's name like, ffweb, ffdb. The default is to run the task in all machines."
+ }
+ ],
+ "instanceNameFormat": "[Deprecated] Deploy IIS App: $(WebDeployPackage)",
+ "execution": {
+ "PowerShell": {
+ "target": "$(currentDirectory)\\DeployIISWebApp.ps1",
+ "argumentFormat": "",
+ "workingDirectory": "$(currentDirectory)"
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tasks/IISWebAppDeployment/task.loc.json b/Tasks/IISWebAppDeployment/task.loc.json
new file mode 100644
index 000000000000..59eb330f0c77
--- /dev/null
+++ b/Tasks/IISWebAppDeployment/task.loc.json
@@ -0,0 +1,417 @@
+{
+ "id": "89A3A82D-4B3E-4A09-8D40-A793849DC94F",
+ "name": "IISWebAppDeployment",
+ "friendlyName": "ms-resource:loc.friendlyName",
+ "description": "ms-resource:loc.description",
+ "helpMarkDown": "ms-resource:loc.helpMarkDown",
+ "category": "Deploy",
+ "visibility": [
+ "Preview",
+ "Build",
+ "Release"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 1,
+ "Minor": 0,
+ "Patch": 21
+ },
+ "demands": [],
+ "minimumAgentVersion": "1.91.0",
+ "deprecated": true,
+ "groups": [
+ {
+ "name": "deployment",
+ "displayName": "ms-resource:loc.group.displayName.deployment",
+ "isExpanded": true
+ },
+ {
+ "name": "website",
+ "displayName": "ms-resource:loc.group.displayName.website",
+ "isExpanded": true
+ },
+ {
+ "name": "applicationPool",
+ "displayName": "ms-resource:loc.group.displayName.applicationPool",
+ "isExpanded": true
+ },
+ {
+ "name": "advanced",
+ "displayName": "ms-resource:loc.group.displayName.advanced",
+ "isExpanded": false
+ }
+ ],
+ "inputs": [
+ {
+ "name": "EnvironmentName",
+ "type": "multiLine",
+ "label": "ms-resource:loc.input.label.EnvironmentName",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "ms-resource:loc.input.help.EnvironmentName"
+ },
+ {
+ "name": "AdminUserName",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.AdminUserName",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "ms-resource:loc.input.help.AdminUserName"
+ },
+ {
+ "name": "AdminPassword",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.AdminPassword",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "ms-resource:loc.input.help.AdminPassword"
+ },
+ {
+ "name": "WinRMProtocol",
+ "type": "radio",
+ "label": "ms-resource:loc.input.label.WinRMProtocol",
+ "required": false,
+ "defaultValue": "",
+ "options": {
+ "Http": "HTTP",
+ "Https": "HTTPS"
+ },
+ "helpMarkDown": "ms-resource:loc.input.help.WinRMProtocol"
+ },
+ {
+ "name": "TestCertificate",
+ "type": "boolean",
+ "label": "ms-resource:loc.input.label.TestCertificate",
+ "defaultValue": "true",
+ "visibleRule": "WinRMProtocol = Https",
+ "required": false,
+ "helpMarkDown": "ms-resource:loc.input.help.TestCertificate"
+ },
+ {
+ "name": "WebDeployPackage",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.WebDeployPackage",
+ "required": true,
+ "groupName": "deployment",
+ "defaultValue": "",
+ "helpMarkDown": "ms-resource:loc.input.help.WebDeployPackage"
+ },
+ {
+ "name": "WebDeployParamFile",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.WebDeployParamFile",
+ "required": false,
+ "groupName": "deployment",
+ "defaultValue": "",
+ "helpMarkDown": "ms-resource:loc.input.help.WebDeployParamFile"
+ },
+ {
+ "name": "OverRideParams",
+ "type": "multiLine",
+ "label": "ms-resource:loc.input.label.OverRideParams",
+ "required": false,
+ "groupName": "deployment",
+ "defaultValue": "",
+ "helpMarkDown": "ms-resource:loc.input.help.OverRideParams"
+ },
+ {
+ "name": "CreateWebSite",
+ "type": "boolean",
+ "label": "ms-resource:loc.input.label.CreateWebSite",
+ "required": false,
+ "groupName": "website",
+ "defaultValue": "false",
+ "helpMarkDown": "ms-resource:loc.input.help.CreateWebSite"
+ },
+ {
+ "name": "WebSiteName",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.WebSiteName",
+ "required": true,
+ "groupName": "website",
+ "defaultValue": "",
+ "visibleRule": "CreateWebSite = true",
+ "helpMarkDown": "ms-resource:loc.input.help.WebSiteName"
+ },
+ {
+ "name": "WebSitePhysicalPath",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.WebSitePhysicalPath",
+ "required": true,
+ "groupName": "website",
+ "defaultValue": "%SystemDrive%\\inetpub\\wwwroot",
+ "visibleRule": "CreateWebSite = true",
+ "helpMarkDown": "ms-resource:loc.input.help.WebSitePhysicalPath"
+ },
+ {
+ "name": "WebSitePhysicalPathAuth",
+ "type": "pickList",
+ "label": "ms-resource:loc.input.label.WebSitePhysicalPathAuth",
+ "required": true,
+ "groupName": "website",
+ "defaultValue": "Application User (Pass-through)",
+ "visibleRule": "CreateWebSite = true",
+ "options": {
+ "WebSiteUserPassThrough": "Application User (Pass-through)",
+ "WebSiteWindowsAuth": "Windows Authentication"
+ },
+ "helpMarkDown": "ms-resource:loc.input.help.WebSitePhysicalPathAuth"
+ },
+ {
+ "name": "WebSiteAuthUserName",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.WebSiteAuthUserName",
+ "required": true,
+ "groupName": "website",
+ "defaultValue": "",
+ "visibleRule": "WebSitePhysicalPathAuth = WebSiteWindowsAuth",
+ "helpMarkDown": "ms-resource:loc.input.help.WebSiteAuthUserName"
+ },
+ {
+ "name": "WebSiteAuthUserPassword",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.WebSiteAuthUserPassword",
+ "required": false,
+ "groupName": "website",
+ "defaultValue": "",
+ "visibleRule": "WebSitePhysicalPathAuth = WebSiteWindowsAuth",
+ "helpMarkDown": "ms-resource:loc.input.help.WebSiteAuthUserPassword"
+ },
+ {
+ "name": "AddBinding",
+ "type": "boolean",
+ "label": "ms-resource:loc.input.label.AddBinding",
+ "required": false,
+ "groupName": "website",
+ "defaultValue": "true",
+ "visibleRule": "CreateWebSite = true",
+ "helpMarkDown": "ms-resource:loc.input.help.AddBinding"
+ },
+ {
+ "name": "AssignDuplicateBinding",
+ "type": "boolean",
+ "label": "ms-resource:loc.input.label.AssignDuplicateBinding",
+ "required": false,
+ "groupName": "website",
+ "defaultValue": "false",
+ "visibleRule": "AddBinding = true",
+ "helpMarkDown": "ms-resource:loc.input.help.AssignDuplicateBinding"
+ },
+ {
+ "name": "Protocol",
+ "type": "pickList",
+ "label": "ms-resource:loc.input.label.Protocol",
+ "required": true,
+ "groupName": "website",
+ "defaultValue": "http",
+ "options": {
+ "https": "https",
+ "http": "http"
+ },
+ "visibleRule": "AddBinding = true",
+ "helpMarkDown": "ms-resource:loc.input.help.Protocol"
+ },
+ {
+ "name": "IPAddress",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.IPAddress",
+ "required": true,
+ "groupName": "website",
+ "defaultValue": "All Unassigned",
+ "visibleRule": "AddBinding = true",
+ "helpMarkDown": "ms-resource:loc.input.help.IPAddress"
+ },
+ {
+ "name": "Port",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.Port",
+ "required": true,
+ "groupName": "website",
+ "defaultValue": "80",
+ "visibleRule": "AddBinding = true",
+ "helpMarkDown": "ms-resource:loc.input.help.Port"
+ },
+ {
+ "name": "ServerNameIndication",
+ "type": "boolean",
+ "label": "ms-resource:loc.input.label.ServerNameIndication",
+ "required": false,
+ "groupName": "website",
+ "defaultValue": "false",
+ "visibleRule": "Protocol = https",
+ "helpMarkDown": "ms-resource:loc.input.help.ServerNameIndication"
+ },
+ {
+ "name": "HostNameWithOutSNI",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.HostNameWithOutSNI",
+ "required": false,
+ "groupName": "website",
+ "defaultValue": "",
+ "visibleRule": "ServerNameIndication = false",
+ "helpMarkDown": "ms-resource:loc.input.help.HostNameWithOutSNI"
+ },
+ {
+ "name": "HostNameWithHttp",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.HostNameWithHttp",
+ "required": false,
+ "groupName": "website",
+ "defaultValue": "",
+ "visibleRule": "Protocol = http",
+ "helpMarkDown": "ms-resource:loc.input.help.HostNameWithHttp"
+ },
+ {
+ "name": "HostNameWithSNI",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.HostNameWithSNI",
+ "required": true,
+ "groupName": "website",
+ "defaultValue": "",
+ "visibleRule": "ServerNameIndication = true",
+ "helpMarkDown": "ms-resource:loc.input.help.HostNameWithSNI"
+ },
+ {
+ "name": "SSLCertThumbPrint",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.SSLCertThumbPrint",
+ "required": true,
+ "groupName": "website",
+ "defaultValue": "",
+ "visibleRule": "Protocol = https",
+ "helpMarkDown": "ms-resource:loc.input.help.SSLCertThumbPrint"
+ },
+ {
+ "name": "CreateAppPool",
+ "type": "boolean",
+ "label": "ms-resource:loc.input.label.CreateAppPool",
+ "required": false,
+ "groupName": "applicationPool",
+ "defaultValue": "false",
+ "helpMarkDown": "ms-resource:loc.input.help.CreateAppPool"
+ },
+ {
+ "name": "AppPoolName",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.AppPoolName",
+ "defaultValue": "",
+ "required": true,
+ "groupName": "applicationPool",
+ "visibleRule": "CreateAppPool = true",
+ "helpMarkDown": "ms-resource:loc.input.help.AppPoolName"
+ },
+ {
+ "name": "DotNetVersion",
+ "type": "pickList",
+ "label": "ms-resource:loc.input.label.DotNetVersion",
+ "defaultValue": "v4.0",
+ "required": true,
+ "groupName": "applicationPool",
+ "visibleRule": "CreateAppPool = true",
+ "helpMarkDown": "ms-resource:loc.input.help.DotNetVersion",
+ "options": {
+ "v4.0": "v4.0",
+ "v2.0": "v2.0",
+ "No Managed Code": "No Managed Code"
+ }
+ },
+ {
+ "name": "PipeLineMode",
+ "type": "pickList",
+ "label": "ms-resource:loc.input.label.PipeLineMode",
+ "defaultValue": "Integrated",
+ "required": true,
+ "groupName": "applicationPool",
+ "visibleRule": "CreateAppPool = true",
+ "helpMarkDown": "ms-resource:loc.input.help.PipeLineMode",
+ "options": {
+ "Integrated": "Integrated",
+ "Classic": "Classic"
+ }
+ },
+ {
+ "name": "AppPoolIdentity",
+ "type": "pickList",
+ "label": "ms-resource:loc.input.label.AppPoolIdentity",
+ "defaultValue": "ApplicationPoolIdentity",
+ "required": true,
+ "groupName": "applicationPool",
+ "visibleRule": "CreateAppPool = true",
+ "helpMarkDown": "ms-resource:loc.input.help.AppPoolIdentity",
+ "options": {
+ "ApplicationPoolIdentity": "ApplicationPoolIdentity",
+ "LocalService": "LocalService",
+ "LocalSystem": "LocalSystem",
+ "NetworkService": "NetworkService",
+ "SpecificUser": "Custom Account"
+ }
+ },
+ {
+ "name": "AppPoolUsername",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.AppPoolUsername",
+ "defaultValue": "",
+ "required": true,
+ "groupName": "applicationPool",
+ "visibleRule": "AppPoolIdentity = SpecificUser"
+ },
+ {
+ "name": "AppPoolPassword",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.AppPoolPassword",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "ms-resource:loc.input.help.AppPoolPassword",
+ "groupName": "applicationPool",
+ "visibleRule": "AppPoolIdentity = SpecificUser"
+ },
+ {
+ "name": "AppCmdCommands",
+ "type": "multiLine",
+ "label": "ms-resource:loc.input.label.AppCmdCommands",
+ "required": false,
+ "groupName": "advanced",
+ "defaultValue": "",
+ "helpMarkDown": "ms-resource:loc.input.help.AppCmdCommands"
+ },
+ {
+ "name": "DeployInParallel",
+ "type": "boolean",
+ "label": "ms-resource:loc.input.label.DeployInParallel",
+ "defaultValue": "true",
+ "required": false,
+ "groupName": "advanced",
+ "helpMarkDown": "ms-resource:loc.input.help.DeployInParallel"
+ },
+ {
+ "name": "ResourceFilteringMethod",
+ "type": "radio",
+ "label": "ms-resource:loc.input.label.ResourceFilteringMethod",
+ "required": false,
+ "defaultValue": "machineNames",
+ "options": {
+ "machineNames": "Machine Names",
+ "tags": "Tags"
+ },
+ "groupName": "advanced",
+ "helpMarkDown": "ms-resource:loc.input.help.ResourceFilteringMethod"
+ },
+ {
+ "name": "MachineFilter",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.MachineFilter",
+ "required": false,
+ "defaultValue": "",
+ "groupName": "advanced",
+ "helpMarkDown": "ms-resource:loc.input.help.MachineFilter"
+ }
+ ],
+ "instanceNameFormat": "ms-resource:loc.instanceNameFormat",
+ "execution": {
+ "PowerShell": {
+ "target": "$(currentDirectory)\\DeployIISWebApp.ps1",
+ "argumentFormat": "",
+ "workingDirectory": "$(currentDirectory)"
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tasks/SqlServerDacpacDeployment/DeployToSqlServer.ps1 b/Tasks/SqlServerDacpacDeployment/DeployToSqlServer.ps1
new file mode 100644
index 000000000000..2b330f9619f3
--- /dev/null
+++ b/Tasks/SqlServerDacpacDeployment/DeployToSqlServer.ps1
@@ -0,0 +1,84 @@
+param (
+ [string]$environmentName,
+ [string]$adminUserName,
+ [string]$adminPassword,
+ [string]$protocol,
+ [string]$testCertificate,
+ [string]$resourceFilteringMethod,
+ [string]$machineFilter,
+ [string]$dacpacFile,
+ [string]$targetMethod,
+ [string]$serverName,
+ [string]$databaseName,
+ [string]$sqlUsername,
+ [string]$sqlPassword,
+ [string]$connectionString,
+ [string]$publishProfile,
+ [string]$additionalArguments,
+ [string]$deployInParallel
+ )
+
+Write-Warning "The preview SQL Server Database Deployment task has been deprecated and will be removed soon. An SQL Server Database Deployment task has been released as an extension in the Visual Studio Team Services marketplace at https://aka.ms/iisextn. Install the extension, and use its tasks in the Build/Release definitions, and delete the preview task from the definition."
+
+Write-Verbose "Entering script DeployToSqlServer.ps1" -Verbose
+Write-Verbose "environmentName = $environmentName" -Verbose
+Write-Verbose "adminUserName = $adminUserName" -Verbose
+Write-Verbose "winrm protocol to connect to machine = $protocol" -Verbose
+Write-Verbose "testCertificate = $testCertificate" -Verbose
+Write-Verbose "resourceFilteringMethod = $resourceFilteringMethod" -Verbose
+Write-Verbose "machineFilter = $machineFilter" -Verbose
+Write-Verbose "dacpacFile = $dacpacFile" -Verbose
+Write-Verbose "targetMethod = $targetMethod" -Verbose
+Write-Verbose "serverName = $serverName" -Verbose
+Write-Verbose "databaseName = $databaseName" -Verbose
+Write-Verbose "sqlUsername = $sqlUsername" -Verbose
+Write-Verbose "publishProfile = $publishProfile" -Verbose
+Write-Verbose "additionalArguments = $additionalArguments" -Verbose
+Write-Verbose "deployInParallel = $deployInParallel" -Verbose
+
+import-module "Microsoft.TeamFoundation.DistributedTask.Task.Internal"
+import-module "Microsoft.TeamFoundation.DistributedTask.Task.Common"
+import-module "Microsoft.TeamFoundation.DistributedTask.Task.DevTestLabs"
+Import-Module "Microsoft.TeamFoundation.DistributedTask.Task.Deployment.Internal"
+Import-Module "Microsoft.TeamFoundation.DistributedTask.Task.Deployment.RemoteDeployment"
+
+$ErrorActionPreference = 'Stop'
+
+if( $publishProfile -eq $env:SYSTEM_DEFAULTWORKINGDIRECTORY -or $publishProfile -eq [String]::Concat($env:SYSTEM_DEFAULTWORKINGDIRECTORY, "\")){
+ $publishProfile = ""
+}
+
+$sqlDeploymentScriptPath = Join-Path "$env:AGENT_HOMEDIRECTORY" "Agent\Worker\Modules\Microsoft.TeamFoundation.DistributedTask.Task.DevTestLabs\Scripts\Microsoft.TeamFoundation.DistributedTask.Task.Deployment.Sql.ps1"
+
+if( -Not (Test-Path -Path $sqlDeploymentScriptPath))
+{
+ $sqlDeploymentScriptPath = Join-Path "$env:AGENT_HOMEDIRECTORY" "externals\vstshost\Microsoft.TeamFoundation.DistributedTask.Task.DevTestLabs\Scripts\Microsoft.TeamFoundation.DistributedTask.Task.Deployment.Sql.ps1"
+}
+
+$sqlPackageOnTargetMachineBlock = Get-Content $sqlDeploymentScriptPath | Out-String
+
+$sqlPackageArguments = Get-SqlPackageCommandArguments -dacpacFile $dacpacFile -targetMethod $targetMethod -serverName $serverName -databaseName $databaseName -sqlUsername $sqlUsername -sqlPassword $sqlPassword -connectionString $connectionString -publishProfile $publishProfile -additionalArguments $additionalArguments
+
+$scriptArguments = "-sqlPackageArguments $sqlPackageArguments"
+
+$errorMessage = [string]::Empty
+
+Write-Output ( Get-LocalizedString -Key "Starting deployment of Sql Dacpac File : {0}" -ArgumentList $dacpacFile)
+
+if($resourceFilteringMethod -eq "tags")
+{
+ $errorMessage = Invoke-RemoteDeployment -environmentName $environmentName -tags $machineFilter -ScriptBlockContent $sqlPackageOnTargetMachineBlock -scriptArguments $scriptArguments -runPowershellInParallel $deployInParallel -adminUserName $adminUserName -adminPassword $adminPassword -protocol $protocol -testCertificate $testCertificate
+}
+else
+{
+ $errorMessage = Invoke-RemoteDeployment -environmentName $environmentName -machineNames $machineFilter -ScriptBlockContent $sqlPackageOnTargetMachineBlock -scriptArguments $scriptArguments -runPowershellInParallel $deployInParallel -adminUserName $adminUserName -adminPassword $adminPassword -protocol $protocol -testCertificate $testCertificate
+}
+
+if(-not [string]::IsNullOrEmpty($errorMessage))
+{
+ $readmelink = "https://aka.ms/sqlserverdacpackreadme"
+ $helpMessage = (Get-LocalizedString -Key "For more info please refer to {0}" -ArgumentList $readmelink)
+ throw "$errorMessage $helpMessage"
+}
+
+Write-Output ( Get-LocalizedString -Key "Successfully deployed Sql Dacpac File : {0}" -ArgumentList $dacpacFile)
\ No newline at end of file
diff --git a/Tasks/SqlServerDacpacDeployment/README.md b/Tasks/SqlServerDacpacDeployment/README.md
new file mode 100644
index 000000000000..5b81ee61b6df
--- /dev/null
+++ b/Tasks/SqlServerDacpacDeployment/README.md
@@ -0,0 +1,86 @@
+# SQL Server Database Deployment
+
+## **Important Notice**
+The preview SQL Server Database Deployment task has been **deprecated and will be removed soon**. The task has been **shipped as an extension for Visual Studio Team Services**, and is available in the marketplace - https://marketplace.visualstudio.com/items?itemName=ms-vscs-rm.iiswebapp.
+
+**Install the extension, and add the tasks from the extension in Build or Release Definitions, and remove this SQL Server Database Deployment task from the definition.**
+
+## Overview:
+
+The task is used to deploy SQL Server database to an existing SQL Server instance, and the underlying technologies used by the task are [DACPAC](https://msdn.microsoft.com/en-IN/library/ee210546.aspx) and [SqlPackage.exe](https://msdn.microsoft.com/en-us/library/hh550080\(v=vs.103\).aspx). DACPACs and SqlPackage.exe provide fine-grained control over database creation and upgrades, including upgrades for schema, triggers, stored procedures, roles, users, extended properties etc. Using the task, around eighty different properties can be set to ensure that the database is created or upgraded properly like:
+
+- Ignore Data Loss - If false, upgrade will fail if it results in a data-loss.
+- Verify Deployment - If true, the deployment is verified and blocked if can fail. For example, foreign keys have not been specified in the DACPAC but exist in the target database.
+- Block on Changes - If true, upgrade is terminated if a schema drift is detected.
+- Rollback on Failure - If true, then the upgrade is rolled back if errors are encountered.
+- Backup Database Before Changes - If true, a backup of the database is taken prior to applying the changes.
+
+The task runs on the target machine(s) and it is important to have the pre-requisites, as described below, installed on the machine(s). The flow is that the automation agent when executing the task, connects to the target machine using the Windows Remote Management (WinRM), and then launches a bootstrap service, which in turn invokes the PowerShell scripts to locate the SqlPackage.exe on the machine, and deploys the database using the SqlPackage.exe.
+
+## Contact Information
+
+Please contact the alias RM\_Customer\_Queries at microsoft dot com, if you are facing problems in making this task work. Also, if you would like to share feedback about the task like, what more functionality should be added to the task, what other tasks you would like to have, then do send an email to the alias.
+
+## Pre-requisites for the task
+
+The following pre-requisites need to be setup for the task to work properly.
+
+### SqlPackage.exe
+
+SqlPackage.exe is used to create or upgrade the database and it is installed during the installation of SQL Server 2008 R2/2012/2014. If the SQL Server Database deployment task is targeting these versions of SQL Server, then there is no need to install SqlPackage.exe separately. However, the latest version of SqlPackage.exe ships with SQL Server 2014, and is also available as a web download, and installs when the products listed below are installed on a machine. The latest version of SqlPackage.exe can target database deployments from SQL Server 2005 onwards and it is advisable to install that on the deployment machine. If the deployment of the SQL Server database is happening on the Web Server which is targeting a database on a separate Database Server that is behind firewall in a DMZ zone, then SqlPackage.exe needs to be installed on the Web Server:
+
+* Install it by using the [Microsoft Web Platform Installer](https://www.microsoft.com/web/gallery/install.aspx?appid=DACFX) (Web PI). Note that the link will open Web PI with the DACFX showing-up ready to install, where the DACFX download represents all the MSIs that need to be installed for SqlPackage.exe.
+* [SQL Server Management Studio](https://www.microsoft.com/en-in/download/details.aspx?id=42299) for SQL Server 2014 or SQL Server Express or SQL Server 2012 and SQL Server 2014 and [DAC Framework](https://www.microsoft.com/en-us/download/details.aspx?id=42293) MSIs install SqlPackage.exe at C:\Program Files (x86)\Microsoft SQL Server\120\DAC\bin.
+* Visual Studio 2015 installs the SqlPackage.exe at - C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120. Here the install location of Visual Studio is - C:\Program Files (x86)\Microsoft Visual Studio 14.0.
+
+The task [PowerShell on Target Machines](https://github.com/Microsoft/vsts-tasks/tree/master/Tasks/PowerShellOnTargetMachines) can be used to deploy SqlPackage.exe to Azure virtual machines or domain-joined/workgroup machines.
+
+### SQL Server
+
+There should be a SQL Server instance that is already installed and configured on the pre-existing machines or virtual machines. The task deploys SQL Server database but does not install or configure SQL Server.
+
+### Pre-existing Machine Groups
+
+If the deployment of the database is on pre-existing machines (physical or virtual machines) then a machine group has to be created in the Machines Hub. There is a manage link next to the Machine Group parameter of the task. Click on the link to navigate to the Machines Hub and create a machine group. Note that the IP Address or the FDQN of Azure virtual machines can be also added in the machine group. The difference between using the domain-joined/workgroup machines and the Azure virtual machines is that copying files to them uses separate tasks wiz. [Windows Machine File Copy](https://github.com/Microsoft/vsts-tasks/tree/master/Tasks/WindowsMachineFileCopy) for the domain-joined/workgroup machines and [Azure File Copy](https://github.com/Microsoft/vsts-tasks/tree/master/Tasks/AzureFileCopy) for the Azure virtual machines. Note that the SQL Server Database Deployment task expects the DACPACs to be available on the machines or on a UNC path that is accessible by the machine administrator's login. Prior to using the SQL Server Database Deployment task, ensure that the DACPACs are available for the deployment by copying them to the machines using the Windows Machine File Copy or the Azure File Copy tasks.
+
+### WinRM setup
+This task uses the [Windows Remote Management](https://msdn.microsoft.com/en-us/library/aa384426.aspx) (WinRM) to access domain-joined or workgroup, on-premises physical or virtual machines.
+
+#### Windows Remote Management (WinRM) Setup for On-premises Physical or Virtual Machines
+To easily **setup WinRM** on the **host machines** follow the directions for [domain-joined machines](https://www.visualstudio.com/en-us/docs/release/examples/other-servers/net-to-vm) or the [workgroup machines](https://www.visualstudio.com/en-us/docs/release/examples/other-servers/net-to-workgroup-vm).
+
+#### Windows Remote Management (WinRM) Setup for Azure Virtual Machines
+Azure virtual machines only work with the WinRM HTTPS protocol. With the WinRM protocol selected as HTTPS, you have an option to use the Test Certificate. Selecting the Test Certificate option means that the certificate is a self-signed certificate, and the automation agent will skip validating the authenticity of the machine's certificate from a trusted certification authority.
+
+- **Classic Virtual machines:** When creating [classic virtual machine](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-windows-tutorial-classic-portal/) from the [new Azure portal](https://portal.azure.com/) or the [classic Azure portal](https://manage.windowsazure.com/), the virtual machine is already setup for WinRM HTTPS, with the default port 5986 already open in Firewall, and a self-signed certificate installed on the machine. These virtual machines can be directly added to the WinRM. The existing [classic virtual machine](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-windows-tutorial-classic-portal/) can be also selected by using the [Azure Resource Group Deployment task](https://github.com/Microsoft/vso-agent-tasks/tree/master/Tasks/DeployAzureResourceGroup).
+
+- **• Azure Resource Group:** If an [Azure resource group](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-windows-hero-tutorial/) has been created in the [new Azure portal](https://portal.azure.com/), then it needs to be setup for the WinRM HTTPS protocol (WinRM HTTPS, with the default port 5986 already open in Firewall, and a self-signed certificate installed on the machine). To dynamically deploy Azure resource groups with virtual machines in them use the [Azure Resource Group Deployment task](https://github.com/Microsoft/vso-agent-tasks/tree/master/Tasks/DeployAzureResourceGroup). The task has a checkbox titled - **Enable Deployment Pre-requisites**. Select this option to setup the WinRM HTTPS protocol on the virtual machines, and to open the 5986 port in the Firewall, and to install the test certificate. After this the virtual machines are ready for use in the deployment task.
+
+## Parameters of the task:
+
+The parameters of the task are described in details, including examples, to show how to input the parameters. The parameters listed with a \* are required parameters for the task:
+
+ - **Machines**: Specify comma separated list of machine FQDNs/ip addresses along with port(optional). For example dbserver.fabrikam.com, dbserver_int.fabrikam.com:5986,192.168.34:5986. Port when not specified will be defaulted to WinRM defaults based on the specified protocol. i.e., (For *WinRM 2.0*): The default HTTP port is 5985, and the default HTTPS port is 5986. Machines field also accepts 'Machine Groups' defined under 'Test' hub, 'Machines' tab.
+ - **Admin Login**: Domain/Local administrator of the target host. Format: <Domain or hostname>\ < Admin User>. Mandatory when used with list of machines, optional for Test Machine Group (will override test machine group value when specified).
+ - **Password**: Password for the admin login. It can accept variable defined in Build/Release definitions as '$(passwordVariable)'. You may mark variable type as 'secret' to secure it. Mandatory when used with list of machines, optional for Test Machine Group (will override test machine group value when specified).
+ - **Protocol**: Specify the protocol that will be used to connect to target host, either HTTP or HTTPS.
+ - **Test Certificate**: Select the option to skip validating the authenticity of the machine's certificate by a trusted certification authority. The parameter is required for the WinRM HTTPS protocol.
+- **DACPAC File\*:** Location of the DACPAC file on the target machine or on a UNC path that is accessible to the administrator credentials of the machine like, \\BudgetIT\Web\Deploy\FabrikamDB.dacpac. Environment variables are also supported like $env:windir, $env:systemroot etc. For example, $env:windir\FabrikamFibre\Web.
+- **Specify SQL Using\*:** The task provides for three different ways to provide information to connect to a SQL Server instance. The options are to provide SQL Server instance and database details, or to provide a SQL Server connection string, or to provide the location of the Publish profile XML file on the target machine.
+- **Server Name\*:** Provide the SQL Server name like, _machinename_\FabriakmSQL,1433, or localhost, or .\SQL2012R2. Specifying localhost will connect to the Default SQL Server instance on the machine.
+- **Database Name\*:** The name of the SQL Server Database like Fabrikan. The Database will be created new if it does not exist, else it will be updated if it already exists.
+- **SQL Username** : Optionally provide the SQL Server login, and if provided, it will be used to connect to the SQL Server. The default is to use the Integrated Authentication and the machine administrator credentials are used to connect to the SQL Server instance.
+- **SQL Password:** The password for the SQL Server login. Required parameter if the SQL username is specified.
+- **Connection String\*:** Specify the SQL Server connection string like "Server=localhost;Database=Fabrikam;User ID=sqluser;Password=password;".
+- **Publish Profile:** Publish profile provide fine-grained control over SQL Server database creation or upgrades. Specify the path to the Publish profile XML file on the target machine or on a UNC share that is accessible by the machine administrator's credentials. This is an optional parameter.
+- **Additional SqlPackage.exe Arguments:** Additional SqlPackage.exe arguments that will be applied when creating or updating the SQL Server database like:
+
+ /p:IgnoreAnsiNulls=True /p:IgnoreComments=True
+
+These arguments will override the settings in the Publish profile XML file (if provided). A full list of the arguments that can provided is listed in the ' **Properties**' sub-section of the ' **Publish Parameters, Properties, and SQLCMD Variables**' in the [SqlPackage.exe](https://msdn.microsoft.com/en-us/library/hh550080\(v=vs.103\).aspx) documentation. The SQLCMD variables can be also specified here. This is an optional parameter.
+
+- **Deploy in Parallel:** Setting it to true will run the database deployment task in-parallel on the target machines.
+
+## Known Issues
+
+- The SQL Server Database Deployment task does not support BACPAC and SQL scripts. The SqlPackage.exe provides out-of-box support for both BACPAC and SQL Scripts and the work to enable this support is in our backlog. Please send us feedback for the task and for the support for BACPAC and SQL scripts at RM\_Customer\_Queries at microsoft dot com.
diff --git a/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/de-de/resources.resjson b/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/de-de/resources.resjson
new file mode 100644
index 000000000000..26482eadedec
--- /dev/null
+++ b/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/de-de/resources.resjson
@@ -0,0 +1,43 @@
+{
+ "loc.friendlyName": "[Veraltet] SQL Server-Datenbank bereitstellen",
+ "loc.helpMarkDown": "[More Information](https://aka.ms/sqlserverdacpackreadme)",
+ "loc.description": "SQL Server-Datenbank mithilfe von DACPAC bereitstellen",
+ "loc.instanceNameFormat": "[Veraltet] SQL DACPAC bereitstellen: $(DacpacFile)",
+ "loc.group.displayName.deployment": "Bereitstellung",
+ "loc.group.displayName.target": "Ziel",
+ "loc.group.displayName.advanced": "Erweitert",
+ "loc.input.label.EnvironmentName": "Computer",
+ "loc.input.help.EnvironmentName": "Stellen Sie eine durch Kommas getrennte Liste der IP-Computeradressen oder FQDNs zusammen mit den Ports bereit. Die Standardeinstellung für den Port basiert auf dem ausgewählten Protokoll. Beispiel: \"dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986\" Sie können auch die Ausgabevariable anderer Tasks angeben. Beispiel: \"$(variableName)\".",
+ "loc.input.label.AdminUserName": "Administratoranmeldung",
+ "loc.input.help.AdminUserName": "Die Administratoranmeldung für die Zielcomputer.",
+ "loc.input.label.AdminPassword": "Kennwort",
+ "loc.input.help.AdminPassword": "Das Administratorkennwort für die Zielcomputer. Es kann die Variable annehmen, die in Build-/Releasedefinitionen als\"$(passwordVariable)\" definiert wird. Sie können den Variablentyp als \"secret\" markieren, um die Variable zu sichern. ",
+ "loc.input.label.Protocol": "Protokoll",
+ "loc.input.help.Protocol": "Wählen Sie das Protokoll aus, das für die WinRM-Verbindung mit dem Computer bzw. den Computern verwendet werden soll. Der Standardwert ist HTTPS.",
+ "loc.input.label.TestCertificate": "Testzertifikat",
+ "loc.input.help.TestCertificate": "Wählen Sie die Option aus, um die Überprüfung der Authentizität des Zertifikats des Computers durch eine vertrauenswürdige Zertifizierungsstelle zu überspringen. Der Parameter ist für das WinRM HTTPS-Protokoll erforderlich.",
+ "loc.input.label.DacpacFile": "DACPAC-Datei",
+ "loc.input.help.DacpacFile": "Der Speicherort der DACPAC-Datei auf den Zielcomputern oder in einem UNC-Pfad im folgenden Format: \"\\\\\\\\BudgetIT\\Web\\Deploy\\FabrikamDB.dacpac\". Auf den UNC-Pfad sollte über das Administratorkonto des Computers zugegriffen werden können. Umgebungsvariablen werden ebenfalls unterstützt, z. B. \"$env:windir\", \"$env:systemroot\", \"like\", \"$env:windir\\FabrikamFibre\\Web\".",
+ "loc.input.label.TargetMethod": "SQL angeben mit",
+ "loc.input.help.TargetMethod": "Wählen Sie die Option zum Herstellen einer Verbindung mit der SQL Server-Zieldatenbank aus. Sie können optional Details zur SQL Server-Datenbank, eine SQL Server-Verbindungszeichenfolge oder eine XML-Veröffentlichungsprofildatei bereitstellen.",
+ "loc.input.label.ServerName": "Servername",
+ "loc.input.help.ServerName": "Geben Sie den SQL Server-Namen an, z. B. \"computername\\FabrikamSQL,1433\", \"localhost\" oder \".\\SQL2012R2\". Wenn Sie \"localhost\" angeben, wird eine Verbindung mit der SQL Server-Standardinstanz auf dem Computer hergestellt.",
+ "loc.input.label.DatabaseName": "Datenbankname",
+ "loc.input.help.DatabaseName": "Geben Sie den Namen der SQL Server-Datenbank an.",
+ "loc.input.label.SqlUsername": "SQL-Benutzername",
+ "loc.input.help.SqlUsername": "Wenn die SQL Server-Anmeldung angegeben wird, wird diese zum Herstellen einer Verbindung mit SQL Server verwendet. Standardmäßig werden integrierte Authentifizierung und die Anmeldeinformationen des Administrators des Computers verwendet.",
+ "loc.input.label.SqlPassword": "SQL-Kennwort",
+ "loc.input.help.SqlPassword": "Wenn der SQL Server-Anmeldebenutzername angegeben wird, geben Sie das SQL Server-Kennwort an. Standardmäßig werden integrierte Authentifizierung und die Anmeldeinformationen des Administrators des Computers verwendet.",
+ "loc.input.label.ConnectionString": "Verbindungszeichenfolge",
+ "loc.input.help.ConnectionString": "Geben Sie die SQL Server-Verbindungszeichenfolge (Beispiel: \"Server=localhost;Database=Fabrikam;User ID=sqluser;Password=password;\") an.",
+ "loc.input.label.PublishProfile": "Veröffentlichungsprofil",
+ "loc.input.help.PublishProfile": "Ein Veröffentlichungsprofil stellt eine detaillierte Steuerung der Erstellung oder eines Upgrades der SQL Server-Datenbank zur Verfügung. Geben Sie den Pfad zur XML-Veröffentlichungsprofildatei auf dem Zielcomputer oder einer UNC-Freigabe an, auf die mit den Anmeldeinformationen des Administrators des Computers zugegriffen werden kann.",
+ "loc.input.label.AdditionalArguments": "Zusätzliche Argumente",
+ "loc.input.help.AdditionalArguments": "Zusätzliche SqlPackage.exe-Argumente, die beim Erstellen oder Aktualisieren der SQL Server-Datenbank angewendet werden, z. B. \"/p:IgnoreAnsiNulls=True /p:IgnoreComments=True\". Diese Argumente setzen die Einstellungen in der Veröffentlichungsprofil-XML-Datei außer Kraft (wenn angegeben).",
+ "loc.input.label.DeployInParallel": "Parallel bereitstellen",
+ "loc.input.help.DeployInParallel": "Wenn diese Option auf \"true\" festgelegt wird, wird der Datenbankbereitstellungstask parallel auf den Zielcomputern ausgeführt.",
+ "loc.input.label.ResourceFilteringMethod": "Computer auswählen nach",
+ "loc.input.help.ResourceFilteringMethod": "Wählen Sie optional eine Teilmenge der Computer durch Angeben von Computernamen oder Tags aus.",
+ "loc.input.label.MachineFilter": "Auf Computern bereitstellen",
+ "loc.input.help.MachineFilter": "Diese Eingabe ist nur gültig für Computergruppen und wird noch nicht für flache Listen von Computern oder Ausgabevariablen unterstützt. Geben Sie eine Liste von Computern (z. B. \"dbserver.fabrikam.com\", \"webserver.fabrikam.com\", \"192.168.12.34\") oder Tags (z. B. \"Role:DB\", \"OS:Win8.1\") an. Wenn mehrere Tags angegeben werden, wird der Task auf allen Computern mit den angegebenen Tags ausgeführt. Geben Sie für Azure-Ressourcengruppen den Namen der virtuellen Maschine an, z. B. \"ffweb\" oder \"ffdb\". Standardmäßig wird der Task auf allen Computern ausgeführt."
+}
\ No newline at end of file
diff --git a/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/en-US/resources.resjson b/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/en-US/resources.resjson
new file mode 100644
index 000000000000..d75f299a6f57
--- /dev/null
+++ b/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/en-US/resources.resjson
@@ -0,0 +1,43 @@
+{
+ "loc.friendlyName": "[Deprecated] SQL Server Database Deploy",
+ "loc.helpMarkDown": "[More Information](https://aka.ms/sqlserverdacpackreadme)",
+ "loc.description": "Deploy SQL Server Database using DACPAC",
+ "loc.instanceNameFormat": "[Deprecated] Deploy SQL DACPAC: $(DacpacFile)",
+ "loc.group.displayName.deployment": "Deployment",
+ "loc.group.displayName.target": "Target",
+ "loc.group.displayName.advanced": "Advanced",
+ "loc.input.label.EnvironmentName": "Machines",
+ "loc.input.help.EnvironmentName": "Provide a comma separated list of machine IP addresses or FQDNs along with ports. Port is defaulted based on the selected protocol. Eg: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986 Or provide output variable of other tasks. Eg: $(variableName)",
+ "loc.input.label.AdminUserName": "Admin Login",
+ "loc.input.help.AdminUserName": "Administrator login for the target machines.",
+ "loc.input.label.AdminPassword": "Password",
+ "loc.input.help.AdminPassword": "Administrator password for the target machines. It can accept variable defined in Build/Release definitions as '$(passwordVariable)'. You may mark variable type as 'secret' to secure it. ",
+ "loc.input.label.Protocol": "Protocol",
+ "loc.input.help.Protocol": "Select the protocol to use for the WinRM connection with the machine(s). Default is HTTPS.",
+ "loc.input.label.TestCertificate": "Test Certificate",
+ "loc.input.help.TestCertificate": "Select the option to skip validating the authenticity of the machine's certificate by a trusted certification authority. The parameter is required for the WinRM HTTPS protocol.",
+ "loc.input.label.DacpacFile": "DACPAC File",
+ "loc.input.help.DacpacFile": "Location of the DACPAC file on the target machines or on a UNC path like, \\\\\\\\BudgetIT\\Web\\Deploy\\FabrikamDB.dacpac. The UNC path should be accessible to the machine's administrator account. Environment variables are also supported like $env:windir, $env:systemroot, like, $env:windir\\FabrikamFibre\\Web.",
+ "loc.input.label.TargetMethod": "Specify SQL Using",
+ "loc.input.help.TargetMethod": "Select the option to connect to the target SQL Server Database. The options are to provide SQL Server Database details, or a SQL Server connection string, or a Publish profile XML file.",
+ "loc.input.label.ServerName": "Server Name",
+ "loc.input.help.ServerName": "Provide the SQL Server name like, machinename\\FabriakmSQL,1433 or localhost or .\\SQL2012R2. Specifying localhost will connect to the Default SQL Server instance on the machine.",
+ "loc.input.label.DatabaseName": "Database Name",
+ "loc.input.help.DatabaseName": "Provide the name of the SQL Server database.",
+ "loc.input.label.SqlUsername": "SQL Username",
+ "loc.input.help.SqlUsername": "If the SQL Server login is specified, it will be used to connect to the SQL Server. The default is Integrated Authentication and uses the machine administrator's credentials.",
+ "loc.input.label.SqlPassword": "SQL Password",
+ "loc.input.help.SqlPassword": "If SQL Server login user name is specified, then provide the SQL Server password. The default is Integrated Authentication and uses the machine administrator's credentials.",
+ "loc.input.label.ConnectionString": "Connection String",
+ "loc.input.help.ConnectionString": "Specify the SQL Server connection string like \"Server=localhost;Database=Fabrikam;User ID=sqluser;Password=password;\".",
+ "loc.input.label.PublishProfile": "Publish Profile",
+ "loc.input.help.PublishProfile": "Publish profile provide fine-grained control over SQL Server database creation or upgrades. Specify the path to the Publish profile XML file on the target machine or on a UNC share that is accessible by the machine administrator's credentials.",
+ "loc.input.label.AdditionalArguments": "Additional Arguments",
+ "loc.input.help.AdditionalArguments": "Additional SqlPackage.exe arguments that will be applied when creating or updating the SQL Server database like, /p:IgnoreAnsiNulls=True /p:IgnoreComments=True. These arguments will override the settings in the Publish profile XML file (if provided).",
+ "loc.input.label.DeployInParallel": "Deploy in Parallel",
+ "loc.input.help.DeployInParallel": "Setting it to true will run the database deployment task in-parallel on the target machines.",
+ "loc.input.label.ResourceFilteringMethod": "Select Machines By",
+ "loc.input.help.ResourceFilteringMethod": "Optionally, select a subset of machines either by providing machine names or tags.",
+ "loc.input.label.MachineFilter": "Deploy to Machines",
+ "loc.input.help.MachineFilter": "This input is valid only for machine groups and is not supported for flat list of machines or output variables yet. Provide a list of machines like, dbserver.fabrikam.com, webserver.fabrikam.com, 192.168.12.34, or tags like, Role:DB; OS:Win8.1. If multiple tags are provided, then the task will run in all the machines with the specified tags. For Azure Resource Groups, provide the virtual machine's name like, ffweb, ffdb. The default is to run the task in all machines."
+}
\ No newline at end of file
diff --git a/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/es-es/resources.resjson b/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/es-es/resources.resjson
new file mode 100644
index 000000000000..89799b7a016b
--- /dev/null
+++ b/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/es-es/resources.resjson
@@ -0,0 +1,43 @@
+{
+ "loc.friendlyName": "[En desuso] Implementación de la base de datos de SQL Server",
+ "loc.helpMarkDown": "[More Information](https://aka.ms/sqlserverdacpackreadme)",
+ "loc.description": "Implementar la base de datos de SQL Server con DACPAC",
+ "loc.instanceNameFormat": "[En desuso] Implementar el archivo DACPAC de SQL: $(DacpacFile)",
+ "loc.group.displayName.deployment": "Implementación",
+ "loc.group.displayName.target": "Destino",
+ "loc.group.displayName.advanced": "Avanzado",
+ "loc.input.label.EnvironmentName": "Equipos",
+ "loc.input.help.EnvironmentName": "Proporcione una lista separada por comas de direcciones IP de equipos o nombres de dominio completos junto con puertos. El puerto se establece de manera predeterminada en función del protocolo seleccionado. Ejemplo: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986 O bien proporcione la variable de salida de otras tareas. Ejemplo: $(nombreDeVariable)",
+ "loc.input.label.AdminUserName": "Inicio de sesión del administrador",
+ "loc.input.help.AdminUserName": "Inicio de sesión del administrador para los equipos de destino.",
+ "loc.input.label.AdminPassword": "Contraseña",
+ "loc.input.help.AdminPassword": "Contraseña del administrador para las máquinas de destino. Admite la variable declarada en las definiciones de compilación o versión como \"$(passwordVariable)\". Para proteger la variable, puede marcar el tipo como \"secret\". ",
+ "loc.input.label.Protocol": "Protocolo",
+ "loc.input.help.Protocol": "Seleccione el protocolo que se usará para la conexión WinRM con los equipos. El valor predeterminado es HTTPS.",
+ "loc.input.label.TestCertificate": "Certificado de prueba",
+ "loc.input.help.TestCertificate": "Seleccione la opción para omitir la validación de la autenticidad del certificado del equipo por parte de una entidad de certificación de confianza. El parámetro es obligatorio para el protocolo HTTPS de WinRM.",
+ "loc.input.label.DacpacFile": "Archivo DACPAC",
+ "loc.input.help.DacpacFile": "Ubicación del archivo DACPAC en las máquinas de destino o en una ruta de acceso UNC, como \\\\\\\\BudgetIT\\Web\\Deploy\\FabrikamDB.dacpac. La ruta de acceso UNC debe ser accesible para la cuenta del administrador de la máquina. También se admiten variables de entorno, como $env:windir, $env:systemroot, like, $env:windir\\FabrikamFibre\\Web.",
+ "loc.input.label.TargetMethod": "Especificar el SQL con",
+ "loc.input.help.TargetMethod": "Seleccione la opción para conectarse a la base de datos de destino de SQL Server. Las opciones son: proporcionar detalles de la base de datos de SQL Server, una cadena de conexión de SQL Server o un archivo XML del perfil de publicación.",
+ "loc.input.label.ServerName": "Nombre del servidor",
+ "loc.input.help.ServerName": "Proporcione el nombre de la base de datos de SQL Server, como machinename\\FabriakmSQL,1433, localhost o .\\SQL2012R2. Al especificar localhost, se conectará a la instancia predeterminada de SQL Server en la máquina.",
+ "loc.input.label.DatabaseName": "Nombre de la base de datos",
+ "loc.input.help.DatabaseName": "Proporcione el nombre de la base de datos de SQL Server.",
+ "loc.input.label.SqlUsername": "Nombre de usuario de SQL",
+ "loc.input.help.SqlUsername": "Si se especifica el inicio de sesión de SQL Server, se usará este para conectarse a SQL Server. El valor predeterminado es Autenticación integrada y usa las credenciales del administrador de la máquina.",
+ "loc.input.label.SqlPassword": "Contraseña de SQL",
+ "loc.input.help.SqlPassword": "Si se especifica el nombre de usuario de inicio de sesión de SQL Server, indique la contraseña de SQL Server. El valor predeterminado es Autenticación integrada y usa las credenciales del administrador de la máquina.",
+ "loc.input.label.ConnectionString": "Cadena de conexión",
+ "loc.input.help.ConnectionString": "Especifique la cadena de conexión de SQL Server, como \"Server=localhost;Database=Fabrikam;User ID=sqluser;Password=password;\".",
+ "loc.input.label.PublishProfile": "Perfil de publicación",
+ "loc.input.help.PublishProfile": "El perfil de publicación proporciona control específico sobre la creación o las actualizaciones de la base de datos de SQL Server. Especifique la ruta de acceso al archivo XML del perfil de publicación en el equipo de destino o en un recurso compartido UNC que sea accesible con las credenciales del administrador del equipo.",
+ "loc.input.label.AdditionalArguments": "Argumentos adicionales",
+ "loc.input.help.AdditionalArguments": "Argumentos adicionales de SqlPackage.exe que se aplicarán al crear o actualizar la base de datos de SQL Server, como /p:IgnoreAnsiNulls=True /p:IgnoreComments=True. Estos argumentos reemplazarán la configuración del archivo XML del perfil de publicación (si se proporciona).",
+ "loc.input.label.DeployInParallel": "Implementar en paralelo",
+ "loc.input.help.DeployInParallel": "Si se establece en true, la tarea de implementación de la base de datos se ejecutará en paralelo en las máquinas de destino.",
+ "loc.input.label.ResourceFilteringMethod": "Seleccionar máquinas por",
+ "loc.input.help.ResourceFilteringMethod": "También puede seleccionar un subconjunto de máquinas especificando nombres de máquina o etiquetas.",
+ "loc.input.label.MachineFilter": "Implementar en máquinas",
+ "loc.input.help.MachineFilter": "Esta entrada solo es válida para los grupos de máquinas y no se admite para una lista plana de máquinas o de variables de salida. Proporcione una lista de máquinas (como dbserver.fabrikam.com, webserver.fabrikam.com o 192.168.12.34) o etiquetas (como Role:DB; OS:Win8.1). Si se proporcionan varias etiquetas, la tarea se ejecutará en todas las máquinas que tengan las etiquetas especificadas. Para los grupos de recursos de Azure, proporcione el nombre de la máquina virtual, como ffweb o ffdb. La opción predeterminada es ejecutar la tarea en todas las máquinas."
+}
\ No newline at end of file
diff --git a/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/fr-fr/resources.resjson b/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/fr-fr/resources.resjson
new file mode 100644
index 000000000000..0b92fe4bd11c
--- /dev/null
+++ b/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/fr-fr/resources.resjson
@@ -0,0 +1,43 @@
+{
+ "loc.friendlyName": "[Déconseillé] Déploiement de base de données SQL Server",
+ "loc.helpMarkDown": "[More Information](https://aka.ms/sqlserverdacpackreadme)",
+ "loc.description": "Déployer la base de données SQL Server avec DACPAC",
+ "loc.instanceNameFormat": "[Déconseillé] Déployer SQL DACPAC : $(DacpacFile)",
+ "loc.group.displayName.deployment": "Déploiement",
+ "loc.group.displayName.target": "Cible",
+ "loc.group.displayName.advanced": "Avancé",
+ "loc.input.label.EnvironmentName": "Ordinateurs",
+ "loc.input.help.EnvironmentName": "Indiquez une liste d'adresses IP ou de noms de domaine complets de machines avec les ports séparés par une virgule. Le port par défaut dépend du protocole sélectionné. Exemple : dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986 Ou indiquez une variable de sortie d'autres tâches. Exemple : $(variableName)",
+ "loc.input.label.AdminUserName": "Informations de connexion d'administrateur",
+ "loc.input.help.AdminUserName": "Informations de connexion d'administrateur pour les ordinateurs cibles.",
+ "loc.input.label.AdminPassword": "Mot de passe",
+ "loc.input.help.AdminPassword": "Mot de passe d'administrateur pour les machines cibles. Il peut accepter une variable définie dans les définitions Build/Release sous la forme '$(passwordVariable)'. Vous pouvez marquer le type de variable en tant que 'secret' pour renforcer sa sécurité. ",
+ "loc.input.label.Protocol": "Protocole",
+ "loc.input.help.Protocol": "Sélectionnez le protocole à utiliser pour la connexion WinRM avec les machines. La valeur par défaut est HTTPS.",
+ "loc.input.label.TestCertificate": "Certificat de test",
+ "loc.input.help.TestCertificate": "Sélectionnez l'option pour ignorer l'étape de validation de l'authenticité du certificat de l'ordinateur par une autorité de certification approuvée. Le paramètre est requis pour le protocole HTTPS WinRM.",
+ "loc.input.label.DacpacFile": "Fichier DACPAC",
+ "loc.input.help.DacpacFile": "Emplacement du fichier DACPAC sur les machines cibles ou dans un chemin d'accès UNC, tel que \\\\\\\\BudgetIT\\Web\\Deploy\\FabrikamDB.dacpac. Ce chemin d'accès UNC doit être accessible au compte Administrateur de la machine. Vous pouvez également utiliser des variables d'environnement, telles que $env:windir, $env:systemroot, like, $env:windir\\FabrikamFibre\\Web.",
+ "loc.input.label.TargetMethod": "Spécifier l'utilisation de SQL",
+ "loc.input.help.TargetMethod": "Sélectionnez l'option permettant de se connecter à la base de données SQL Server cible. Spécifiez les détails de la base de données SQL Server, une chaîne de connexion SQL Server ou un fichier XML de profil de publication.",
+ "loc.input.label.ServerName": "Nom du serveur",
+ "loc.input.help.ServerName": "Spécifiez le nom du serveur SQL Server, tel que machinename\\FabriakmSQL,1433 ou localhost ou .\\SQL2012R2. Utilisez localhost pour une connexion à l'instance SQL Server par défaut sur la machine.",
+ "loc.input.label.DatabaseName": "Nom de la base de données",
+ "loc.input.help.DatabaseName": "Spécifiez le nom de la base de données SQL Server.",
+ "loc.input.label.SqlUsername": "Nom d'utilisateur SQL",
+ "loc.input.help.SqlUsername": "Si les informations de connexion SQL Server sont spécifiées, elles sont utilisées pour la connexion à SQL Server. Par défaut, l'authentification intégrée est utilisée, avec les informations d'identification de l'administrateur de la machine.",
+ "loc.input.label.SqlPassword": "Mot de passe SQL",
+ "loc.input.help.SqlPassword": "Si le nom d'utilisateur de connexion SQL Server est spécifié, spécifiez le mot de passe SQL Server. Par défaut, l'authentification intégrée est utilisée, avec les informations d'identification de l'administrateur de la machine.",
+ "loc.input.label.ConnectionString": "Chaîne de connexion",
+ "loc.input.help.ConnectionString": "Spécifiez la chaîne de connexion SQL Server, telle que \"Server=localhost;Database=Fabrikam;User ID=sqluser;Password=password;\".",
+ "loc.input.label.PublishProfile": "Profil de publication",
+ "loc.input.help.PublishProfile": "Le profil de publication permet de contrôler précisément les opérations de création ou de mise à niveau de la base de données SQL Server. Spécifiez le chemin d'accès au fichier XML du profil de publication sur la machine cible ou sur un partage UNC accessible au compte Administrateur de la machine.",
+ "loc.input.label.AdditionalArguments": "Arguments supplémentaires",
+ "loc.input.help.AdditionalArguments": "Arguments SqlPackage.exe supplémentaires qui seront appliqués à la création ou la mise à jour de la base de données SQL Server, tels que /p:IgnoreAnsiNulls=True /p:IgnoreComments=True. Ces arguments remplaceront les paramètres définis dans le fichier XML du profil de publication (le cas échéant).",
+ "loc.input.label.DeployInParallel": "Déployer en parallèle",
+ "loc.input.help.DeployInParallel": "Si la valeur est true, la tâche de déploiement de la base de données est exécutée en parallèle sur les machines cibles.",
+ "loc.input.label.ResourceFilteringMethod": "Sélectionner les machines par",
+ "loc.input.help.ResourceFilteringMethod": "Vous pouvez également sélectionner un sous-ensemble de machines en spécifiant les noms des machines ou les balises associées.",
+ "loc.input.label.MachineFilter": "Déployer sur les ordinateurs",
+ "loc.input.help.MachineFilter": "Cette entrée est valide uniquement pour les groupes de machines. Elle n'est pas encore prise en charge pour une liste plate de machines ou de variables de sortie. Indiquez une liste de machines, par exemple dbserver.fabrikam.com, webserver.fabrikam.com, 192.168.12.34, ou utilisez des balises telles que Role:DB; OS:Win8.1. Si plusieurs balises sont indiquées, la tâche s'exécute sur toutes les machines correspondant aux balises spécifiées. Pour les groupes de ressources Azure, indiquez le nom de la machine virtuelle, par exemple ffweb, ffdb. Par défaut, la tâche s'exécute sur toutes les machines."
+}
\ No newline at end of file
diff --git a/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/it-IT/resources.resjson b/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/it-IT/resources.resjson
new file mode 100644
index 000000000000..f31755af70e0
--- /dev/null
+++ b/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/it-IT/resources.resjson
@@ -0,0 +1,43 @@
+{
+ "loc.friendlyName": "[Deprecata] Distribuzione database SQL Server",
+ "loc.helpMarkDown": "[More Information](https://aka.ms/sqlserverdacpackreadme)",
+ "loc.description": "Consente di distribuire il database SQL Server con DACPAC",
+ "loc.instanceNameFormat": "[Deprecata] Distribuisci DACPAC SQL: $(DacpacFile)",
+ "loc.group.displayName.deployment": "Distribuzione",
+ "loc.group.displayName.target": "Destinazione",
+ "loc.group.displayName.advanced": "Avanzate",
+ "loc.input.label.EnvironmentName": "Computer",
+ "loc.input.help.EnvironmentName": "Consente di specificare un elenco di indirizzi IP o FQDN separati da virgola unitamente alle porte. Per impostazione predefinita, la porta è basata sul protocollo selezionato. Esempio: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986 In alternativa, consente di specificare la variabile di output di altre attività. Esempio: $(variableName)",
+ "loc.input.label.AdminUserName": "Account di accesso amministratore",
+ "loc.input.help.AdminUserName": "Account di accesso dell'amministratore per i computer di destinazione.",
+ "loc.input.label.AdminPassword": "Password",
+ "loc.input.help.AdminPassword": "Password dell'amministratore per i computer di destinazione. Accetta la variabile definita nelle definizioni di compilazione/versione come '$(passwordVariable)'. Per proteggerla, è possibile contrassegnare il tipo di variabile come 'secret'. ",
+ "loc.input.label.Protocol": "Protocollo",
+ "loc.input.help.Protocol": "Consente di selezionare il protocollo da usare per la connessione WinRM con i computer. Il valore predefinito è HTTPS.",
+ "loc.input.label.TestCertificate": "Certificato di test",
+ "loc.input.help.TestCertificate": "Consente di selezionare l'opzione per ignorare la convalida dell'autenticità del certificato del computer da parte di un'Autorità di certificazione attendibile. Il parametro è obbligatorio per il protocollo HTTPS di WinRM.",
+ "loc.input.label.DacpacFile": "File DACPAC",
+ "loc.input.help.DacpacFile": "Percorso del file DACPAC nei computer di destinazione o in un percorso UNC, ad esempio \\\\\\\\BudgetIT\\Web\\Deploy\\FabrikamDB.dacpac. Il percorso UNC deve essere accessibile all'account Administrator del computer. Sono supportate anche variabili di ambiente come $env:windir, $env:systemroot, $env:windir\\FabrikamFibre\\Web.",
+ "loc.input.label.TargetMethod": "Specifica SQL tramite",
+ "loc.input.help.TargetMethod": "Selezionare l'opzione per la connessione al database SQL Server di destinazione. Le opzioni disponibili consentono di specificare i dettagli relativi al database SQL Server, una stringa di connessione a SQL Server oppure un file XML del profilo di pubblicazione.",
+ "loc.input.label.ServerName": "Nome server",
+ "loc.input.help.ServerName": "Consente di specificare il nome dell'istanza di SQL Server, ad esempio nomecomputer\\FabrikamSQL,1433, localhost oppure .\\SQL2012R2. Se si specifica localhost, verrà effettuata la connessione all'istanza predefinita di SQL Server nel computer.",
+ "loc.input.label.DatabaseName": "Nome database",
+ "loc.input.help.DatabaseName": "Specificare il nome del database SQL Server.",
+ "loc.input.label.SqlUsername": "Nome utente SQL",
+ "loc.input.help.SqlUsername": "Se si specifica l'account di accesso di SQL Server, questo verrà usato per la connessione a SQL Server. Con l'impostazione predefinita, ovvero l'autenticazione integrata, vengono usate le credenziali dell'amministratore del computer.",
+ "loc.input.label.SqlPassword": "Password SQL",
+ "loc.input.help.SqlPassword": "Se si specifica il nome utente di accesso di SQL Server, fornire la password di SQL Server. Con l'impostazione predefinita, ovvero l'autenticazione integrata, vengono usate le credenziali dell'amministratore del computer.",
+ "loc.input.label.ConnectionString": "Stringa di connessione",
+ "loc.input.help.ConnectionString": "Consente di specificare la stringa di connessione di SQL Server, ad esempio \"Server=localhost;Database=Fabrikam;User ID=sqluser;Password=password;\".",
+ "loc.input.label.PublishProfile": "Profilo di pubblicazione",
+ "loc.input.help.PublishProfile": "Il profilo di pubblicazione consente di disporre di un controllo più specifico sulla creazione o sugli aggiornamenti del database SQL Server. Specificare il percorso del file XML del profilo di pubblicazione nel computer di destinazione oppure in una condivisione UNC accessibile con le credenziali dell'amministratore del computer.",
+ "loc.input.label.AdditionalArguments": "Argomenti aggiuntivi",
+ "loc.input.help.AdditionalArguments": "Argomenti aggiuntivi di SqlPackage.exe che verranno applicati durante la creazione o l'aggiornamento del database SQL Server, ad esempio /p:IgnoreAnsiNulls=True /p:IgnoreComments=True. Questi argomenti sostituiranno le impostazioni nel file XML del profilo di pubblicazione (se specificato).",
+ "loc.input.label.DeployInParallel": "Distribuisci in parallelo",
+ "loc.input.help.DeployInParallel": "Se è impostato su true, l'attività di distribuzione del database verrà eseguita in parallelo nei computer di destinazione.",
+ "loc.input.label.ResourceFilteringMethod": "Seleziona computer per",
+ "loc.input.help.ResourceFilteringMethod": "Selezionare, facoltativamente, un sottoinsieme di computer specificando nomi o tag dei computer.",
+ "loc.input.label.MachineFilter": "Distribuisci in computer",
+ "loc.input.help.MachineFilter": "Questo input è valido solo per gruppi di computer e non è ancora supportato per elenchi semplici di computer o variabili di output. Consente di specificare un elenco di computer come dbserver.fabrikam.com, webserver.fabrikam.com, 192.168.12.34 o tag come Role:DB; OS:Win8.1. Se vengono specificati più tag, l'attività verrà eseguita in tutti i computer con i tag specificati. Per Gruppo di risorse di Azure specificare il nome della macchina virtuale, ad esempio ffweb o ffdb. Per impostazione predefinita, l'attività viene eseguita in tutti i computer."
+}
\ No newline at end of file
diff --git a/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/ja-jp/resources.resjson b/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/ja-jp/resources.resjson
new file mode 100644
index 000000000000..8bcf6274f13b
--- /dev/null
+++ b/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/ja-jp/resources.resjson
@@ -0,0 +1,43 @@
+{
+ "loc.friendlyName": "[非推奨] SQL Server データベースの配置",
+ "loc.helpMarkDown": "[More Information](https://aka.ms/sqlserverdacpackreadme)",
+ "loc.description": "DACPAC を使用して SQL Server Database を配置します",
+ "loc.instanceNameFormat": "[非推奨] SQL DACPAC の配置: $(DacpacFile)",
+ "loc.group.displayName.deployment": "配置",
+ "loc.group.displayName.target": "ターゲット ",
+ "loc.group.displayName.advanced": "詳細設定 ",
+ "loc.input.label.EnvironmentName": "コンピューター",
+ "loc.input.help.EnvironmentName": "コンピューターの IP アドレスまたは FQDN とポートのコンマ区切り一覧を指定します。ポートは選んだプロトコルに基づいて既定値に設定されます。 例: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986 または他のタスクの出力変数を指定します。例: $(variableName)",
+ "loc.input.label.AdminUserName": "管理者ログイン",
+ "loc.input.help.AdminUserName": "ターゲット コンピューターの管理者ログイン。",
+ "loc.input.label.AdminPassword": "パスワード",
+ "loc.input.help.AdminPassword": "対象のコンピューターの管理者パスワード。 ビルド/リリース定義で '$(passwordVariable)' として定義された変数を受け入れることができます。 変数タイプを 'シークレット' とマークして保護することもできます。",
+ "loc.input.label.Protocol": "プロトコル",
+ "loc.input.help.Protocol": "コンピューターとの WinRM 接続に使用するプロトコルを選びます。既定は HTTPS です。",
+ "loc.input.label.TestCertificate": "証明書のテスト",
+ "loc.input.help.TestCertificate": "信頼された証明機関によるコンピューターの証明書の信頼性の検証をスキップするにはこのオプションを選びます。WinRM HTTPS プロトコルにはこのパラメーターが必要です。",
+ "loc.input.label.DacpacFile": "DACPAC ファイル",
+ "loc.input.help.DacpacFile": "対象のコンピューターまたは UNC パス上の DACPAC ファイルの場所 (\\\\\\\\BudgetIT\\Web\\Deploy\\FabrikamDB.dacpac など)。この UNC パスはコンピューターの管理者アカウントでアクセスできる必要があります。また、環境変数 ($env:windir、$env:systemroot、$env:windir\\FabrikamFibre\\Web など) もサポートされます。",
+ "loc.input.label.TargetMethod": "次を使用して、SQL を指定します",
+ "loc.input.help.TargetMethod": "対象の SQL Server Database に接続するオプションを選択します。このオプションを選ぶと SQL Server Database の詳細か SQL Server 接続文字列、または発行プロファイル XML ファイルが提供されます。",
+ "loc.input.label.ServerName": "サーバー名 ",
+ "loc.input.help.ServerName": "SQL Server 名 (machinename\\FabriakmSQL,1433、localhost、\\SQL2012R2 など) を指定します。localhost を 指定すると、コンピューター上の既定の SQL サーバー インスタンスに接続されます。",
+ "loc.input.label.DatabaseName": "データベース名 ",
+ "loc.input.help.DatabaseName": "SQL Server データベースの名前を指定します。",
+ "loc.input.label.SqlUsername": "SQL ユーザー名",
+ "loc.input.help.SqlUsername": "SQL Server ログインが指定されると、SQL Server への接続に使用されます。既定では統合認証が用いられ、コンピューターの管理者の資格情報が使用されます。",
+ "loc.input.label.SqlPassword": "SQL パスワード ",
+ "loc.input.help.SqlPassword": "SQL Server ログイン ユーザー名が指定されると、SQL Server パスワードが求められます。既定では統合認証が用いられ、コンピューターの管理者の資格情報が使用されます。",
+ "loc.input.label.ConnectionString": "接続文字列 ",
+ "loc.input.help.ConnectionString": "SQL Server 接続文字列 (\"Server=localhost;Database=Fabrikam;User ID=sqluser;Password=password;\" など) を指定します。",
+ "loc.input.label.PublishProfile": "発行プロファイル",
+ "loc.input.help.PublishProfile": "発行プロファイルを使用すると、SQL Server データベースの作成またはアップグレードを詳細に制御できるようになります。コンピューターの管理者資格情報でアクセスできるターゲット コンピューターまたは UNC 共有上で、発行プロファイル XML ファイルへのパスを指定します。",
+ "loc.input.label.AdditionalArguments": "追加引数 ",
+ "loc.input.help.AdditionalArguments": "SQL Server database の作成中または更新中に適用される SqlPackage.exe 追加引数 (/p:IgnoreAnsiNulls=True /p:IgnoreComments=True など)。これらの引数は発行プロファイル XML ファイルの設定を上書きします (提供される場合)。",
+ "loc.input.label.DeployInParallel": "並列で展開",
+ "loc.input.help.DeployInParallel": "「true」に設定すると、ターゲット コンピューター上でデータベース配置を並列で実行します。",
+ "loc.input.label.ResourceFilteringMethod": "以下の条件でコンピューターを選択",
+ "loc.input.help.ResourceFilteringMethod": "必要に応じて、コンピューター名またはタグを指定してコンピューターのサブセットを選びます。",
+ "loc.input.label.MachineFilter": "コンピューターに展開",
+ "loc.input.help.MachineFilter": "この入力はコンピューター グループでのみ使用でき、コンピューターまたは出力変数の単純なリストではまだサポートされていません。コンピューターのリスト (dbserver.fabrikam.com, webserver.fabrikam.com, 192.168.12.34 など)、またはタグのリスト (Role:DB; OS:Win8.1) をご指定ください。複数のタグを指定した場合、指定されたタグを持つすべてのコンピューターでタスクが実行されます。Azure リソース グループの場合は、ffweb または ffdb のような仮想マシン名をご指定ください。既定値ではタスクがすべてのコンピューターで実行されます。"
+}
\ No newline at end of file
diff --git a/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/ko-KR/resources.resjson b/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/ko-KR/resources.resjson
new file mode 100644
index 000000000000..1bb4744c63e6
--- /dev/null
+++ b/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/ko-KR/resources.resjson
@@ -0,0 +1,43 @@
+{
+ "loc.friendlyName": "[사용되지 않음] SQL Server 데이터베이스 배포",
+ "loc.helpMarkDown": "[More Information](https://aka.ms/sqlserverdacpackreadme)",
+ "loc.description": "DACPAC를 사용하여 SQL Server 데이터베이스 배포",
+ "loc.instanceNameFormat": "[사용되지 않음] SQL DACPAC 배포: $(DacpacFile)",
+ "loc.group.displayName.deployment": "배포",
+ "loc.group.displayName.target": "대상",
+ "loc.group.displayName.advanced": "고급",
+ "loc.input.label.EnvironmentName": "컴퓨터",
+ "loc.input.help.EnvironmentName": "포트와 함께 쉼표로 구분된 컴퓨터 IP 주소 또는 FQDN 목록을 제공하세요. 포트의 기본값이 선택된 프로토콜을 기준으로 설정되었습니다. 예: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986 또는 다른 작업의 출력 변수를 제공하세요. 예: $(variableName)",
+ "loc.input.label.AdminUserName": "관리자 로그인",
+ "loc.input.help.AdminUserName": "대상 컴퓨터에 대한 관리자 로그인입니다.",
+ "loc.input.label.AdminPassword": "암호",
+ "loc.input.help.AdminPassword": "대상 컴퓨터에 대한 관리자 암호입니다. 빌드/릴리스 정의에 '$(passwordVariable)'(으)로 정의된 변수를 사용할 수 있습니다. 보호하기 위해 변수 형식을 'secret'으로 표시할 수 있습니다.",
+ "loc.input.label.Protocol": "프로토콜",
+ "loc.input.help.Protocol": "컴퓨터와의 WinRM 연결에 사용할 프로토콜을 선택하세요. 기본값은 HTTPS입니다.",
+ "loc.input.label.TestCertificate": "테스트 인증서",
+ "loc.input.help.TestCertificate": "신뢰할 수 있는 인증 기관의 컴퓨터 인증서 신뢰성 확인을 건너뛰려면 이 옵션을 선택하세요. WinRM HTTPS 프로토콜에는 매개 변수가 필요합니다.",
+ "loc.input.label.DacpacFile": "DACPAC 파일",
+ "loc.input.help.DacpacFile": "대상 컴퓨터 또는 UNC 경로의 DACPAC 파일 위치입니다(예: \\\\\\\\BudgetIT\\Web\\Deploy\\FabrikamDB.dacpac). UNC 경로는 컴퓨터의 관리자 계정이 액세스할 수 있어야 합니다. 환경 변수(예: $env:windir, $env:systemroot, $env:windir\\FabrikamFibre\\Web)도 지원됩니다.",
+ "loc.input.label.TargetMethod": "SQL 지정 방법",
+ "loc.input.help.TargetMethod": "대상 SQL Server 데이터베이스에 연결하는 옵션을 선택합니다. 옵션은 SQL Server 데이터베이스 정보, SQL Server 연결 문자열 또는 게시 프로필 XML 파일을 제공하는 것입니다.",
+ "loc.input.label.ServerName": "서버 이름",
+ "loc.input.help.ServerName": "SQL Server 이름(예: machinename\\FabriakmSQL,1433 또는 localhost 또는 .\\SQL2012R2)을 제공합니다. localhost를 지정하면 컴퓨터의 기본 SQL Server 인스턴스에 연결됩니다.",
+ "loc.input.label.DatabaseName": "데이터베이스 이름",
+ "loc.input.help.DatabaseName": "SQL Server 데이터베이스의 이름을 제공합니다.",
+ "loc.input.label.SqlUsername": "SQL 사용자 이름",
+ "loc.input.help.SqlUsername": "SQL Server 로그인이 지정된 경우 SQL Server에 연결하는 데 사용됩니다. 기본값은 통합 인증이며 컴퓨터 관리자의 자격 증명을 사용합니다.",
+ "loc.input.label.SqlPassword": "SQL 암호",
+ "loc.input.help.SqlPassword": "SQL Server 로그인 사용자 이름이 지정된 경우 SQL Server 암호를 제공합니다. 기본값은 통합 인증이며 컴퓨터 관리자의 자격 증명을 사용합니다.",
+ "loc.input.label.ConnectionString": "연결 문자열",
+ "loc.input.help.ConnectionString": "SQL Server 연결 문자열(예: \"Server=localhost;Database=Fabrikam;User ID=sqluser;Password=password;\")을 지정합니다.",
+ "loc.input.label.PublishProfile": "게시 프로필",
+ "loc.input.help.PublishProfile": "게시 프로필은 SQL Server 데이터베이스 생성 또는 업그레이드에 대한 세분화된 제어를 제공합니다. 대상 컴퓨터 또는 컴퓨터 관리자의 자격 증명으로 액세스할 수 있는 UNC 공유의 게시 프로필 XML 파일에 대한 경로를 지정하세요.",
+ "loc.input.label.AdditionalArguments": "추가 인수",
+ "loc.input.help.AdditionalArguments": "SQL Server 데이터베이스를 만들거나 업데이트할 때 적용될 추가 SqlPackage.exe 인수입니다(예: /p:IgnoreAnsiNulls=True /p:IgnoreComments=True). 이러한 인수는 게시 프로필 XML 파일(제공된 경우)의 설정을 재정의합니다.",
+ "loc.input.label.DeployInParallel": "동시 배포",
+ "loc.input.help.DeployInParallel": "true로 설정하면 대상 컴퓨터에서 데이터베이스 배포 작업이 동시에 실행됩니다.",
+ "loc.input.label.ResourceFilteringMethod": "컴퓨터 선택 기준",
+ "loc.input.help.ResourceFilteringMethod": "필요한 경우 컴퓨터 이름 또는 태그를 제공하여 컴퓨터의 하위 집합을 선택합니다.",
+ "loc.input.label.MachineFilter": "컴퓨터에 배포",
+ "loc.input.help.MachineFilter": "이 입력은 컴퓨터 그룹에만 유효하며 컴퓨터 또는 변수의 단순 목록에는 아직 지원되지 않습니다. dbserver.fabrikam.com, webserver.fabrikam.com, 192.168.12.34 등과 같은 컴퓨터나 Role:DB; OS:Win8.1 등과 같은 태그 목록을 지정하세요 여러 태그를 지정하는 경우 지정된 태그가 포함된 모든 컴퓨터에서 작업이 실행됩니다. Azure 리소스 그룹의 경우 ffweb, ffdb 등과 같은 가상 컴퓨터 이름을 지정하세요. 기본값은 모든 컴퓨터에서 실행하는 것입니다."
+}
\ No newline at end of file
diff --git a/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/ru-RU/resources.resjson b/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/ru-RU/resources.resjson
new file mode 100644
index 000000000000..2c7a1844ec96
--- /dev/null
+++ b/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/ru-RU/resources.resjson
@@ -0,0 +1,43 @@
+{
+ "loc.friendlyName": "[Не рекомендуется] Развертывание базы данных SQL Server",
+ "loc.helpMarkDown": "[More Information](https://aka.ms/sqlserverdacpackreadme)",
+ "loc.description": "Развертывание базы данных SQL Server с помощью DACPAC",
+ "loc.instanceNameFormat": "[Не рекомендуется] Развертывание DACPAC-файла SQL: $(DacpacFile)",
+ "loc.group.displayName.deployment": "Развертывание",
+ "loc.group.displayName.target": "Целевой объект",
+ "loc.group.displayName.advanced": "Дополнительно",
+ "loc.input.label.EnvironmentName": "Компьютеры",
+ "loc.input.help.EnvironmentName": "Укажите разделенный запятыми список IP-адресов компьютеров или полных доменных имен вместе с портами. Порт по умолчанию выбирается исходя из используемого протокола. Например: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986 Или укажите выходную переменную из других задач. Например: $(variableName)",
+ "loc.input.label.AdminUserName": "Имя для входа администратора",
+ "loc.input.help.AdminUserName": "Имя для входа администратора для целевых компьютеров.",
+ "loc.input.label.AdminPassword": "Пароль",
+ "loc.input.help.AdminPassword": "Пароль администратора для целевых компьютеров. Он может принять переменную, заданную в определениях сборки или выпуска в качестве \"$(passwordVariable)\". Вы можете отметить тип переменной как \"secret\", чтобы защитить ее. ",
+ "loc.input.label.Protocol": "Протокол",
+ "loc.input.help.Protocol": "Выберите протокол, используемый в WinRM-подключениях к компьютерам. Значение по умолчанию — HTTPS.",
+ "loc.input.label.TestCertificate": "Тестовый сертификат",
+ "loc.input.help.TestCertificate": "Выберите этот параметр, чтобы пропустить проверку достоверности сертификата компьютера доверенным центром сертификации. Параметр обязателен для протокола WinRM HTTPS.",
+ "loc.input.label.DacpacFile": "DACPAC-файл",
+ "loc.input.help.DacpacFile": "Расположение DACPAC-файла на целевых машинах или по UNC-пути, например \\\\\\\\BudgetIT\\Web\\Deploy\\FabrikamDB.dacpac. UNC-путь должен быть доступен для учетной записи администратора машины. Также можно использовать переменные среды, например $env:windir\\FabrikamFibre\\Web.",
+ "loc.input.label.TargetMethod": "Указать SQL с помощью",
+ "loc.input.help.TargetMethod": "Выберите вариант подключения к целевой базе данных SQL Server. Доступные варианты: указать сведения о базе данных SQL Server, строку подключения SQL Server или файл профиля публикации.",
+ "loc.input.label.ServerName": "Имя сервера",
+ "loc.input.help.ServerName": "Укажите имя SQL Server, например machinename\\FabriakmSQL,1433 или localhost или .\\SQL2012R2. Если указать localhost, то будет выполнено подключение к экземпляру SQL Server по умолчанию на машине.",
+ "loc.input.label.DatabaseName": "Имя базы данных",
+ "loc.input.help.DatabaseName": "Укажите имя базы данных SQL Server.",
+ "loc.input.label.SqlUsername": "Имя пользователя SQL",
+ "loc.input.help.SqlUsername": "Если указано имя для входа SQL Server, то оно будет использоваться для подключения к SQL Server. Значение по умолчанию — встроенная проверка подлинности с использованием учетных данных администратора машины.",
+ "loc.input.label.SqlPassword": "Пароль SQL",
+ "loc.input.help.SqlPassword": "Если указано имя для входа пользователя SQL Server, укажите пароль SQL Server. Значение по умолчанию — встроенная проверка подлинности с использованием учетных данных администратора компьютера.",
+ "loc.input.label.ConnectionString": "Строка подключения",
+ "loc.input.help.ConnectionString": "Укажите строку подключения SQL Server, например \"Server=localhost;Database=Fabrikam;User ID=sqluser;Password=password;\".",
+ "loc.input.label.PublishProfile": "Профиль публикации",
+ "loc.input.help.PublishProfile": "Профиль публикации обеспечивает точное управление созданием и обновлением базы данных SQL Server. Укажите путь к XML-файлу профиля публикации на целевом компьютере или в общем ресурсе UNC, доступный с помощью учетных данных администратора компьютера.",
+ "loc.input.label.AdditionalArguments": "Дополнительные аргументы",
+ "loc.input.help.AdditionalArguments": "Дополнительные аргументы SqlPackage.exe, которые будут применены при создании или обновлении базы данных SQL Server, например /p:IgnoreAnsiNulls=True /p:IgnoreComments=True. Эти аргументы имеют приоритет над параметрами в XML-файле профиля публикации (если он указан).",
+ "loc.input.label.DeployInParallel": "Параллельное развертывание",
+ "loc.input.help.DeployInParallel": "Если задано значение \"True\", будут одновременно запущены задачи развертывания баз данных на целевых машинах.",
+ "loc.input.label.ResourceFilteringMethod": "Выбор компьютеров по",
+ "loc.input.help.ResourceFilteringMethod": "Как вариант, выберите подмножество компьютеров, указав их имена или теги.",
+ "loc.input.label.MachineFilter": "Развертывание на компьютерах",
+ "loc.input.help.MachineFilter": "Входные данные допустимы только для групп компьютеров и пока не поддерживаются для плоского списка компьютеров или выходных переменных. Укажите список компьютеров, например, dbserver.fabrikam.com, webserver.fabrikam.com, 192.168.12.34 или теги, такие как Role:DB; OS:Win8.1. Если указано несколько тегов, задача будет выполняться на всех компьютерах с указанными тегами. Для групп ресурсов Azure укажите имя виртуальной машины (например, ffweb, ffdb). Поведение по умолчанию — запуск задачи на всех компьютерах."
+}
\ No newline at end of file
diff --git a/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/zh-CN/resources.resjson b/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/zh-CN/resources.resjson
new file mode 100644
index 000000000000..ef56f6c8613b
--- /dev/null
+++ b/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/zh-CN/resources.resjson
@@ -0,0 +1,43 @@
+{
+ "loc.friendlyName": "[已弃用] SQL Server 数据库部署",
+ "loc.helpMarkDown": "[More Information](https://aka.ms/sqlserverdacpackreadme)",
+ "loc.description": "使用 DACPAC 部署 SQL Server 数据库",
+ "loc.instanceNameFormat": "[已弃用]部署 SQL DACPAC: $(DacpacFile)",
+ "loc.group.displayName.deployment": "部署",
+ "loc.group.displayName.target": "目标",
+ "loc.group.displayName.advanced": "高级",
+ "loc.input.label.EnvironmentName": "计算机",
+ "loc.input.help.EnvironmentName": "提供以逗号分隔的计算机 IP 地址或 FQDN 以及端口列表。端口默认基于选定的协议。 例如: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986 或者提供其他任务的输出变量。例如: $(variableName)",
+ "loc.input.label.AdminUserName": "管理员登录名",
+ "loc.input.help.AdminUserName": "目标计算机的管理员登录名。",
+ "loc.input.label.AdminPassword": "密码",
+ "loc.input.help.AdminPassword": "目标计算机的管理员密码。 可接受“生成/发布”定义中定义为 \"$(passwordVariable)\" 的变量。 你可将变量类型标记为“机密”来进行保护。",
+ "loc.input.label.Protocol": "协议",
+ "loc.input.help.Protocol": "选择与计算机进行 WinRM 连接时使用的协议。默认为 HTTPS.",
+ "loc.input.label.TestCertificate": "测试证书",
+ "loc.input.help.TestCertificate": "选择跳过验证计算机的证书是否真正由受信任的证书颁发机构签署的选项。WinRM HTTPS 协议需要该参数。",
+ "loc.input.label.DacpacFile": "DACPAC 文件",
+ "loc.input.help.DacpacFile": "目标计算机上或 UNC 路径上 DACPAC 文件的位置,如 \\\\\\\\BudgetIT\\Web\\Deploy\\FabrikamDB.dacpac。计算机的管理员帐户应可访问 UNC 路径。还支持环境变量,如 $env:windir、$env:systemroot 和 $env:windir\\FabrikamFibre\\Web。",
+ "loc.input.label.TargetMethod": "使用以下方法指定 SQL:",
+ "loc.input.help.TargetMethod": "选择该选项可连接到目标 SQL Server 数据库。相关选项用于提供 SQL Server 数据库详细信息、SQL Server 连接字符串或发布配置文件 XML 文件。",
+ "loc.input.label.ServerName": "服务器名",
+ "loc.input.help.ServerName": "提供 SQL Server 名称,如 machinename\\FabriakmSQL,1433、localhost 或 .\\SQL2012R2。指定 localhost 将会连接到计算机上的默认 SQL Server 实例。",
+ "loc.input.label.DatabaseName": "数据库名",
+ "loc.input.help.DatabaseName": "提供 SQL Server 数据库的名称。",
+ "loc.input.label.SqlUsername": "SQL 用户名",
+ "loc.input.help.SqlUsername": "如果指定了 SQL Server 登录名,则该登录名将用于连接到 SQL Server。默认为集成身份验证,并使用计算机管理员的凭据。",
+ "loc.input.label.SqlPassword": "SQL 密码",
+ "loc.input.help.SqlPassword": "如果指定了 SQL Server 登录用户名,则请提供 SQL Server 密码。默认为集成身份验证,并使用计算机管理员的凭据。",
+ "loc.input.label.ConnectionString": "连接字符串",
+ "loc.input.help.ConnectionString": "指定 SQL Server 连接字符串,如 \"Server=localhost;Database=Fabrikam;User ID=sqluser;Password=password;\"。",
+ "loc.input.label.PublishProfile": "发布配置文件",
+ "loc.input.help.PublishProfile": "发布配置文件提供对 SQL Server 数据库创建或升级的细化控制。指定目标计算机上或可通过计算机管理员的凭据访问的 UNC 共享上的发布配置文件 XML 文件的路径。",
+ "loc.input.label.AdditionalArguments": "其他参数",
+ "loc.input.help.AdditionalArguments": "创建或更新 SQL Server 数据库时将应用的其他 SqlPackage.exe 参数,如 /p:IgnoreAnsiNulls=True /p:IgnoreComments=True。这些参数将替代发布配置文件 XML 文件(如果提供)中的设置。",
+ "loc.input.label.DeployInParallel": "并行部署",
+ "loc.input.help.DeployInParallel": "将其设置为 true 会在目标计算机上并行运行数据库部署任务。",
+ "loc.input.label.ResourceFilteringMethod": "计算机选择依据",
+ "loc.input.help.ResourceFilteringMethod": "(可选)通过提供计算机名或标记来选择计算机的子集。",
+ "loc.input.label.MachineFilter": "部署到计算机",
+ "loc.input.help.MachineFilter": "此输入仅对计算机组有效,且尚不支持计算机或输出变量的简单列表。提供计算机列表(如 dbserver.fabrikam.com, webserver.fabrikam.com, 192.168.12.34)或标记列表(如 Role:DB; OS:Win8.1)。如果提供了多个标记,则任务将在具有指定标记的所有计算机中运行。对于 Azure 资源组,提供虚拟机的名称,如 ffweb、ffdb。默认为在所有计算机中运行任务。"
+}
\ No newline at end of file
diff --git a/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/zh-TW/resources.resjson b/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/zh-TW/resources.resjson
new file mode 100644
index 000000000000..77d59bd646e9
--- /dev/null
+++ b/Tasks/SqlServerDacpacDeployment/Strings/resources.resjson/zh-TW/resources.resjson
@@ -0,0 +1,43 @@
+{
+ "loc.friendlyName": "[已取代] SQL Server Database 部署",
+ "loc.helpMarkDown": "[More Information](https://aka.ms/sqlserverdacpackreadme)",
+ "loc.description": "使用 DACPAC 部署 SQL Server 資料庫",
+ "loc.instanceNameFormat": "[已取代] 部署 SQL DACPAC: $(DacpacFile)",
+ "loc.group.displayName.deployment": "部署",
+ "loc.group.displayName.target": "目標",
+ "loc.group.displayName.advanced": "進階",
+ "loc.input.label.EnvironmentName": "電腦",
+ "loc.input.help.EnvironmentName": "提供以逗號分隔,包含電腦 IP 位址或 FQDN 與連接埠的清單。連接埠的預設值隨所選的通訊協定而定。 例如: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986 或提供其他作業的輸出變數。例如: $(variableName)",
+ "loc.input.label.AdminUserName": "系統管理員登入",
+ "loc.input.help.AdminUserName": "目標電腦的系統管理員登入。",
+ "loc.input.label.AdminPassword": "密碼",
+ "loc.input.help.AdminPassword": "目標電腦的系統管理員密碼。 其可接受組建/發行定義中 '$(passwordVariable)' 這類形式的變數。 您可以將變數類型標示為 'secret' 加以保護。",
+ "loc.input.label.Protocol": "通訊協定",
+ "loc.input.help.Protocol": "選取 WinRM 與電腦連線時所囡使用的通訊協定。預設值為 HTTPS。",
+ "loc.input.label.TestCertificate": "測試憑證",
+ "loc.input.help.TestCertificate": "選取此選項可略過驗證電腦憑證是否確實經由信任的憑證授權單位簽署。WinRM HTTPS 通訊協定需要此參數。",
+ "loc.input.label.DacpacFile": "DACPAC 檔案",
+ "loc.input.help.DacpacFile": "目標電腦或 UNC 路徑上的 DACPAC 檔案位置,例如 \\\\\\\\BudgetIT\\Web\\Deploy\\FabrikamDB.dacpac。電腦的系統管理員帳戶必須可以存取 UNC 路徑,並同時支援環境變數,例如 $env:windir、$env:systemroot、$env:windir\\FabrikamFibre\\Web。",
+ "loc.input.label.TargetMethod": "使用下列項目指定 SQL:",
+ "loc.input.help.TargetMethod": "選取此選項可連接至目標 SQL Server Database。此選項會提供 SQL Server Database 詳細資料,或 SQL Server 連接字串,或發行設定檔 XML 檔。",
+ "loc.input.label.ServerName": "伺服器名稱",
+ "loc.input.help.ServerName": "提供 SQL Server 名稱,例如: 電腦名稱\\FabriakmSQL,1433 或 localhost 或 .\\SQL2012R2。若指定 localhost,則會連接至電腦上的預設 SQL Server 執行個體。",
+ "loc.input.label.DatabaseName": "資料庫名稱",
+ "loc.input.help.DatabaseName": "提供 SQL Server 資料庫的名稱。",
+ "loc.input.label.SqlUsername": "SQL 使用者名稱",
+ "loc.input.help.SqlUsername": "如果指定了 SQL Server 登入,其將用以連接至 SQL Server。預設為整合式驗證,並使用電腦系統管理員的認證。",
+ "loc.input.label.SqlPassword": "SQL 密碼",
+ "loc.input.help.SqlPassword": "如果指定了 SQL Server 登入使用者名稱,則請提供 SQL Server 密碼。預設為整合式驗證,並使用電腦系統管理員的認證。",
+ "loc.input.label.ConnectionString": "連接字串",
+ "loc.input.help.ConnectionString": "指定 SQL Server 連接字串,例如 \"Server=localhost;Database=Fabrikam;User ID=sqluser;Password=password;\"。",
+ "loc.input.label.PublishProfile": "發行設定檔",
+ "loc.input.help.PublishProfile": "發行設定檔可讓您更進一步控制 SQL Server 資料庫的建立或更新。請指定目標電腦或電腦系統管理員認證所能存取之通用命名慣例 (UNC) 共用上發行設定檔 XML 檔案的路徑。",
+ "loc.input.label.AdditionalArguments": "其他引數",
+ "loc.input.help.AdditionalArguments": "其他會在建立或更新 SQL Server 資料庫時套用的 SqlPackage.exe 引數,例如 /p:IgnoreAnsiNulls=True /p:IgnoreComments=True。這些引數會覆寫發行設定檔 XML 檔 (若有提供) 中的設定。",
+ "loc.input.label.DeployInParallel": "平行部署",
+ "loc.input.help.DeployInParallel": "設定為 true 即會以平行方式在目標電腦上執行資料庫部署工作。",
+ "loc.input.label.ResourceFilteringMethod": "選取電腦依據 ",
+ "loc.input.help.ResourceFilteringMethod": "選擇性地提供電腦名稱或標記來選取電腦的子集。",
+ "loc.input.label.MachineFilter": "部署至電腦",
+ "loc.input.help.MachineFilter": "此輸入只對電腦群組有效,電腦的簡單列表或輸出變數目前尚無法支援。請以 dbserver.fabrikam.com、webserver.fabrikam.com、192.168.12.34 等形式提供電腦清單,或以 Role:DB; OS:Win8.1 等提供標記清單。若提供多個標記,工作會在所有具有指定標記的電腦上執行。若為 Azure 資源群組,請提供虛擬機器的名稱 (例如 ffweb、ffdb)。預設會在所有電腦上執行此工作。"
+}
\ No newline at end of file
diff --git a/Tasks/SqlServerDacpacDeployment/icon.png b/Tasks/SqlServerDacpacDeployment/icon.png
new file mode 100644
index 000000000000..7a7fab552e56
Binary files /dev/null and b/Tasks/SqlServerDacpacDeployment/icon.png differ
diff --git a/Tasks/SqlServerDacpacDeployment/icon.svg b/Tasks/SqlServerDacpacDeployment/icon.svg
new file mode 100644
index 000000000000..5efd4d7dc676
--- /dev/null
+++ b/Tasks/SqlServerDacpacDeployment/icon.svg
@@ -0,0 +1,90 @@
+
+
diff --git a/Tasks/SqlServerDacpacDeployment/task.json b/Tasks/SqlServerDacpacDeployment/task.json
new file mode 100644
index 000000000000..ca3ed138bea8
--- /dev/null
+++ b/Tasks/SqlServerDacpacDeployment/task.json
@@ -0,0 +1,216 @@
+{
+ "id": "70A3A82D-4A3C-4A09-8D30-A793739DC94F",
+ "name": "SqlServerDacpacDeployment",
+ "friendlyName": "[Deprecated] SQL Server Database Deploy",
+ "description": "Deploy SQL Server Database using DACPAC",
+ "helpMarkDown": "[More Information](https://aka.ms/sqlserverdacpackreadme)",
+ "category": "Deploy",
+ "visibility": [
+ "Preview",
+ "Build",
+ "Release"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 1,
+ "Minor": 0,
+ "Patch": 17
+ },
+ "demands": [],
+ "minimumAgentVersion": "1.96.2",
+ "deprecated": true,
+ "groups": [
+ {
+ "name": "deployment",
+ "displayName": "Deployment",
+ "isExpanded": true
+ },
+ {
+ "name": "target",
+ "displayName": "Target",
+ "isExpanded": true
+ },
+ {
+ "name": "advanced",
+ "displayName": "Advanced",
+ "isExpanded": false
+ }
+ ],
+ "inputs": [
+ {
+ "name": "EnvironmentName",
+ "type": "multiLine",
+ "label": "Machines",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "Provide a comma separated list of machine IP addresses or FQDNs along with ports. Port is defaulted based on the selected protocol. Eg: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.12.34:5986 Or provide output variable of other tasks. Eg: $(variableName)"
+ },
+ {
+ "name": "AdminUserName",
+ "type": "string",
+ "label": "Admin Login",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Administrator login for the target machines."
+ },
+ {
+ "name": "AdminPassword",
+ "type": "string",
+ "label": "Password",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "Administrator password for the target machines. It can accept variable defined in Build/Release definitions as '$(passwordVariable)'. You may mark variable type as 'secret' to secure it. "
+ },
+ {
+ "name": "Protocol",
+ "type": "radio",
+ "label": "Protocol",
+ "required": false,
+ "defaultValue": "",
+ "options": {
+ "Http": "HTTP",
+ "Https": "HTTPS"
+ },
+ "helpMarkDown": "Select the protocol to use for the WinRM connection with the machine(s). Default is HTTPS."
+ },
+ {
+ "name": "TestCertificate",
+ "type": "boolean",
+ "label": "Test Certificate",
+ "defaultValue": "true",
+ "visibleRule": "Protocol = Https",
+ "required": false,
+ "helpMarkDown": "Select the option to skip validating the authenticity of the machine's certificate by a trusted certification authority. The parameter is required for the WinRM HTTPS protocol."
+ },
+ {
+ "name": "DacpacFile",
+ "type": "filePath",
+ "label": "DACPAC File",
+ "required": true,
+ "groupName": "deployment",
+ "defaultValue": "",
+ "helpMarkDown": "Location of the DACPAC file on the target machines or on a UNC path like, \\\\\\\\BudgetIT\\Web\\Deploy\\FabrikamDB.dacpac. The UNC path should be accessible to the machine's administrator account. Environment variables are also supported like $env:windir, $env:systemroot, like, $env:windir\\FabrikamFibre\\Web."
+ },
+ {
+ "name": "TargetMethod",
+ "type": "pickList",
+ "label": "Specify SQL Using",
+ "required": true,
+ "groupName": "target",
+ "defaultValue": "server",
+ "options": {
+ "server": "Server",
+ "connectionString": "Connection String",
+ "publishProfile": "Publish Profile"
+ },
+ "helpMarkDown": "Select the option to connect to the target SQL Server Database. The options are to provide SQL Server Database details, or a SQL Server connection string, or a Publish profile XML file."
+ },
+ {
+ "name": "ServerName",
+ "type": "string",
+ "label": "Server Name",
+ "required": true,
+ "groupName": "target",
+ "defaultValue": "localhost",
+ "visibleRule": "TargetMethod = server",
+ "helpMarkDown": "Provide the SQL Server name like, machinename\\FabriakmSQL,1433 or localhost or .\\SQL2012R2. Specifying localhost will connect to the Default SQL Server instance on the machine."
+ },
+ {
+ "name": "DatabaseName",
+ "type": "string",
+ "label": "Database Name",
+ "required": true,
+ "groupName": "target",
+ "defaultValue": "",
+ "visibleRule": "TargetMethod = server",
+ "helpMarkDown": "Provide the name of the SQL Server database."
+ },
+ {
+ "name": "SqlUsername",
+ "type": "string",
+ "label": "SQL Username",
+ "required": false,
+ "groupName": "target",
+ "defaultValue": "",
+ "visibleRule": "TargetMethod = server",
+ "helpMarkDown": "If the SQL Server login is specified, it will be used to connect to the SQL Server. The default is Integrated Authentication and uses the machine administrator's credentials."
+ },
+ {
+ "name": "SqlPassword",
+ "type": "string",
+ "label": "SQL Password",
+ "required": false,
+ "groupName": "target",
+ "defaultValue": "",
+ "visibleRule": "TargetMethod = server",
+ "helpMarkDown": "If SQL Server login user name is specified, then provide the SQL Server password. The default is Integrated Authentication and uses the machine administrator's credentials."
+ },
+ {
+ "name": "ConnectionString",
+ "type": "multiLine",
+ "label": "Connection String",
+ "required": true,
+ "groupName": "target",
+ "defaultValue": "",
+ "visibleRule": "TargetMethod = connectionString",
+ "helpMarkDown": "Specify the SQL Server connection string like \"Server=localhost;Database=Fabrikam;User ID=sqluser;Password=password;\"."
+ },
+ {
+ "name": "PublishProfile",
+ "type": "filePath",
+ "label": "Publish Profile",
+ "required": false,
+ "groupName": "target",
+ "defaultValue": "",
+ "helpMarkDown": "Publish profile provide fine-grained control over SQL Server database creation or upgrades. Specify the path to the Publish profile XML file on the target machine or on a UNC share that is accessible by the machine administrator's credentials."
+ },
+ {
+ "name": "AdditionalArguments",
+ "type": "multiLine",
+ "label": "Additional Arguments",
+ "required": false,
+ "groupName": "target",
+ "defaultValue": "",
+ "helpMarkDown": "Additional SqlPackage.exe arguments that will be applied when creating or updating the SQL Server database like, /p:IgnoreAnsiNulls=True /p:IgnoreComments=True. These arguments will override the settings in the Publish profile XML file (if provided)."
+ },
+ {
+ "name": "DeployInParallel",
+ "type": "boolean",
+ "label": "Deploy in Parallel",
+ "defaultValue": "true",
+ "required": false,
+ "groupName": "advanced",
+ "helpMarkDown": "Setting it to true will run the database deployment task in-parallel on the target machines."
+ },
+ {
+ "name": "ResourceFilteringMethod",
+ "type": "radio",
+ "label": "Select Machines By",
+ "required": false,
+ "defaultValue": "machineNames",
+ "options": {
+ "machineNames": "Machine Names",
+ "tags": "Tags"
+ },
+ "groupName": "advanced",
+ "helpMarkDown": "Optionally, select a subset of machines either by providing machine names or tags."
+ },
+ {
+ "name": "MachineFilter",
+ "type": "string",
+ "label": "Deploy to Machines",
+ "required": false,
+ "defaultValue": "",
+ "groupName": "advanced",
+ "helpMarkDown": "This input is valid only for machine groups and is not supported for flat list of machines or output variables yet. Provide a list of machines like, dbserver.fabrikam.com, webserver.fabrikam.com, 192.168.12.34, or tags like, Role:DB; OS:Win8.1. If multiple tags are provided, then the task will run in all the machines with the specified tags. For Azure Resource Groups, provide the virtual machine's name like, ffweb, ffdb. The default is to run the task in all machines."
+ }
+ ],
+ "instanceNameFormat": "[Deprecated] Deploy SQL DACPAC: $(DacpacFile)",
+ "execution": {
+ "PowerShell": {
+ "target": "$(currentDirectory)\\DeployToSqlServer.ps1",
+ "argumentFormat": "",
+ "workingDirectory": "$(currentDirectory)"
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tasks/SqlServerDacpacDeployment/task.loc.json b/Tasks/SqlServerDacpacDeployment/task.loc.json
new file mode 100644
index 000000000000..26c5b6932ef9
--- /dev/null
+++ b/Tasks/SqlServerDacpacDeployment/task.loc.json
@@ -0,0 +1,216 @@
+{
+ "id": "70A3A82D-4A3C-4A09-8D30-A793739DC94F",
+ "name": "SqlServerDacpacDeployment",
+ "friendlyName": "ms-resource:loc.friendlyName",
+ "description": "ms-resource:loc.description",
+ "helpMarkDown": "ms-resource:loc.helpMarkDown",
+ "category": "Deploy",
+ "visibility": [
+ "Preview",
+ "Build",
+ "Release"
+ ],
+ "author": "Microsoft Corporation",
+ "version": {
+ "Major": 1,
+ "Minor": 0,
+ "Patch": 17
+ },
+ "demands": [],
+ "minimumAgentVersion": "1.96.2",
+ "deprecated": true,
+ "groups": [
+ {
+ "name": "deployment",
+ "displayName": "ms-resource:loc.group.displayName.deployment",
+ "isExpanded": true
+ },
+ {
+ "name": "target",
+ "displayName": "ms-resource:loc.group.displayName.target",
+ "isExpanded": true
+ },
+ {
+ "name": "advanced",
+ "displayName": "ms-resource:loc.group.displayName.advanced",
+ "isExpanded": false
+ }
+ ],
+ "inputs": [
+ {
+ "name": "EnvironmentName",
+ "type": "multiLine",
+ "label": "ms-resource:loc.input.label.EnvironmentName",
+ "defaultValue": "",
+ "required": true,
+ "helpMarkDown": "ms-resource:loc.input.help.EnvironmentName"
+ },
+ {
+ "name": "AdminUserName",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.AdminUserName",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "ms-resource:loc.input.help.AdminUserName"
+ },
+ {
+ "name": "AdminPassword",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.AdminPassword",
+ "defaultValue": "",
+ "required": false,
+ "helpMarkDown": "ms-resource:loc.input.help.AdminPassword"
+ },
+ {
+ "name": "Protocol",
+ "type": "radio",
+ "label": "ms-resource:loc.input.label.Protocol",
+ "required": false,
+ "defaultValue": "",
+ "options": {
+ "Http": "HTTP",
+ "Https": "HTTPS"
+ },
+ "helpMarkDown": "ms-resource:loc.input.help.Protocol"
+ },
+ {
+ "name": "TestCertificate",
+ "type": "boolean",
+ "label": "ms-resource:loc.input.label.TestCertificate",
+ "defaultValue": "true",
+ "visibleRule": "Protocol = Https",
+ "required": false,
+ "helpMarkDown": "ms-resource:loc.input.help.TestCertificate"
+ },
+ {
+ "name": "DacpacFile",
+ "type": "filePath",
+ "label": "ms-resource:loc.input.label.DacpacFile",
+ "required": true,
+ "groupName": "deployment",
+ "defaultValue": "",
+ "helpMarkDown": "ms-resource:loc.input.help.DacpacFile"
+ },
+ {
+ "name": "TargetMethod",
+ "type": "pickList",
+ "label": "ms-resource:loc.input.label.TargetMethod",
+ "required": true,
+ "groupName": "target",
+ "defaultValue": "server",
+ "options": {
+ "server": "Server",
+ "connectionString": "Connection String",
+ "publishProfile": "Publish Profile"
+ },
+ "helpMarkDown": "ms-resource:loc.input.help.TargetMethod"
+ },
+ {
+ "name": "ServerName",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.ServerName",
+ "required": true,
+ "groupName": "target",
+ "defaultValue": "localhost",
+ "visibleRule": "TargetMethod = server",
+ "helpMarkDown": "ms-resource:loc.input.help.ServerName"
+ },
+ {
+ "name": "DatabaseName",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.DatabaseName",
+ "required": true,
+ "groupName": "target",
+ "defaultValue": "",
+ "visibleRule": "TargetMethod = server",
+ "helpMarkDown": "ms-resource:loc.input.help.DatabaseName"
+ },
+ {
+ "name": "SqlUsername",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.SqlUsername",
+ "required": false,
+ "groupName": "target",
+ "defaultValue": "",
+ "visibleRule": "TargetMethod = server",
+ "helpMarkDown": "ms-resource:loc.input.help.SqlUsername"
+ },
+ {
+ "name": "SqlPassword",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.SqlPassword",
+ "required": false,
+ "groupName": "target",
+ "defaultValue": "",
+ "visibleRule": "TargetMethod = server",
+ "helpMarkDown": "ms-resource:loc.input.help.SqlPassword"
+ },
+ {
+ "name": "ConnectionString",
+ "type": "multiLine",
+ "label": "ms-resource:loc.input.label.ConnectionString",
+ "required": true,
+ "groupName": "target",
+ "defaultValue": "",
+ "visibleRule": "TargetMethod = connectionString",
+ "helpMarkDown": "ms-resource:loc.input.help.ConnectionString"
+ },
+ {
+ "name": "PublishProfile",
+ "type": "filePath",
+ "label": "ms-resource:loc.input.label.PublishProfile",
+ "required": false,
+ "groupName": "target",
+ "defaultValue": "",
+ "helpMarkDown": "ms-resource:loc.input.help.PublishProfile"
+ },
+ {
+ "name": "AdditionalArguments",
+ "type": "multiLine",
+ "label": "ms-resource:loc.input.label.AdditionalArguments",
+ "required": false,
+ "groupName": "target",
+ "defaultValue": "",
+ "helpMarkDown": "ms-resource:loc.input.help.AdditionalArguments"
+ },
+ {
+ "name": "DeployInParallel",
+ "type": "boolean",
+ "label": "ms-resource:loc.input.label.DeployInParallel",
+ "defaultValue": "true",
+ "required": false,
+ "groupName": "advanced",
+ "helpMarkDown": "ms-resource:loc.input.help.DeployInParallel"
+ },
+ {
+ "name": "ResourceFilteringMethod",
+ "type": "radio",
+ "label": "ms-resource:loc.input.label.ResourceFilteringMethod",
+ "required": false,
+ "defaultValue": "machineNames",
+ "options": {
+ "machineNames": "Machine Names",
+ "tags": "Tags"
+ },
+ "groupName": "advanced",
+ "helpMarkDown": "ms-resource:loc.input.help.ResourceFilteringMethod"
+ },
+ {
+ "name": "MachineFilter",
+ "type": "string",
+ "label": "ms-resource:loc.input.label.MachineFilter",
+ "required": false,
+ "defaultValue": "",
+ "groupName": "advanced",
+ "helpMarkDown": "ms-resource:loc.input.help.MachineFilter"
+ }
+ ],
+ "instanceNameFormat": "ms-resource:loc.instanceNameFormat",
+ "execution": {
+ "PowerShell": {
+ "target": "$(currentDirectory)\\DeployToSqlServer.ps1",
+ "argumentFormat": "",
+ "workingDirectory": "$(currentDirectory)"
+ }
+ }
+}
\ No newline at end of file