为什么 Get-Services 为我提供 NetTcpPortSharing 服务的 PermissionDenied?

Why does Get-Services give me PermissionDenied for the NetTcpPortSharing service?

我刚刚在 Win8.1(使用 Powershell Core 6+)中显示服务时遇到了一个以前从未见过的问题。 运行 Get-Service 在 Admin shell 中,导致以下错误:

$ Get-Service

...
Get-Service : Service 'NetTcpPortSharing (NetTcpPortSharing)' cannot be queried due to the following error:
At line:1 char:1
+ Get-Service
+ ~~~~~~~~~~~
+ CategoryInfo          : PermissionDenied: (System.ServiceProcess.ServiceController:ServiceController) [Get-Service], ServiceCommandException
+ FullyQualifiedErrorId : CouldNotGetServiceInfo,Microsoft.PowerShell.Commands.GetServiceCommand

Stopped  NetTcpPortSharing  NetTcpPortSharing
...

查看此服务的详细信息,我看到:

使用 net helpmsg 15101 然后我得到了这个:
The resource loader failed to load MUI file because the file fail to pass validation.

我不知道这是什么意思,即使它与 描述 字段中显示的相关。

所以 none 这个信息是有道理的,我不知道是什么创建了这个服务,也不知道它在做什么或正在使用它。不过我知道几天前我没有这个问题,但我不知道我有没有服务。我一直在玩各种 Remoting 功能,但是从这台机器到另一台 W10。

NetTcpPortSharing 有什么用,我可以安全地删除它吗?
(它通常来自哪里?)


可能相关的参考文献:


更新(根据 magicandre1981)

# $key = 'HKLM:\SYSTEM\CurrentControlSet\Services\NetTcpPortSharing'
# Get-ItemProperty -Path $key

DisplayName        : NetTcpPortSharing
ErrorControl       : 1
ImagePath          : C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SMSvcHost.exe
Start              : 4
Type               : 32
Description        : @%systemroot%\Microsoft.NET\Framework64\v4.0.30319\ServiceModelInstallRC.dll,-8200
ObjectName         : NT AUTHORITY\LocalService
ServiceSidType     : 3
RequiredPrivileges : {SeCreateGlobalPrivilege}
FailureActions     : {132, 3, 0, 0...}
PSPath             : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetTcpPortSharing
PSParentPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
PSChildName        : NetTcpPortSharing
PSDrive            : HKLM
PSProvider         : Microsoft.PowerShell.Core\Registry

此配置文件位于此处:

# find //c/Windows/Microsoft.NET/Framework*/ -iname "SMSvcHost.exe.config"
//c/Windows/Microsoft.NET/Framework/v4.0.30319/SMSvcHost.exe.config
//c/Windows/Microsoft.NET/Framework64/v4.0.30319/SMSvcHost.exe.config

这个 service belongs to Windows Communication Foundation (WCF) 是 .net 框架的一部分。

在我的 Windows 8.1 Pro x64(德语)上,注册表设置在

项下
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetTcpPortSharing

# Description:
%systemroot%\Microsoft.NET\Framework64\v3.0\Windows Communication Foundation\ServiceModelInstallRC.dll,-8200 
# DisplayName:
%systemroot%\Microsoft.NET\Framework64\v3.0\Windows Communication Foundation\ServiceModelInstallRC.dll,-820
# Imagepath:
%systemroot%\Microsoft.NET\Framework64\v3.0\Windows Communication Foundation\SMSvcHost.exe

因此请检查 Description 的设置。我不知道为什么它是 .net 3.x 和 4.0。