本帖最后由 a15862986217 于 2014-05-29 12:41:29 编辑

解决方案 »

  1.   

    下面是PowerShell获取SQL Server计划任务描述中获取计划类型的部分,供参考:
                foreach($sch in $job.JobSchedules)
                {
                    $freq = ""
                    ++$i;
                    $text = $j.ToString() + "." + $i.ToString() + ") Schedule: " + $sch.Name; 
                    $text += retornoAtividade($sch.IsEnabled);
                    $text;                #Verifica o tipo de frequência    
                    switch ($sch.FrequencyTypes)
                    {
                        "OnIdle" 
                        { 
                            $freq = "Inicia quando a CPU estiver ociosa"; 
                        }
                        "Daily" 
                        { 
                            $freq = "Diariamente, a cada "  + $sch.FrequencyInterval + " dia(s)";
                            $freq += comumFrequencia($sch);
                        }
                        "Monthly" 
                        { 
                            $freq = "Mensalmente, no dia " + $sch.FrequencyInterval + " a cada " + $sch.FrequencyRecurrenceFactor + " mes(es)";
                            $freq += comumFrequencia($sch);
                        }
                        "MonthlyRelative"
                        {
                            $freq = "Mensalmente, no(a) "
                            switch ($sch.FrequencyRelativeIntervals)
                            {
                                "First"     { $freq += "primeiro(a)" }
                                "Second" { $freq += "segundo(a)" }
                                "Third" { $freq += "terceiro(a)" }
                                "Fourth" { $freq += "quarto(a)" }
                                "Last" {  $freq += "último(a)" }
                                default { $sch.FrequencyRelativeIntervals }                         }                        #Verifica o intervalo
                            switch ($sch.FrequencyInterval)
                            {
                                1 { $freq += " domingo" }
                                2 { $freq += " segunda-feira" }
                                3 { $freq += " terça-feira" }
                                4 { $freq += " quarta-feira" }
                                5 { $freq += " quinta-feira" }
                                6 { $freq += " sexta-feira" }
                                7 { $freq += " sábado" }
                                8 { $freq += " dia" }
                                9 { $freq += " dia útil" }
                                10 { $freq += " dia da semana" }
                                default { $sch.FrequencyInterval }
                            }                        $freq += " a cada " + $sch.FrequencyRecurrenceFactor + " mes(es), "
                            $freq += comumFrequencia($sch);
                        }                    "Weekly" 
                        { 
                            $freq = "Semanalmente, a cada " + $sch.FrequencyRecurrenceFactor + " semana(s)"; 
                            $freq += retornaDias($sch.FrequencyInterval); 
                            $freq += comumFrequencia($sch);                        
                        }                    "AutoStart" 
                        { 
                            $freq = "Inicia automaticamente quando o SQL Server Agent inicia" 
                        }                    "OneTime" 
                        { 
                            $freq = "Uma vez em " + $sch.ActiveStartDate.ToString("dd/MM/yyyy") + " às " + $sch.ActiveStartTimeOfDay 
                        }                    default 
                        { 
                            $freq = $sch.FrequencyTypes 
                        }
                    }
                        "Ocorrência: " + $freq
                }
            }
        }
      

  2.   

    PowerShell Script to find SQL Agent Job details on a SQL server instance