【问题标题】:List Server Shares列出服务器共享
【发布时间】:2018-06-08 18:58:44
【问题描述】:

我正在尝试像这样列出服务器上的共享:

我尝试了以下代码:

    Dim objWMIService = GetObject("winmgmts:\\srv0000\root\CIMV2")
    Dim colShares = objWMIService.ExecQuery("SELECT * FROM Win32_Share")

    For Each objShare In colShares
        MsgBox("Name: " & objShare.Name)
    Next

但我收到错误无法创建 ActiveX 组件。在第 1 行。

所以我尝试了:

    Dim scope As ManagementScope = New ManagementScope("\\srv0000\root\CIMV2")
    scope.Connect()
    Dim worker As ManagementObjectSearcher = New ManagementObjectSearcher(scope, New ObjectQuery("SELECT * FROM win32_share"))
    For Each share As ManagementObject In worker.Get
        MsgBox(share("Name"))
    Next

但我收到错误访问被拒绝。 (HRESULT 异常:0x80070005 (E_ACCESSDENIED)) 在第 2 行。

如上图所示,我确实可以访问服务器,但我不是管理员。我只想以资源管理器的方式列出共享。由于我不需要对共享进行编辑,是否有其他方法我可以采取的不太可靠的方法?

谢谢!

【问题讨论】:

  • 和c#标签有什么用?
  • 因为这不是 vb 或 c# 特定的问题。
  • 我能理解 C# 和 vb.net,所以任何一个答案都可以。我不确定你的意思是什么?
  • 如果你以管理员身份运行程序会发生什么?
  • 我作为管理员的第二次尝试运行良好。我知道我的 2 种方法通常用于观察或编辑服务器共享,因此我在原始问题的末尾添加了更多内容。我不需要像 WMI 提供的那样强大的选项,而且由于用户只是列出了共享,我不需要授予他们管理员权限(假设有另一种方式)。谢谢!

标签: c# vb.net server wmi


【解决方案1】:
猜你喜欢
  • 2023-04-06
  • 2021-06-28
  • 1970-01-01
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多