Advertisement
TheChrisRoss

Export-Config (SCSM)

Nov 19th, 2015
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # -------------------------------------------
  2. # This script can be run on your Microsoft System Center 2012 R2
  3. # Primary MS (SMLets needs to be installed). This will produce the
  4. # configuration of pretty much everything that I can think of.
  5. # Please take a look at the zip file (output) and see if you can
  6. # think of missing data that would be good to include in future versions.
  7. # -------------------------------------------
  8.  
  9.  
  10. import-module 'C:\Program Files\Microsoft System Center 2012\Service Manager\Powershell\System.Center.Service.Manager.psd1'
  11.  
  12. import-module smlets
  13.  
  14. $exportPath = "c:\ops"
  15.  
  16. Function get-allenumerations($parentenum)
  17.  
  18. {
  19.  
  20.     $childenums = $parentenum | Get-SCSMChildEnumeration
  21.  
  22.     If($childenums)
  23.  
  24.     {
  25.  
  26.         foreach($childenum in $childenums)
  27.  
  28.         {
  29.  
  30.             $Global:arrEnums = $Global:arrEnums + $childenum
  31.  
  32.             get-allenumerations $childenum
  33.  
  34.         }
  35.  
  36.     }
  37.  
  38. }
  39.  
  40.  
  41.  
  42.  
  43.  
  44. $mpsAll = get-scsmmanagementpack
  45.  
  46. $mpsGrouped = $mpsAll | group sealed
  47.  
  48. $mpsUnsealedCount = $mpsGrouped | ?{$_.name -eq 'False'} | %{$_.count}
  49.  
  50. $mpsSealedCount = $mpsGrouped | ?{$_.name -eq 'True'} | %{$_.count}
  51.  
  52.  
  53.  
  54.  
  55.  
  56. $mpsSealed = $mpsAll | ?{$_.sealed -eq 'True'} | select DisplayName, Sealed, LastModified | sort LastModified -Descending
  57.  
  58. $mpsSealed | export-csv "$exportPath\scsmdocs_exports_mpsSealed.csv"
  59.  
  60.  
  61.  
  62. $mpsUnSealed = $mpsAll | ?{$_.sealed -eq 'False'} | select DisplayName, Sealed, LastModified | sort LastModified -Descending
  63.  
  64. $mpsUnSealed | export-csv "$exportPath\scsmdocs_exports_mpsUnsealed.csv"
  65.  
  66.  
  67.  
  68. $userrolesAll = get-scsmuserrole
  69.  
  70. $userrolesGrouped = $userrolesAll | group profile
  71.  
  72.  
  73.  
  74. $userrolesTable = $userrolesAll | select DisplayName, Profile, Views, CredentialTasks, nonCredentialTasks, Templates, Users | sort Profile, DisplayName
  75.  
  76. $userrolesTable | export-csv "$exportPath\scsmdocs_exports_userroles.csv"
  77.  
  78.  
  79.  
  80. $runasaccountsAll = smlets\Get-SCSMRunAsAccount
  81.  
  82. $runasaccountsIsVisible = $runasaccountsAll | ?{$_.isvisible -eq 'True'}
  83.  
  84. $runasaccountsIsVisible | export-csv "$exportPath\scsmdocs_exports_runasaccounts.csv"
  85.  
  86.  
  87.  
  88. $subscriptions = smlets\Get-SCSMSubscription
  89.  
  90. $subscriptions | export-csv "$exportPath\scsmdocs_exports_subscriptions.csv"
  91.  
  92.  
  93.  
  94. $templates = Get-SCSMEmailTemplate
  95.  
  96. $templates | export-csv "$exportPath\scsmdocs_exports_templates.csv"
  97.  
  98.  
  99.  
  100. $sloconfig = get-scsmclass | ?{$_.displayname -match 'service level configuration'} | get-scsmclassinstance
  101.  
  102. $sloconfig | export-csv "$exportPath\scsmdocs_exports_sloconfig.csv"
  103.  
  104. $slometric = get-scsmclass | ?{$_.displayname -match 'service level metric'} | get-scsmclassinstance
  105.  
  106. $slometric | export-csv "$exportPath\scsmdocs_exports_slometric.csv"
  107.  
  108. $slocalendar = get-scsmclass | ?{$_.displayname -like 'calendar'} | get-scsmclassinstance
  109.  
  110. $slocalendar | export-csv "$exportPath\scsmdocs_exports_slocalendar.csv"
  111.  
  112. $slocalendarworkday = get-scsmclass | ?{$_.displayname -like 'calendar work day'} | get-scsmclassinstance
  113.  
  114. $slocalendarworkday | export-csv "$exportPath\scsmdocs_exports_slocalendarworkday.csv"
  115.  
  116.  
  117.  
  118. $queues = get-scsmqueue
  119.  
  120. $queues | export-csv "$exportPath\scsmdocs_exports_queues.csv"
  121.  
  122.  
  123.  
  124. $Global:arrEnums = @()
  125.  
  126. $parentEnums = Get-SCSMTopLevelEnumeration | ?{$_.displayname -match 'tier'} | get-scsmenumeration
  127.  
  128. foreach($parentEnum in $parentEnums)
  129.  
  130. {
  131.  
  132.     $arrEnums = $Global:arrEnums + $parentEnum
  133.  
  134.     get-allenumerations $parentEnum
  135.  
  136. }
  137.  
  138. $arrEnums | export-csv "$exportPath\scsmdocs_exports_List_IncidentSupportGroup.csv"
  139.  
  140.  
  141.  
  142. $Global:arrEnums = @()
  143.  
  144. $parentEnums = Get-SCSMTopLevelEnumeration | ?{$_.displayname -match 'Incident Status'} | get-scsmenumeration
  145.  
  146. foreach($parentEnum in $parentEnums)
  147.  
  148. {
  149.  
  150.     $arrEnums = $Global:arrEnums + $parentEnum
  151.  
  152.     get-allenumerations $parentEnum
  153.  
  154. }
  155.  
  156. $arrEnums | export-csv "$exportPath\scsmdocs_exports_List_IncidentStatus.csv"
  157.  
  158.  
  159.  
  160. $Global:arrEnums = @()
  161.  
  162. $parentEnums = Get-SCSMTopLevelEnumeration | ?{$_.displayname -match 'Incident Source'} | get-scsmenumeration
  163.  
  164. foreach($parentEnum in $parentEnums)
  165.  
  166. {
  167.  
  168.     $arrEnums = $Global:arrEnums + $parentEnum
  169.  
  170.     get-allenumerations $parentEnum
  171.  
  172. }
  173.  
  174. $arrEnums | export-csv "$exportPath\scsmdocs_exports_List_IncidentSource.csv"
  175.  
  176.  
  177.  
  178. $Global:arrEnums = @()
  179.  
  180. $parentEnums = Get-SCSMTopLevelEnumeration | ?{$_.name -match 'IncidentClassificationEnum'} | get-scsmenumeration
  181.  
  182. foreach($parentEnum in $parentEnums)
  183.  
  184. {
  185.  
  186.    $arrEnums = $Global:arrEnums + $parentEnum
  187.  
  188.     get-allenumerations $parentEnum
  189.  
  190. }
  191.  
  192. $arrEnums | export-csv "$exportPath\scsmdocs_exports_List_IncidentClassificationEnum.csv"
  193.  
  194.  
  195.  
  196. $Global:arrEnums = @()
  197.  
  198. $parentEnums = Get-SCSMTopLevelEnumeration | ?{$_.name -match 'IncidentResolutionCategoryEnum'} | get-scsmenumeration
  199.  
  200. foreach($parentEnum in $parentEnums)
  201.  
  202. {
  203.  
  204.     $arrEnums = $Global:arrEnums + $parentEnum
  205.  
  206.     get-allenumerations $parentEnum
  207.  
  208. }
  209.  
  210. $arrEnums | export-csv "$exportPath\scsmdocs_exports_List_IncidentResolutionCategoryEnum.csv"
  211.  
  212.  
  213.  
  214. $Global:arrEnums = @()
  215.  
  216. $parentEnums = Get-SCSMTopLevelEnumeration | ?{$_.name -eq 'System.WorkItem.TroubleTicket.UrgencyEnum'} | get-scsmenumeration
  217.  
  218. foreach($parentEnum in $parentEnums)
  219.  
  220. {
  221.  
  222.     $arrEnums = $Global:arrEnums + $parentEnum
  223.  
  224.     get-allenumerations $parentEnum
  225.  
  226. }
  227.  
  228. $arrEnums | export-csv "$exportPath\scsmdocs_exports_List_IncidentUrgency.csv"
  229.  
  230.  
  231.  
  232. $Global:arrEnums = @()
  233.  
  234. $parentEnums = Get-SCSMTopLevelEnumeration | ?{$_.name -match 'System.WorkItem.TroubleTicket.ImpactEnum'} | get-scsmenumeration
  235.  
  236. foreach($parentEnum in $parentEnums)
  237.  
  238. {
  239.  
  240.     $arrEnums = $Global:arrEnums + $parentEnum
  241.  
  242.     get-allenumerations $parentEnum
  243.  
  244. }
  245.  
  246. $arrEnums | export-csv "$exportPath\scsmdocs_exports_List_IncidentImpact.csv"
  247.  
  248.  
  249.  
  250.  
  251.  
  252. $Global:arrEnums = @()
  253.  
  254. $parentEnums = Get-SCSMTopLevelEnumeration | ?{$_.name -match 'ServiceRequestSupportGroupEnum'} | get-scsmenumeration
  255.  
  256. foreach($parentEnum in $parentEnums)
  257.  
  258. {
  259.  
  260.     $arrEnums = $Global:arrEnums + $parentEnum
  261.  
  262.     get-allenumerations $parentEnum
  263.  
  264. }
  265.  
  266. $arrEnums | export-csv "$exportPath\scsmdocs_exports_List_ServiceRequestSupportGroupEnum.csv"
  267.  
  268.  
  269.  
  270. $Global:arrEnums = @()
  271.  
  272. $parentEnums = Get-SCSMTopLevelEnumeration | ?{$_.name -match 'ServiceRequestUrgencyEnum'} | get-scsmenumeration
  273.  
  274. foreach($parentEnum in $parentEnums)
  275.  
  276. {
  277.  
  278.     $arrEnums = $Global:arrEnums + $parentEnum
  279.  
  280.     get-allenumerations $parentEnum
  281.  
  282. }
  283.  
  284. $arrEnums | export-csv "$exportPath\scsmdocs_exports_List_ServiceRequestUrgencyEnum.csv"
  285.  
  286.  
  287.  
  288. $Global:arrEnums = @()
  289.  
  290. $parentEnums = Get-SCSMTopLevelEnumeration | ?{$_.name -match 'ServiceRequestPriorityEnum'} | get-scsmenumeration
  291.  
  292. foreach($parentEnum in $parentEnums)
  293.  
  294. {
  295.  
  296.     $arrEnums = $Global:arrEnums + $parentEnum
  297.  
  298.     get-allenumerations $parentEnum
  299.  
  300. }
  301.  
  302. $arrEnums | export-csv "$exportPath\scsmdocs_exports_List_ServiceRequestPriorityEnum.csv"
  303.  
  304.  
  305.  
  306. $Global:arrEnums = @()
  307.  
  308. $parentEnums = Get-SCSMTopLevelEnumeration | ?{$_.name -match 'ServiceRequestAreaEnum'} | get-scsmenumeration
  309.  
  310. foreach($parentEnum in $parentEnums)
  311.  
  312. {
  313.  
  314.     $arrEnums = $Global:arrEnums + $parentEnum
  315.  
  316.     get-allenumerations $parentEnum
  317.  
  318. }
  319.  
  320. $arrEnums | export-csv "$exportPath\scsmdocs_exports_List_ServiceRequestAreaEnum.csv"
  321.  
  322.  
  323.  
  324. $Global:arrEnums = @()
  325.  
  326. $parentEnums = Get-SCSMTopLevelEnumeration | ?{$_.name -match 'ServiceRequestStatusEnum'} | get-scsmenumeration
  327.  
  328. foreach($parentEnum in $parentEnums)
  329.  
  330. {
  331.  
  332.     $arrEnums = $Global:arrEnums + $parentEnum
  333.  
  334.     get-allenumerations $parentEnum
  335.  
  336. }
  337.  
  338. $arrEnums | export-csv "$exportPath\scsmdocs_exports_List_ServiceRequestStatusEnum.csv"
  339.  
  340.  
  341.  
  342. $Global:arrEnums = @()
  343.  
  344. $parentEnums = Get-SCSMTopLevelEnumeration | ?{$_.name -match 'ActivityStatusEnum'} | get-scsmenumeration
  345.  
  346. foreach($parentEnum in $parentEnums)
  347.  
  348. {
  349.  
  350.     $arrEnums = $Global:arrEnums + $parentEnum
  351.  
  352.     get-allenumerations $parentEnum
  353.  
  354. }
  355.  
  356. $arrEnums | export-csv "$exportPath\scsmdocs_exports_List_ActivityStatusEnum.csv"
  357.  
  358.  
  359.  
  360. $Global:arrEnums = @()
  361.  
  362. $parentEnums = Get-SCSMTopLevelEnumeration | ?{$_.name -match 'ActivityAreaEnum'} | get-scsmenumeration
  363.  
  364. foreach($parentEnum in $parentEnums)
  365.  
  366. {
  367.  
  368.     $arrEnums = $Global:arrEnums + $parentEnum
  369.  
  370.     get-allenumerations $parentEnum
  371.  
  372. }
  373.  
  374. $arrEnums | export-csv "$exportPath\scsmdocs_exports_List_ActivityAreaEnum.csv"
  375.  
  376.  
  377.  
  378. $Global:arrEnums = @()
  379.  
  380. $parentEnums = Get-SCSMTopLevelEnumeration | ?{$_.name -match 'ActivityPriorityEnum'} | get-scsmenumeration
  381.  
  382. foreach($parentEnum in $parentEnums)
  383.  
  384. {
  385.  
  386.     $arrEnums = $Global:arrEnums + $parentEnum
  387.  
  388.     get-allenumerations $parentEnum
  389.  
  390. }
  391.  
  392. $arrEnums | export-csv "$exportPath\scsmdocs_exports_List_ActivityPriorityEnum.csv"
  393.  
  394.  
  395.  
  396. $Global:arrEnums = @()
  397.  
  398. $enumName = "ActivityStageEnum"
  399.  
  400. $parentEnums = Get-SCSMTopLevelEnumeration | ?{$_.name -match $enumName} | get-scsmenumeration
  401.  
  402. foreach($parentEnum in $parentEnums)
  403.  
  404. {
  405.  
  406.     $arrEnums = $Global:arrEnums + $parentEnum
  407.  
  408.     get-allenumerations $parentEnum
  409.  
  410. }
  411.  
  412. $arrEnums | export-csv "$exportPath\scsmdocs_exports_List_$enumName.csv"
  413.  
  414.  
  415.  
  416. $Global:arrEnums = @()
  417.  
  418. $enumName = "ProblemSourceEnum"
  419.  
  420. $parentEnums = Get-SCSMTopLevelEnumeration | ?{$_.name -match $enumName} | get-scsmenumeration
  421.  
  422. foreach($parentEnum in $parentEnums)
  423.  
  424. {
  425.  
  426.     $arrEnums = $Global:arrEnums + $parentEnum
  427.  
  428.     get-allenumerations $parentEnum
  429.  
  430. }
  431.  
  432. $arrEnums | export-csv "$exportPath\scsmdocs_exports_List_$enumName.csv"
  433.  
  434.  
  435.  
  436. $Global:arrEnums = @()
  437.  
  438. $enumName = "ProblemStatusEnum"
  439.  
  440. $parentEnums = Get-SCSMTopLevelEnumeration | ?{$_.name -match $enumName} | get-scsmenumeration
  441.  
  442. foreach($parentEnum in $parentEnums)
  443.  
  444. {
  445.  
  446.     $arrEnums = $Global:arrEnums + $parentEnum
  447.  
  448.     get-allenumerations $parentEnum
  449.  
  450. }
  451.  
  452. $arrEnums | export-csv "$exportPath\scsmdocs_exports_List_$enumName.csv"
  453.  
  454.  
  455.  
  456. $Global:arrEnums = @()
  457.  
  458. $enumName = "ProblemClassificationEnum"
  459.  
  460. $parentEnums = Get-SCSMTopLevelEnumeration | ?{$_.name -match $enumName} | get-scsmenumeration
  461.  
  462. foreach($parentEnum in $parentEnums)
  463.  
  464. {
  465.  
  466.     $arrEnums = $Global:arrEnums + $parentEnum
  467.  
  468.     get-allenumerations $parentEnum
  469.  
  470. }
  471.  
  472. $arrEnums | export-csv "$exportPath\scsmdocs_exports_List_$enumName.csv"
  473.  
  474.  
  475.  
  476. $Global:arrEnums = @()
  477.  
  478. $enumName = "ProblemResolutionEnum"
  479.  
  480. $parentEnums = Get-SCSMTopLevelEnumeration | ?{$_.name -match $enumName} | get-scsmenumeration
  481.  
  482. foreach($parentEnum in $parentEnums)
  483.  
  484. {
  485.  
  486.     $arrEnums = $Global:arrEnums + $parentEnum
  487.  
  488.     get-allenumerations $parentEnum
  489.  
  490. }
  491.  
  492. $arrEnums | export-csv "$exportPath\scsmdocs_exports_List_$enumName.csv"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement