SCCM Automatisierung von Paketerstellung, Programmerstellung und Distribution via Powershell


Basierend auf meinem letzten Blog Eintrag, den SCCM Powershell Modulen, möcht ich hier mal zeigen wie einfach es damit ist in SCCM diverse Aufgaben zu automatisieren. In diesem Beispiel ein Powershell-Script welches mir ein Paket und Programm anlegt und auch gleich an beliebige Distribution Points verteilt. Wie gesagt wird vorrausgesetzt, dass die SCCM-Module geladen sind.


PARAM (

[Parameter(Mandatory=$true, HelpMessage="Sccmserver")][string] $sccmserver,

[Parameter(Mandatory=$true, HelpMessage="Package Name")][string] $strPkgName,

[Switch] $CreatePkg,

[Parameter(Mandatory=$false, HelpMessage="Package Version")][String] $strPkgVersion = "",

[Parameter(Mandatory=$false, HelpMessage="Package Manufacturer")][String] $strPkgManufacturer = "",

[Parameter(Mandatory=$false, HelpMessage="Package Language")][String] $strPkgLanguage = "",

[Parameter(Mandatory=$false, HelpMessage="Package Description")][String] $strPkgDescription = "",

[Parameter(Mandatory=$false, HelpMessage="Package Data Source Path")][String] $strPkgSourcePath = "",

[Parameter(Mandatory=$false, HelpMessage="Package Sharename")][String] $strPkgShareName = "",

[Switch] $Distribute,

[Parameter(Mandatory=$false, HelpMessage="DistributionPoint Servername")][String]$strDPName = "",

[Parameter(Mandatory=$false, HelpMessage="All DistributionPoints of SiteCode")][String] $strDPsSiteCode = "",

[Parameter(Mandatory=$false, HelpMessage="Distribution Point Group")][String] $strDPGroupName = "All",

[Switch] $CreatePrg,

[Parameter(Mandatory=$false, HelpMessage="Program Name")][String] $strPrgName = "",

[Parameter(Mandatory=$false, HelpMessage="Program Comment")][String] $strPrgComment = "",

[Parameter(Mandatory=$false, HelpMessage="Program CommandLine")][String] $strPrgCommandLine = "",

[Parameter(Mandatory=$false, HelpMessage="Program MaxRunTime")]$strPrgMaxRunTime,

[Parameter(Mandatory=$false, HelpMessage="Program Diskspace Requirement")]$strPrgSpaceReq,

[Parameter(Mandatory=$false, HelpMessage="Program Working Directory")][String] $strPrgWorkDir = ""

)

# Connect to sccm server

$sccm = Connect-SCCMServer -hostname $sccmserver -verbose

#create Package

if ($CreatePkg)

{

New-SCCMPackage -SccmServer $sccm -PkgName $strPkgName -PkgVersion $strPkgVersion -PkgManufacturer $strPkgManufacturer -PkgLanguage $strPkgLanguage -PkgDescription $strPkgDescription -PkgSourcePath $strPkgSourcePath -PkgShareName $strPkgShareName

}

#Distribute Package

if ($Distribute)

{

$objPackage = Get-SCCMPackage -SccmServer $sccm -Filter "Name = '$strPkgName'"

$strDPPackageID = $objPackage.PackageID

if ($strDPPackageID -ne "")

{

if ($strDPGroupName -eq "All") and ($strDPName -eq "") and ($strDPsSiteCode -eq "")

{

Add-SCCMDistributionPoint -SccmServer $sccm -DPPackageID $strDPPackageID -AllDPs

}

else

{

Add-SCCMDistributionPoint -SccmServer $sccm -DPPackageID $strDPPackageID -DPName $strDPName -DPsSiteCode $strDPsSiteCode -DPGroupName $strDPGroupName

}

}

}

#create Program

if ($CreatePrg)

{

$objPackage = Get-SCCMPackage -SccmServer $sccm -Filter "Name = '$strPkgName'"

$strPrgPackageID = $objPackage.PackageID

if ($strPrgPackageID -ne "")

{

New-SCCMProgram -SccmServer $sccm -PrgName $strPrgName -PrgPackageID $strPrgPackageID -PrgComment $strPrgComment -PrgCommandLine $strPrgCommandLine -PrgMaxRunTime $strPrgMaxRunTime -PrgSpaceReq $strPrgSpaceReq -PrgWorkDir $strPrgWorkDir -PrgFlags $strPrgFlags

}

}

Previous Articles

SCCM Powershell Modules


ConfigMgr 2007 Toolkit V2 verfügbar


SccmAutoDoc Beta 1 verfügbar


PatchManagement auf Cluster Server – Teil 1


BITS Probleme, Analyse und Behebung


Update: ITMU Pakete nach ConfigMgr Upgrade nicht sichtbar


ITMU Pakete nach ConfigMgr Upgrade nicht sichtbar


Http Error 500 beim Ausführen eines Webreport auf Windows Server 2008


MPLIST Error 500 auf allen Management Points


Welcome to stefanringler.com

Take a second to peek around and check out some of my previous posts. Of course, I would love to find out what you think as well, so make sure to comment. See you around!