Выполнение powershell выдает ошибку при работе через xml/BAO
Я выполняю простой файл PowerShell для создания файла
powershell \\ns-sisci01\ServiceOperationsAutomation\BAO-shared\Dev\Programs\MSSQL\SPUpgrade\File_Creation1.ps1 ax-riscvmsql507\sql507
он принимает имя_сервера в качестве параметра, file_creation1 имеет следующий код
#------------------------------------------------------------------------------------------------------------------------------------------
param(
[Parameter(Mandatory=$True)][string]$servername
)
#param([string]$servername)
$filePathsuccess = "d:\temp\success.txt"
$filePathfail = "d:\temp\fail.txt"
$fileReboot = "d:\temp\reboot.txt"
$fileoutput="\\ns-sisci01\ServiceOperationsAutomation\BAO-shared\Dev\Programs\MSSQL\SPUpgrade\output.txt"
try
{
# <context>
# <description>
# Checks if any previous file exists , if exists its deletes same
# </description>
# </context>
$FileName = "d:\temp\reboot.txt"
if (Test-Path $FileName) {
Remove-Item $FileName
}
$FileName = "d:\temp\fail.txt"
if (Test-Path $FileName) {
Remove-Item $FileName
}
$FileName = "d:\temp\success.txt"
if (Test-Path $FileName) {
Remove-Item $FileName
}
# <context>
# <description>
# Takes build version and check files
# </description>
# </context>
$SqlQuery = "select SUBSTRING(CONVERT(sysname, SERVERPROPERTY('ProductVersion')),0,CHARINDEX('.',convert(sysname,SERVERPROPERTY('ProductVersion')),0))"
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server = $Servername; Database = master; Integrated Security = SSPI;"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $SqlQuery
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$version = $DataSet.Tables[0].rows[0].Column1
# <context>
# <description>
# checks build version through switch case
# </description>
# </context>
#checking version
# 80 = SQL Server 2000 = 8.00.xxxx
# 90 = SQL Server 2005 = 9.00.xxxx
#100 = SQL Server 2008 = 10.00.xxxx
#105 = SQL Server 2008 R2 = 10.50.xxxx
#110 = SQL Server 2012 = 11.00.xxxx
#120 = SQL Server 2014 = 12.00.xxxx
#130 = SQL Server 2016 = 13.00.xxxx
Write-Host $version
#switch case
switch -Exact($version)
{
'8' {$version=80}
'9' {$version=90}
'10' {$version=100}
'11' {$version=110}
'12' {$version=120}
'13' {$version=130}
}
# <context>
# <description>
# checks build version through switch case
# </description>
# </context>
$filePath="C:\Program Files\Microsoft SQL Server\$version\Setup Bootstrap\Log\Summary.txt"
Get-Content $filePath| select -First 15
$pattern2=Select-String -Pattern "Final result:" -CaseSensitive -Path $filePath
}
catch
{
Write-Host -BackgroundColor Red -ForegroundColor White "Fail"
$errText = $Error[0].ToString()
if ($errText.Contains("network-related"))
{
Write-Host "Connection Error. Check server name, port, firewall."
}
Write-Host $errText
continue
}
exit
Файл выполняется нормально из командной строки, но при запуске через xml выдает следующую ошибку
<output>
<line index="1">1</line>
<line index="2">10</line>
<line index="3">Get-Content : Cannot find path 'C:\Program Files\Microsoft SQL </line>
<line index="4">Server\100\Setup Bootstrap\Log\Summary.txt' because it does not exist.</line>
<line index="5">At \\ns-sisci01\ServiceOperationsAutomation\BAO-shared\Dev\Programs\MSSQL\SPUpg</line>
<line index="6">rade\File_Creation1.ps1:115 char:3</line>
<line index="7">+ Get-Content $filePath| select -First 15</line>
<line index="8">+ ~~~~~~~~~~~~~~~~~~~~~</line>
<line index="9"> + CategoryInfo : ObjectNotFound: (C:\Program File...Log\Summary.t </line>
<line index="10"> xt:String) [Get-Content], ItemNotFoundException</line>
<line index="11"> + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetCo </line>
<line index="12"> ntentCommand</line>
<line index="13"> </line>
<line index="14">Fail</line>
<line index="15">Cannot find path 'C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\Summary.txt' because it does not exist.</line>
</output>
Можете ли вы помочь мне, проблема возникает в sql2008, только файл существует на месте, он выдает ошибку только в версии 2008 box rest, как 2012,2014,2016, он работает отлично