PNRP services do not start on Server Core installations of Windows Server 2016

Applies to: Windows Server 2016


After you install the Pnrp-Only feature on a Server Core installation of Microsoft Windows Server 2016, the Peer Name Resolution Protocol service (Pnrpsvc) and Peer Networking Identity Manager service (P2pimsvc) do not start.


This issue occurs because of missing registry entries on the server that is running Server Core. It does not affect server installations that have a GUI.


To resolve this issue, set the following registry entry:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost] "LocalServicePeerNet"=hex(7):50,00,4e,00,52,00,50,00,53,00,76,00,63,00,00,00, 70,00,32,00,70,00,69,00,6d,00,73,00,76,00,63,00,00,00,70,00,32,00,70,00,73, 00,76,00,63,00,00,00,50,00,6e,00,72,00,70,00,41,00,75,00,74,00,6f,00,52,00, 65,00,67,00,00,00,00,00
To push this fix out to multiple servers, run the following Windows PowerShell command:

$servers = "hyperv1","hyperv2","hyperv3"

$credential = Get-Credential -Credential <user\server_role>

Invoke-Command -ComputerName $servers -Credential $credential -ScriptBlock
{New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost -Name
"LocalServicePeerNet" -PropertyType Binary -Value ([byte[]](0x50,0x00,0x4e,0x00 <...> ))}

  • In the second command, <user\server_role> represents your actual credentials for the remote server (for example, "iamred\administrator").
  • At the end of the third command, the ellipses (<...>) represent all the remaining byte values from the new registry entry that follow the first four byte values (that is, "0x52,0x00,0x50,0x00" and so on).
  • For this method to work, PowerShell Remoting must be already enabled on the servers. For more information about PowerShell Remoting, see about_Remote_FAQ.