【问题标题】:How to verify whether a windows server has mountpoint or not using WMI如何使用 WMI 验证 Windows 服务器是否具有挂载点
【发布时间】:2014-02-02 10:51:40
【问题描述】:

我正在生成一个报告,我需要在其中查找哪些服务器上配置了挂载点。 你能帮助如何使用 WMI 或 powershell 获取该信息吗?

我的意思是我需要识别服务器,如果其中存在挂载点......以及它们的名称......

【问题讨论】:

  • 嗨 Graham,感谢您的回复。我知道 win32_volume、win32_logicaldisk 和 MScluster 命名空间下的类。但我需要一些指导(我是 DBA)。关于如何识别挂载点...在服务器中...无论服务器上是否有安装点或直接安装的卷...
  • 挂载点是指映射驱动器,例如 \\server\share1 映射到驱动器号,例如d:\ ?类似于@FrodeF 的答案。将沿着正确的路线。您不会从 StackOverflow 的某个人那里获得完整的脚本,您应该已经以某种方式寻求解决方案并显示您的代码/数据。

标签: powershell wmi windows-server


【解决方案1】:

从文本文件、AD 等获取所有服务器的列表,然后运行一个 foreach 循环,如下所示:

Get-Wmiobject -query “select name,driveletter,freespace from win32_volume where drivetype=3 AND driveletter=NULL” -computer servername

在谷歌上快速搜索“windows mount point wmi”将返回THIS (source)

然后将结果导出为 CSV、HTML 或任何您需要的格式。你的问题缺乏很多细节和任何你努力的迹象,所以我不能/不会再进一步​​了。

更新:这有帮助吗?它列出了挂载点(文件夹路径,而不是驱动器号)。

$servers = @("server1","server2","server3","server4","server5")

$servers | % {
    $mountpoints = @(Get-WmiObject Win32_MountPoint -ComputerName $_ | Select-Object -ExpandProperty Directory | ? { $_ -match 'Win32_Directory.Name="(\w:\\\\.+)"' }) | % { [regex]::Match($_,'Win32_Directory.Name="(\w:\\\\.+)"').Groups[1].Value -replace '\\\\', '\' }

    if($mountpoints.Count -gt 0) {
        New-Object psobject -Property @{
            Server = $_
            MountPoints = $mountpoints
            }
    }
}

Server     MountPoints
------     -----------
{server1} {D:\SSD, C:\Test}

【讨论】:

  • K.. 让我这样说.. 我有 5 台服务器,其中 3 台服务器有挂载点,两台没有.. 现在我需要查询 wmi 以获取这些挂载点名称(不是它下面的磁盘信息).....我的意思是如何识别挂载点是否有任何独特的方法来识别它们..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-23
相关资源
最近更新 更多