Add-CMDistributionPoint-Cmdlet in Configuration Manager wird einen falschen ServerRemoteName Wert

Problembeschreibung

Betrachten Sie das folgende Szenario:
  • Sie verwenden das Hinzufügen CMDistributionPoint PowerShell-Cmdlet, das kumulative Update 1 für Microsoft System Center 2012 Configuration Manager Service Pack 1 (SP1) erstellen Sie einen neuen remote-Verteilungspunkt (DP) eingeführt wurde.
  • Sie neue DP Inhalt bereitstellen und erstellen Sie eine Bereitstellung, die Inhalte für einen Client am gleichen Remotestandort als neue DP erfordert.
In diesem Szenario finden Sie, dass der Client versucht, den Inhalt auf dem ersten Server herunterladen, die in der Hierarchie (CAS oder eigenständige primäre) installiert ist. Ist der erste Server in der Hierarchie eigenständige primären, der DP Inhalt befindet, lädt der Client erfolgreich den Inhalt herunter. Dies wird durch die DataTransferService.log-Einträge auf dem Client dargestellt.

Ursache

Dies tritt auf, weil Hinzufügen CMDistributionPoint PowerShell-Cmdlet falsch die EigenschaftErverRemoteName für den Verteilungspunktauf den vollqualifizierten Domänennamen (FQDN legt) des ersten Servers in der Hierarchie. Aus diesem Grund wählt der Client am besten Verteilungspunkt, Inhalt herunterzuladen. Der Client ist diese Grundlage Ort (IP-Subnetz, das Active Directory-Standort usw.) aber Kommunikation mit DP verwendet den falschen FQDN.

Problemlösung

Um dieses Problem zu beheben, installieren Sie kumulative Update 3 für System Center 2012 Configuration Manager Service Pack 1 (SP1). Weitere Informationen zu diesem kumulativen Update klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:
2882125 Beschreibung des kumulativen Update 3 für System Center 2012 Configuration Manager Service Pack 1

PROBLEMUMGEHUNG

Sie können das Problem umgehen, korrigiert dieErverRemoteName Eigenschaft der DP. Im folgende Beispiel für VBScript überprüfen und korrigieren diese Eigenschaft für eine oder mehrere EPS:

'Sample script to connect to the SMS provider for a specific site server (argument 1)' for a specific site code (argument 2) and 
' and correct ServerRemoteName for a specified DP (argument 3) in a specified site (argument 4) if it does not match ServerName.

On Error Resume Next

'Validate command line arguments

Set args=wscript.arguments

If args.Count = 4 then
strProviderSiteServer = WScript.Arguments(0)
strProvSiteCode = UCASE(WScript.Arguments(1))
strDPServer = WScript.Arguments(2)
strDPSiteCode = UCASE(WScript.Arguments(3))
Else
wscript.Echo "Incorrect command line arguments." & vbCrLf
wscript.Echo "Usage: cscript //nologo CorrectServerRemoteName.VBS <ProviderServer> <ProvSiteCode> <DPServer> <DPSiteCode>" & vbCrLf
wscript.Echo "Example: cscript //nologo CorrectServerRemoteName.VBS Server01 CAS DPServer PRI" & vbCrLf
WScript.Quit(1)
End If

'Connect to the provider on the specified site server

strProviderSiteServer = "\\" + strProviderSiteServer + "\"
Set ObjSDKConn = GetObject("winmgmts:" & "{impersonationLevel=Impersonate,authenticationLevel=Pkt}!" & strProviderSiteServer & "root\sms\site_" & strProvSiteCode)

If Err.number <> 0 then
wscript.Echo "Connecting to the provider failed with code: " & Err.number
WScript.Quit(2)
End If

'Query for the specified DP

strQuery = "Select * from SMS_SCI_SysResUse where RoleName='SMS Distribution Point' and SiteCode='" & strDPSiteCode & "' and NetworkOSPath like '%" & strDPServer & "%'"
Set ObjQueryResult = ObjSDKConn.ExecQuery(strQuery)

If Err.number <> 0 then
wscript.Echo "Querying for the specified DP server failed with code: " & Err.number
WScript.Quit(3)
End If

If ObjQueryResult.Count < 1 Then
wscript.Echo "Querying for the specified DP server succeeded but no DPs were returned."
WScript.Quit(4)
End If

'Loop through the list of DPs returned

wscript.Echo "Found " & ObjQueryResult.Count & " DPs matching the specified name."

For each ObjDP in ObjQueryResult
wscript.Echo
strServeName = Replace(ObjDP.NetworkOSPath,"\","")

For each ObjProp in ObjDP.Props
If ObjProp.PropertyName = "Server Remote Name" then
If strServeName = ObjProp.Value1 then
wscript.Echo "ServerName and ServerRemoteName both match as '" & strServeName & ". Not making any change to this DP."
Else
wscript.Echo "ServerRemoteName for " & strServeName & " is " & ObjProp.Value1 & ". Correcting."
ObjProp.Value1 = strServeName
ObjDP.Put_

If Err.number <> 0 then
wscript.Echo "Saving the change failed with code: " & Err.number
Else
wscript.Echo "Successfully updated the property."
End If
End If
End If
Next
Next

Weitere Informationen

Eine Fehlerbehebung für dieses Problem wird voraussichtlich in einem zukünftigen Update des Produkts enthalten.
Eigenschaften

Artikelnummer: 2935813 – Letzte Überarbeitung: 20.01.2017 – Revision: 1

Feedback