#sql-server #powershell
#sql-сервер #powershell
Вопрос:
У меня есть сценарий PowerShell, который я пишу для извлечения всех заданий определенного сервера, например
$sqlserver = "Servername"
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.Smo') | Out-Null
$srv = New-Object ('Microsoft.SqlServer.Management.Smo.Server') $sqlserver
$jobs = $srv.JobServer.Jobs
ForEach ($job in $jobs)
{
$jobname =$Servernaam.replace("","_") '_' $job.Name.replace(" ","_").replace("","_").replace("[","_").replace("]","_").replace(".","_").replace(":","_") ".sql"
$job.Script() | Out-File C:UsersDesktopJobs_from_ServerOrgineel$jobname
if ($jobs -like '*.dtsx*')
}
Код, который я получил, теперь получает все задания с сервера и сохраняет их в отдельных файлах.
Проблема в том, что я хочу получать задания только сервера Micrososft SQL, который содержит .dtsx в строке @command
Я попробовал, например
ForEach ($job in $jobs)
{
$jobname =$Servernaam.replace("","_") '_' $job.Name.replace(" ","_").replace("","_").replace("[","_").replace("]","_").replace(".","_").replace(":","_") ".sql"
$job.Script() | Out-File C:UsersDesktopJobs_from_ServerOrgineel$jobname
if ($jobs -like '*.dtsx*')
Я также попробовал - Contain
и установил код в foreachloop следующим образом
ForEach ($job in $jobs |if ($jobs -like '*.dtsx*'))
Ответ №1:
В вашем коде есть ряд опечаток и других ошибок, в которых объекты, которые вы используете, где. Попробуйте это для начала. Предполагается, что первым шагом в задании, использующем SSIS, является шаг SSIS. Измените по мере необходимости.
Ключевым моментом здесь является проверка subsystem
шага (ов) задания, чтобы определить, выполняется ли этот шаг с подсистемой SSIS.
$sqlserver = "servername"
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.Smo') | Out-Null
$srv = New-Object ('Microsoft.SqlServer.Management.Smo.Server') $sqlserver
$jobs = $srv.JobServer.Jobs
ForEach ($job in $jobs)
{
if ($Job.JobSteps[0].Subsystem -eq "ssis") {
# Do SSIS stuff
write-output "Found an SSIS job $($job.name)"
}
}
Комментарии:
1. Хороший код получает именно те задания, которые мне нужны. Вы также правы в отношении опечаток, поэтому я начал с нуля, используя ваш код в качестве основы