从sql server agent运行powershell脚本(类型:powershell)

时间:2016-09-01 19:32:16

标签: sql sql-server powershell

我正在尝试运行简单的powershell脚本prom一个作业(sql server agent)。 脚本:

[string]$SrcFolder = "G:\MSSQL\Test";
[string]$TrgFolder = "\\xx.xx.xx.xxx\d$\sql\logshipping" ;

if (-not(Get-Module -Name SQLPS)) 
{
    if (Get-Module -ListAvailable -Name SQLPS) {
        Push-Location
        Import-Module -Name SQLPS -DisableNameChecking
        Pop-Location
    };
};

if ($SrcFolder -eq $null -or $TrgFolder -eq $null )
    {
        Write-Host "The source Folder = $SrcFolder ,OR target folder =  $TrgFolder is not valid/Null";
    };

$prafix = "[A-Za-z]+_[0-9]+_[0-9].trn" ;
Set-Location -Path C:\ ;
# Copy to Destination
foreach ($file in gci -Path $SrcFolder | Where-Object{ $_.Mode -eq '-a---' -and $_.Extension -eq '.trn' -and $_.Name -match $prafix})
    {
    write-host "Starting Copy File: $($file.FullName) ." ;
        Copy-Item -Path $file.FullName -Destination $TrgFolder -Force -ErrorAction Stop ;


    if (Test-Path -LiteralPath "$TrgFolder\$($file.Name)")
        {
            write-host "End Copy File: $($file.FullName) ." ;
                Move-Item -Path $file.FullName -Destination "$SrcFolder\Moved" -Force ;
        }
    else
        {
            Write-Host "The Copy File: $TrgFolder\$($file.BaseName) . Failed "

    };
    }

脚本正在执行:将.bak文件复制到远程服务器。然后检查远程服务器中是否存在bak文件,如果存在,则将bak文件移动到本地文件夹。

工作失败的消息:

  

Date 9/1/2016 6:29:31 PM记录工作历史(LS_Manual-Copy)

     

步骤ID 3服务器SQL2012ENT-IR-3作业名称LS_Manual-Copy步骤   名称删除旧日志持续时间00:00:00 Sql严重性0 Sql消息   ID 0运营商电子邮件运营商网络发送的运营商分页重试次数   试图0

     

消息无法开始执行步骤3(原因:第(23)行:语法   错误)。步骤失败了。

sql server agent是Administrator组中的成员。

请帮忙。

10X

enter image description here

0 个答案:

没有答案