Re: Migrating SMS 2.0 content to SMS 2003

Tech Tip: Click here to run a free scan for Windows Errors and optimize PC performance




Upon Request script to import/export Queries

'///////////////////////////////////////////////////////////////////////
////////
'// Export All Queries to TXT
'// Created by: Kim Oppalfens (MVP SMS)
'///////////////////////////////////////////////////////////////////////
Option Explicit
Dim objArgs, Command, qryfile, Sitecode, strSiteServer
Dim objFSO, WmiQuery, objWmiService, query, colQuery, oFile
Dim Line, queryexpression
Dim qryParameters, newquery

Set objArgs = WScript.Arguments

if (objArgs.count > 2) then
Command = Wscript.arguments.item(0)
Qryfile = Wscript.arguments.item(1)
Sitecode = wscript.arguments.item(2)
If (objArgs.count = 3) then
strSiteServer = "."
Else
strSiteServer = wscript.arguments.item(3)
End If
else
Wscript.echo("Usage: migratequeries.vbs IMPORT|EXPORT20|EXPORT2003
File SITECODE [SITESERVER]")
Wscript.echo("Example: migratequeries.vbs EXPORT2003 c:\expqueries.txt
S01 SMSSVR01")
Wscript.echo("")
Wscript.echo("IMPORT|EXPORT20|Choose whether you want to import or
export queries")
Wscript.echo("EXPORT2003, EXPORT20 will export to format for
reimporting to sms 2.0")
Wscript.echo(" EXPORT2003 will export to format for
reimporting to sms 2003")
Wscript.echo("File, Filename of the textfile where to
import/export queries")
Wscript.echo(" to/from")
Wscript.echo("SITECODE, 3-char SMS sitecode of the site for which you
want to ")
Wscript.echo(" import/export queries")
Wscript.echo("SITESERVER, Name of the SMS siteserver you want to
export packages from.")
Wscript.echo(" Default is Local Server")
Wscript.Quit(1)
end if


Set objFSO = Createobject ("Scripting.filesystemobject")

If ucase(command) = "EXPORT20" OR ucase(command) = "EXPORT2003" Then
WmiQuery = "select * from sms_query where limittocollectionid = " & CHR
(34) & CHR(34) & _
"And queryid like " & CHR(34) & sitecode & "%" & CHR(34)
Set objWMIService = GetObject ("Winmgmts:
{impersonationlevel=impersonate}!\\" & _
strSiteServer & "\root\sms\site_" & sitecode)

Set colquery = objWMIService.Execquery(wmiQuery)
Set oFile = objFSO.CreateTextFile(qryfile,TRUE)

For Each query in colquery
If ucase(command) = "EXPORT20" Then
queryexpression = query.Expression
Else
queryexpression = replace
(query.Expression,"SMS_G_System_ADDREMPROGS","SMS_G_System_ADD_REMOVE_PR
OGRAMS")
End If

line = query.name & ";" & _
query.comments & ";" & _
query.limittocollectionid & ";" & _
query.TargetClassname & ";" & _
queryexpression
Wscript.echo line
ofile.WriteLine Line
Next
ofile.close
End If

If ucase(command) = "IMPORT" Then
set objfso = Createobject ("Scripting.filesystemobject")
Set ofile = objfso.opentextfile (qryfile,1)
Set objWMIService = GetObject ("Winmgmts:
{impersonationlevel=impersonate}!\\" & _
strSiteServer & "\root\sms\site_" & sitecode)

Do While NOT ofile.atendofstream
line = ofile.readline
QryParameters = Split (line,";",-1,1)
Set newquery = objWMIService.get("SMS_Query").SpawnInstance_()
newquery.name = Qryparameters(0)
newquery.comments = Qryparameters(1)
newquery.limittocollectionid = Qryparameters(2)
newquery.TargetClassname = Qryparameters(3)
newquery.Expression = Qryparameters(4)
newquery.put_
WScript.echo newquery.name & " was imported"
Loop
ofile.close
End if





In article <35D9B539-638D-4AF3-8E92-7CE7C61E90E8@xxxxxxxxxxxxx>,
Terri@xxxxxxxxxxxxxxxxxxxxxxxxx says...
> I found this VBS Script that seems to work part way. This script will
> generate a .SMS file that can then be used to import into SMS (in Packages,
> select 'New'| 'Package from Definition'). This script was written for SMS
> 2.0 but will work for SMS 2003. The only difference is that SMS 2003 will
> prompt for source files and source directories even though it is defined in
> the .SMS file. I have not found a way to get around this (I already asked
> Microsoft if for documentation of the PDF format for SMS 2003, but they only
> have one form SMS 2.0). Also, I would like to add logic to the script to
> enumerate all the packages and automatically generate the .SMS files.
> Currently, the script will export a specified package given the package id.
> If you can improve on the script, I would appreciate it.
>
> '///////////////////////////////////////////////////////////////////////////////
> '// Export Package to PDF
> '// Created by: Brian Howson
> '// Usage: change SmsSite and SmsServer to your site and server
> '// This script will create a SMS 2.0 .sms file to import somewhere
> '// at a different site.
> '// useful for moving Packages from site to site
> '//
> '// You can freely use this script so long as you send me a copy of
> '// all PDF's you export with this script to brian.howson@xxxxxxx :)
> '//
> '///////////////////////////////////////////////////////////////////////////////
> '
> '
> 'REGEDIT4
> '
> '[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\NodeTypes\{3AD39FC7-EFD601D0-BDCF-00A0C909FDD7}
>
> \Extensions\SMS_Tools]
> '
> '[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\NodeTypes\{3AD39FC7-EFD601D0-BDCF-00A0C909FDD7}
>
> \Extensions\SMS_Tools\PDFExport]
> '"Name"="PDFExport"
> '"Description"="Export Package to PDF"
> '"CommandLine"="cscript //NoLogo d:\\download\\wsh\\exppdf.vbs ##SUB:__PATH##"
> '
> '**Start Encode**
>
>
> ' ##__Path## comes back as:
> ' \\NJ01TS04\root\sms\site_SDR:SMS_Package.PackageID=SDR0001F
>
> Set objArgs = WScript.Arguments
>
> if (objArgs.count > 0) then
> MyPos = InStr(objArgs(0), ":")
> SmsPath = Left(objArgs(0), MyPos - 1)

--
Kim Oppalfens
SMS MVP
.



Relevant Pages

  • SSIS Script Task Error - Unspecified Error
    ... I have 11 different scripts like for different SMS queries. ... ' Microsoft SQL Server Integration Services Script Task ... Dim Locator As New SWbemLocator ... Dim SMSProviderSitecode As String ...
    (microsoft.public.sqlserver.dts)
  • Re: Migrating SMS 2.0 content to SMS 2003
    ... '// This script will create SMS 2.0 .sms files to import somewhere ... ICON comes back as actual Icon data. ... '// DEPENDENTPROGRAM - another program in this package to run first ... > I found this VBS Script that seems to work part way. ...
    (microsoft.public.sms.admin)
  • Re: Deleting registry items
    ... are just deleting a few registry keys, then it should just be the one ... Make a new package in SMS, and use that folder as the source ... wscript.exe ...
    (microsoft.public.sms.admin)
  • Re: Reading Package properties
    ... '// This script will create SMS 2.0 .sms files to import somewhere ... Dim Shell ... ICON comes back as actual Icon data. ... '// DEPENDENTPROGRAM - another program in this package to run first ...
    (microsoft.public.sms.admin)
  • Re: Qryedit and SMS 2003
    ... That's it just run the script export to txt, ... Dim objFSO, WmiQuery, objWmiService, query, colQuery, oFile ... reimporting to sms 2003") ... import/export queries") ...
    (microsoft.public.sms.misc)