September 23, 2013 at 8:46 am
Hello,
I created this script to script out SQL server jobs, the script creates a file matching the job name and script it out as a sql script.
the script works most of the time, the only time it generates exception, when I have non conventional job names like "load/MTS Error Check" for example where I have "/", so I tried to add some logic to replace those wearied characters without lock, I want to change the file names not the job name on the server.
SQL server replication throws the same exception
"Out-File : The given path's format is not supported."
what I'm doing wrong?.
Import-Module SQLPS -DisableNameChecking
#Script out all job steps and created a file per job
#created by Mulham Hafiez on 9/18/2013
#map a drive to a list of servers
New-PSDrive -Name UNCPath -PSProvider FileSystem -Root \\Share1\jobs
foreach ($instancename in get-content -path Microsoft.PowerShell.Core\FileSystem::\\Share1\Servers\Servers.txt)
{
$Date =Get-date -Format "yyyy-M-d_hmmtt"
$folder= "UNCPath:\servers\jobs"
$server = New-Object 'Microsoft.SqlServer.Management.Smo.Server' -ArgumentList $instanceName
#extract each job the outer foreach loop and script it
foreach ($job in $server.JobServer.Jobs)
{
#IF the output folder does not exist then create it
$OutputFolder = "$folder\$instancename\"
$DoesFolderExist = Test-Path $OutputFolder
$null = if (!$DoesFolderExist){MKDIR "$OutputFolder"}
# $job | foreach {$_.Script()} | out-file $fullpath
$JobName =$job.Name
# remove non conventional charachters
$JobName |ForEach-object {
$_ -replace "\\",'_' `
-replace "//" ,'_'`
}
$jobNameFile = $jobName+"_"+$date+".sql"
$fullpath =Join-Path $OutputFolder $jobNameFile
$job | foreach {$_.Script()} | Out-File $fullpath
}
}
Viewing 0 posts
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy