为什么 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 有什么用,我可以安全地删除它吗?
(它通常来自哪里?)
可能相关的参考文献:
- NetTcpPortSharing
- Access denied when using Net.Tcp Port Sharing Service
- Windows Service is giving Description: <Failed to read description error code 2>
更新(根据 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。
我刚刚在 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 有什么用,我可以安全地删除它吗?
(它通常来自哪里?)
可能相关的参考文献:
- NetTcpPortSharing
- Access denied when using Net.Tcp Port Sharing Service
- Windows Service is giving Description: <Failed to read description error code 2>
更新(根据 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。