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
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!




