Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 替换SQL作业中的备份位置_Sql Server_Powershell - Fatal编程技术网

Sql server 替换SQL作业中的备份位置

Sql server 替换SQL作业中的备份位置,sql-server,powershell,Sql Server,Powershell,我们正在尝试替换SQL备份作业步骤中的备份位置,该步骤通过多台服务器运行power shell 下面是我想使用的PS脚本: # $Server is a file with SERVERNAME names $Jobs = Get-SQLAgentJob -ServerInstance $Servers Foreach ($job in $Jobs.Where{$_.Name -like 'DatabaseBackup' -and $_.isenabled -eq $true}) {

我们正在尝试替换SQL备份作业步骤中的备份位置,该步骤通过多台服务器运行power shell 下面是我想使用的PS脚本:

# $Server is a file with SERVERNAME names 
$Jobs = Get-SQLAgentJob -ServerInstance 
$Servers Foreach ($job in $Jobs.Where{$_.Name -like 'DatabaseBackup' -and $_.isenabled -eq $true}) { 
    foreach ($Step in $Job.jobsteps.Where{$_.Name -like 'DatabaseBackup'}) { 
        $Step.Command = $Step.Command.Replace("Directory = N'C:\Backup\oldname1\oldname2\SERVERNAME'", "Directory = N'C:\Backup2\newname1\newname2\SERVERNAME'")
        $Step.Alter() 
        } 
}

看来这应该行得通。我看到的唯一潜在问题如下:

命名SQL实例:$servers变量如果不使用默认实例名称,则需要具有servername\instancename格式

作业和步骤名称:如果作业名称和作业步骤名称不完全是databasebackup,不包括大小写,则与确切字符串组合的-like运算符将找不到匹配项。如果名称包含databasebackup字符串,则使用-match-databasebackup或-like在字符串两侧加星号会更安全


否则,只要不存在网络连接或权限问题,此代码就可以正常工作。

我的问题是如何将\Backup\oldname1\oldname2替换为\Backup2\newname1\newname2。谢谢。请编辑问题,不要添加详细信息作为评论。那么到底是什么问题呢?运行脚本时会发生什么?是否有错误消息?什么都没发生?路径以意外方式更改?错误。。。编辑你的代码?我想我不明白你在问什么。你能回答并澄清你的问题吗?