Мы столкнулись с ситуацией, когда некоторые учетные записи пользователей на небольшом количестве компьютеров получают:
Доступ запрещен: 0x80070005 (E_ACCESSDENIED)
при попытке получить доступ к части приложения, которая ищет COM-порт, к которому подключен сканер штрих-кода.
Я думаю, что это ломается в одном из следующих разделов кода:
Public Shared Function ProcessConnectionOptions() As ConnectionOptions
Dim options As New ConnectionOptions()
options.Impersonation = ImpersonationLevel.Impersonate
options.Authentication = AuthenticationLevel.[Default]
options.EnablePrivileges = True
Return options
End Function
OR
Public Shared Function ConnectionScope(ByVal machineName As String, ByVal options As ConnectionOptions, ByVal path As String) As ManagementScope
Dim connectScope As New ManagementScope()
connectScope.Path = New ManagementPath("\\" & machineName & path)
connectScope.Options = options
connectScope.Connect()
Return connectScope
End Function
OR
Dim options As ConnectionOptions = ProcessConnection.ProcessConnectionOptions()
Dim connectionScope As ManagementScope = ProcessConnection.ConnectionScope(Environment.MachineName, options, "\root\CIMV2")
Dim objectQuery As New ObjectQuery("SELECT * FROM Win32_PnPEntity WHERE ConfigManagerErrorCode = 0")
Dim comPortSearcher As New ManagementObjectSearcher(connectionScope, objectQuery)
Есть ли какое-то конкретное разрешение, которое должна иметь конкретная учетная запись для доступа к COM-портам на ПК?