Loading
SCCM to SLM format details

Hi all, can anyone pint me in the direction of the format i should use to create a CSV extract from SCCM to import into SLM. The SCCM instance is completely air-gapped so i can't use the SCCM connector via the SIM. I don't really want to dump the SCCM then restore it to a temp VM and then import. I also believe that someone may have created a script/tool that can convert CSV into xml so that i could try importing the details as xml via a SIM. 

Initially want to test this as a small test, but then may want to do this on a more regular (6 monthly/monthly) basis.

Anyone else have any suggestion?

Thanks


  • Community Manager (Flexera Software)

    Hi Brian, This is possible, as long as you have the possibility to export SCCM collections containing   hardware/software(reports) to .csv or directly query the SCCM database for hardware/software information and export to a .csv   file again. Once the minimum and mandatory asset information is correctly present in the exported .csv file   creating a Snow XML file using a powershell script(convert .csv to Snow XML) is possible. The export, converting to Snow XML and Import to SLM can be automated in a few ways if required. Please do contact your local Snow representative as the services team would be able to advise   and assist with implementing such a solution. Best Regards,   Burak
    Expand Post
    • Many thanks Burak. Do you have any details of the minimum and mandatory fields for SLM at all? Regards, Brian
      • Community Manager (Flexera Software)

        Hi Brian, Actually there is a similar topic on the Inventory Page, Marc Farmen has posted a minimum configuration on this page and you can also find more information about the Snow XML GUI tool for creating assets. You might be interested in this. Please take a look XML Connector(Minimum Configuration) Best Regards, Burak
        Expand Post
  • Community Manager (Flexera Software)

    Hi Brian, Below is a example CSV along with a PowerShell Script that will convert the CSV to Snow.XML. Make shure you change the location of the output in the PowerShell highlighted below. Example CSV Host;Domain;CompType;CompManufacturer;User;OS;SWManufacturer;SWName;SWVersion,SWPath COMP0001;CORPNET;Notebook;Lenovo;Johnson  John;Windows 7 Enterprise;Adobe Photoshop;CS5;c:\program files\adobe\adobe photoshop cs5 (64 bit)\photoshop.exe COMP0001;CORPNET;Notebook;Lenovo;Johnson  John;Windows 7 Enterprise;Siemens;Siemens OpenScape Concierge; COMP0001;CORPNET;Notebook;Lenovo;Johnson  John;Windows 7 Enterprise;Adobe;Adobe Acrobat X Professional; COMP0001;CORPNET;Notebook;Lenovo;Johnson  John;Windows 7 Enterprise;Adobe;Adobe Acrobat X Standard; COMP0001;CORPNET;Notebook;Lenovo;Johnson  John;Windows 7 Enterprise;Adobe;Adobe Acrobat XI Professional; COMP0001;CORPNET;Notebook;Lenovo;Johnson  John;Windows 7 Enterprise;Adobe;Adobe Acrobat XI Standard; PowerShell to SnowXML ## Check for correct input parameters   if($args.Count -ne 3)   {   Write-Output "" "csv2snow.ps1" "" "Syntax:" ".\csv2snow.ps1 <path to input.csv> <output-path> <sitename>" "" "Example:" ".\csv2snow.ps1 D:\myinventory.csv D:\XMLOutput Snow" ""   return   }   else   {   $report=$args[0]   $outputdir=$args[1]   $sitename=$args[2] ## Check that the input file exists, otherwise exit   if (!(test-path($report))) { write-host "Input file not found.";return } ## Check that the output directory exists, otherwise create it   if (test-path($outputdir)) { } else { mkdir $outputdir > $ } ## Import the report   write-host (get-date) "Importing file.."   $myinput = import-csv $report -Delimiter ";"   $totalrows = $myinput.Length   write-host "$totalrows rows found"   $current = 0   $currhost = $myinput[$current].host   write-host $currhost   $prods = @()   $now = get-date ## Go through all rows of the CSV   while ($current -lt $totalrows) { $h = $myinput[$current].host if($h -ne $currhost) { #process the old host, then start with the new data   write-host (get-date) "Processing host $currhost" ## Start writing the SnowXML for the host   $output_file = $outputdir + "\" + $currhost +'.xml' $XmlWriter = New-Object System.XMl.XmlTextWriter($output_file,$)   $xmlWriter.Formatting = [System.Xml.Formatting]::Indented   $xmlWriter.WriteStartDocument() $lastupdate = $now.ToString("yyyy-MM-ddThh:mm:ss") $xmlWriter.WriteStartElement("client")   $xmlWriter.WriteElementString('isdmisupported',"false")   $xmlWriter.WriteElementString('isapmsupported',"false")   $xmlWriter.WriteElementString('isplugandplay',"false")   $xmlWriter.WriteElementString('primarybustype',"false")   $xmlWriter.WriteElementString('secondarybustype',"false")   $xmlWriter.WriteElementString('hasusb',"false")   $xmlWriter.WriteElementString('biosreleasedate','1900-01-01T01:00:00')   $xmlWriter.WriteElementString('biosmanufacturer','(n/a)')   $xmlWriter.WriteElementString('biosserialnumber','(n/a)')   $xmlWriter.WriteElementString('biosversion','(n/a)')   $xmlWriter.WriteElementString('company',"false")   $xmlWriter.WriteElementString('dmiversion',"false")   $xmlWriter.WriteElementString('hasflashbios',"false")   $xmlWriter.WriteElementString('hostname',$currhost)   $xmlWriter.WriteElementString('isportable','false')   $xmlWriter.WriteElementString('lastupdate',$lastupdate)   $xmlWriter.WriteElementString('numberofprocessors','1')   $xmlWriter.WriteElementString('manufacturer','(n/a)')   $xmlWriter.WriteElementString('model','(n/a)')   $xmlWriter.WriteElementString('username','(n/a)')   $xmlWriter.WriteElementString('installdate',"1900-01-01T01:00:00")   $xmlWriter.WriteElementString('sitename',$sitename)   $xmlWriter.WriteElementString('clientidentifier',$currhost)   $xmlWriter.WriteElementString('clienttype',0)   $xmlWriter.WriteElementString('isvdi',"false") $xmlWriter.WriteStartElement("memory")   $xmlWriter.WriteElementString('freeslots',"0")   $xmlWriter.WriteElementString('freeswap',"0")   $xmlWriter.WriteElementString('maxphysical',"0")   $xmlWriter.WriteElementString('totalslots',"0")   $xmlWriter.WriteElementString('totalphysical',"0")   $xmlWriter.WriteElementString('totalvirtual',"0")   $xmlWriter.WriteElementString('freevirtual',"0")   $xmlWriter.WriteElementString('freephysical',"0")   $xmlWriter.WriteElementString('totalswap',"0")   $xmlWriter.WriteEndElement() ## Process the software for the host   foreach ($prod in $prods) { $xmlWriter.WriteStartElement("application")   $xmlWriter.WriteElementString('binarytype',"0")   $xmlWriter.WriteElementString('format',"0")   $xmlWriter.WriteElementString('installdate',"1900-01-01T12:00:00")   $xmlWriter.WriteElementString('name',$prod.SWName)   $xmlWriter.WriteElementString('islocal',"true")   $xmlWriter.WriteElementString('ismsi',"true")   $xmlWriter.WriteElementString('isshortcut',"false")   $xmlWriter.WriteElementString('processortype',"0")   $xmlWriter.WriteElementString('uninstallstring',"0")   $xmlWriter.WriteElementString('filename',"(n/a)")   $xmlWriter.WriteElementString('filepath',$prod.SWPath)   $xmlWriter.WriteElementString('filedatetime',"1900-01-01T12:00:00")   $xmlWriter.WriteElementString('filesize',0)   $xmlWriter.WriteElementString('version',"SNOWXML-" + $prod.SWVersion)   $xmlWriter.WriteElementString('manufacturer',"(n/a)")   $xmlWriter.WriteElementString('language',"Language Neutral")   $xmlWriter.WriteElementString('fullcappeakdate',"1900-01-01T12:00:00")   $xmlWriter.WriteElementString('isrecognized',"1")   $xmlWriter.WriteElementString('coresublimit',"0")   $xmlWriter.WriteElementString('issubcapacity',"false")   $xmlWriter.WriteElementString('subcappeakdate',"1900-01-01T12:00:00")   $xmlWriter.WriteElementString('pvusubcap',"0")   $xmlWriter.WriteElementString('ispvu',"false")   $xmlWriter.WriteElementString('coresubcap',"0")   $xmlWriter.WriteElementString('pvusublimit',"0")   $xmlWriter.WriteEndElement()   } $xmlWriter.WriteStartElement("networkadapter")   $xmlWriter.WriteElementString('dnsserver',"0")   $xmlWriter.WriteElementString('macaddress',"0")   $xmlWriter.WriteElementString('productname',"0")   $xmlWriter.WriteElementString('defaultipgateway',"0")   $xmlWriter.WriteElementString('dhcpenabled',"true")   $xmlWriter.WriteElementString('ipaddress',"0.0.0.0")   $xmlWriter.WriteElementString('ipsubnet',"0")   $xmlWriter.WriteElementString('dhcpserver',"0")   $xmlWriter.WriteEndElement() $xmlWriter.WriteStartElement("operatingsystem")   $xmlWriter.WriteElementString('activedesktop',"0")   $xmlWriter.WriteElementString('cdkey',"0")   $xmlWriter.WriteElementString('defaultbrowser',"0")   $xmlWriter.WriteElementString('tempdirectory',"0")   $xmlWriter.WriteElementString('username',"0")   $xmlWriter.WriteElementString('useruilanguage',"0")   $xmlWriter.WriteElementString('buildnumber',"0")   $xmlWriter.WriteElementString('buildtype',"0")   $xmlWriter.WriteElementString('codeset',"0")   $xmlWriter.WriteElementString('computername',"0")   $xmlWriter.WriteElementString('countrycode',"0")   $xmlWriter.WriteElementString('currenttimezonecode',"0")   $xmlWriter.WriteElementString('domainname',"0")   $xmlWriter.WriteElementString('loc
    Expand Post
  • Hi:

    I know this is an old thread, but it seems this is what I need in order to help a customer.

    I guess that with the migration of the community to the new system, the code has been cut in the middle.

    Is there any chance of getting the full code again?

     

    Thanks in advance

    Expand Post

Related  Product Forums


                     → Flexera One



                      → Snow Atlas



                      → FlexNet Manager



                      → Snow License Manager



                       → App Broker


       Need help finding an answer?


        Ask a Question →


Loading
SCCM to SLM format details