How to determine distribution points for clients


  • Is there a way to determine what distribution point a client is using for software updates and distributions?  What can I look at to determine where it is getting the software from?  I have researched this for many days, and all I see is the client finds an "available" distro point and uses it.


    I have searched both the client's and the distribution point server's log files and cannot find any reference to the server name "tula" or IP addy.


    I have successfully rolled out SCCM at this site and am now moving to my remote sites (in different states).  The client's were installed using my local management points share containing ccmsetup.exe (is that problem #1).  Do we have to rerun the client setup using parameters pointing to their local distribution point?  Obviously, I do not want the client to grab the software over the WAN.


    Before I roll out testing to greater number's I need to eliminate this "gut" feeling that the successful software patching and installs are NOT going down the WAN pipe to my local management point for the source software.


    I can tell the source package are successfully copied to the distribution point.


    Any help would be appreciated.

    יום רביעי 12 נובמבר 2008 20:22


כל התגובות

  • It described in all details here:

    If there are any questions, just ask...

    יום רביעי 12 נובמבר 2008 22:24
    מנחה דיון
  • Thank you, I will check it out now!


    יום רביעי 12 נובמבר 2008 22:45

    Thanks for the great info.  I read through a few times and feel more comfortable that the clients will choose the remote distribution point (DP) because of the IP subnet.  I am assuming if the clients have the same IP subnet as the DP in the protected boundary, it will go there first.  Correct?


    A couple more questions also....


    Most important, are there no log files that are generated that show the source DP. This will get my WAN administrator off my back with his concerns.


    Second, to help confirm what I read, our Standard DP's at each remote site are set up as follows:


    We have one SCCM site.

    Type:  Active Directory Site

    Site Name:  NewYork ( which is the name of our AD container that contains the users and computers at the remote site)

    Protected:  the name of the remote DP server


    So as long as there are computers in the container it will identify those machines as remote (also the same IP subnet as the remoteDP) and the software downloads will stay local to that subnet.  Correct?

    Thanks for all the effort you guys put into this site!

    יום חמישי 13 נובמבר 2008 14:25
  • Look in LocationServices.log for the answer to which DP is serving up the content. Using Trace32 go to the bottom and search "up" for the string "calling back with" .... You may have to F3 this a few times to see exactly what you want depending on if it is looking for a Deployment Package or a traditional SWD package...
    יום שלישי 23 דצמבר 2008 23:44
    מנחה דיון
  • You might want to also check out this blog posting about DP retries and client behavior – including the question “How can you find out which distributions points are given to clients and which one was used to download the content?

    - Carol

    This posting is provided “AS IS” with no warranties and confers no rights.

    שבת 03 ינואר 2009 18:32
  • Have made a baseline to run this script and then capture new WMI Class during HW inventory.  Update with suggestions here:

    $searchtext = " successfully processed download completion."
    $file = "c:\Windows\CCM\Logs\ContentTransferManager.log"
    if (Test-Path $file){
     if (Get-Content $file | Select-String -Pattern $searchtext -Quiet){
      $StrResult = (Get-Content $file | Select-String -Pattern $searchtext |
       Select -Last 1).ToString()
      $LastCTMid = $StrResult.SubString(1,$StrResult.IndexOf('}')) |
      $searchtext2 = "CTM job $LastCTMid switched to location "
      $StrResult2 = (Get-Content $file | Select-String -Pattern $searchtext2 -SimpleMatch |
       Select -Last 1).ToString()
       $LastDP = $StrResult2.Split('/')[2]}
      $searchtext3 = "CTM job $LastCTMid (corresponding DTS job {"
      $StrResult3 = (Get-Content $file | Select-String -Pattern $searchtext3 -SimpleMatch |
       Select -Last 1).ToString()
      $LastDP = $StrResult3.Split('/')[2]
     IF(Get-WMIObject CM_Last_CTM_DP -ErrorAction SilentlyContinue){
      Remove-WMIObject CM_Last_CTM_DP}
     $newClass = New-Object System.Management.ManagementClass("root\cimv2", [String]::Empty, $null); 
        $newClass["__CLASS"] = "CM_Last_CTM_DP"; 
        $newClass.Qualifiers.Add("Static", $true)
        $newClass.Properties.Add("LastDP", [System.Management.CimType]::String, $false)
        $newClass.Properties["LastDP"].Qualifiers.Add("key", $true)
        $newClass.Properties.Add("TimeStamp", [System.Management.CimType]::DateTime, $false)
        $newClass.Properties["TimeStamp"].Qualifiers.Add("key", $true)
        [void](Set-WmiInstance -Path \\.\root\cimv2:CM_Last_CTM_DP -Arguments @{LastDP=$LastDP;
    IF(Get-WMIObject CM_Last_CTM_DP -ErrorAction SilentlyContinue){
     $Compliance = "Compliant"}
    Else {$Compliance = "Non-Compliant"}

    Seems to be capturing LastDP accurately.  PeerCaching not used here so don't know if that will make a diff.

    This SQL to summarise/validate:

    SELECT vrs.Name0,vrs.AD_Site_Name0,dp.LastDP00,dp.TimeStamp00

    from v_r_system vrs

    join dbo.CM_LAST_CTM_DP_DATA DP on vrs.ResourceID  = dp.MachineID

    orderby dp.timestamp00 desc

    • נערך על-ידי NikNicholas יום שישי 06 יולי 2018 01:16
    יום רביעי 04 יולי 2018 07:09
  • Hello,

    Running the script I am getting an error:

    Else : The term 'Else' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the
    path is correct and try again.
    At line:1 char:1
    + Else {$Compliance = "Non-Compliant"}
    + ~~~~
        + CategoryInfo          : ObjectNotFound: (Else:String) [], CommandNotFoundException
        + FullyQualifiedErrorId : CommandNotFoundException

    troubleshooting in progress...



    Security / System Center Configuration Manager Current Branch / SQL

    יום רביעי 06 פברואר 2019 00:16
  • After changing the line which was wrong due to copy/paste... the script is working in Powershell without error... checking the results... in SCCM DCM...



    Security / System Center Configuration Manager Current Branch / SQL

    • נערך על-ידי Felyjos יום רביעי 06 פברואר 2019 15:26
    יום רביעי 06 פברואר 2019 15:09