列出物理驱动器空间

2023-12-11

我有大约 200 台服务器,我需要获取磁盘空间和逻辑驱动器空间详细信息(可用空间、已用空间和总空间)。

这是我的 PowerShell 查询。

$infoObjects = New-Object PSObject
foreach ($machine in $servers) {
  $counts = Get-WmiObject -Query "SELECT * FROM Win32_DiskDrive" -ComputerName $machine
  $total_disk =  @($counts).Count
  $i = 0
  $total_disk = $total_disk -1

  for (; $i -le $total_disk; $i++) {
    $a = $i
    $a  = Get-WmiObject -Query "SELECT * FROM Win32_DiskDrive WHERE DeviceID='\\\\.\\PHYSICALDRIVE$i'" -ComputerName $machine

    $b = $i
    $b = [math]::round($a.size /1GB)

    Add-Member -InputObject $infoObject -MemberType NoteProperty -Name "Physical_Disk $i" -Value $b
  }
  $infoObject | Export-Csv -Path Inventory.csv -Append -Force -NoTypeInformation 
}

它为我提供了所需的输出,但如果某些服务器具有多个磁盘或具有比输出更多的逻辑驱动器,则输出会停留在第一台服务器的驱动器数量上。它没有在其他服务器的其余驱动器的 CSV 文件中提供输出。

这是我所说的例子。


ServerName Physical_Disk 0 Physical_Disk 1 Physical_Disk 2 Physical_Disk 3
Server1 100 20  40
Server2 85
Server3 60  450 200 420
Server4 60
Server5 60                  
Server10    55  20  40  

如果看起来我无法解释这个问题。让我再尝试一次。

  • 第一台服务器有 2 个物理驱动器,这些驱动器将出现在我的输出文件 (CSV) 中。
  • 第二台服务器还有 2 个物理驱动器,它们也位于 CSV 文件中。
  • 但第三台服务器有超过 2 个驱动器,但输出中仅显示 2 个驱动器。

Export-Csv假设列表中的所有对象都是统一的,即它们都具有相同的属性,只是具有不同的值。它使用第一个元素的属性来确定要导出的内容。要么确保所有对象具有相同的属性,要么使用不同的输出方法,例如将所有磁盘信息放入每个主机的数组中并将其写入输出文件,例如像这样:

foreach ($machine in $servers) {
  $disks = @($machine)
  $disks += Get-WmiObject -Computer $machine -Class Win32_DiskDrive |
            ForEach-Object { [Math]::Round($_.Size/1GB) }
  $disks -join ',' | Add-Content 'C:\path\to\output.csv'
}

顺便说一句,您不需要多个 WMI 查询,因为第一个查询已经返回所有磁盘,包括其大小。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

列出物理驱动器空间 的相关文章

  • 使用 Powershell 或 C# 获取 Azure“文件和文件夹”作业状态

    我一直在尝试找到一种方法来获取在 AzureRM 中运行的几个客户上运行的 文件和文件夹 备份作业的状态 可以在 AzureRm 门户中手动找到状态 恢复服务保管库 gt 作业 gt 备份作业 使用powershell不显示任何作业信息 G
  • Invoke-WebRequest SSL 失败?

    当我尝试使用时Invoke WebRequest我收到一些奇怪的错误 Invoke WebRequest Uri https idp safenames com Invoke WebRequest The underlying connec
  • 无法使用 Windows 窗体中的内容处理 powershell 功能

    function CalendarShare Add MailboxFolderPermission Identity FromUser Text AccessRights Editor User ToUser Text 当程序运行时 它会
  • 如何使用 PowerShell 捕获全局击键?

    Powershell 可以监听并捕获按键吗 是否可以编写一个 PowerShell 脚本 例如自动热键 https www autohotkey com 位于托盘中并等待您按下预定义的键盘键才开始执行 并且每次按下所述键时可能不会返回而是触
  • PowerShell:如何在名称为“*”(星号/星号)的文件/文件夹上创建选择器?

    我需要从 PS 修改注册表 此注册表项与特定文件 所有扩展的文件夹 的上下文菜单相关 HKEY CURRENT USER Software Classes 目前我想将项目添加到此路径 HKCU Software classes shell
  • 使用 PowerShell 批量复制和重命名文件

    我正在尝试使用 PowerShell 批量复制和重命名文件 原始文件名为AAA001A jpg AAB002A jpg AAB003A jpg等 我想用新名称复制文件 方法是从文件名中删除前四个字符以及句点之前的字符 以便复制的文件被命名为
  • cURL 命令在 git bash 中有效,但在 cmd 和 powershell 中无效

    以下命令在 git bash 中有效 但在 cmd 和 powershell 中无效 curl X POST http localhost 5678 api findgen H Content Type application json d
  • Powershell Invoke-SSHCommand:使用“1”个参数调用“EndExecute”时出现异常

    我正在尝试通过 powershell 中的 Posh SSH 模块连接到 Netscaler SDX 服务器 以搜索特定文件 然后下载它 如果我用 putty 连接到服务器 它就可以工作 然后我可以输入 shell 来打开普通的 bash
  • PowerShell 解锁/卸载导入的 CSV

    早晨 我想问题就在标题里 我有一个脚本 它通过导入 CSV 的文件夹结构运行 与每个脚本一起工作 然后在完成后尝试删除它们 遗憾的是 其中很多都锁定在 PowerShell 上 而我删除它们的唯一方法就是关闭 PS 有什么方法可以卸载csv
  • Powershell 中的反斜杠

    为什么 split 参数的字符串需要两个反斜杠 而 join 参数的字符串只需要一个反斜杠 反引号是 Powershell 中的转义字符 字符前面的反斜杠有什么作用 path C folder test unit1 testing resu
  • 拖放到 Powershell 脚本

    我以为我已经找到了这个问题的答案 但我玩得越多 我就越发现它是 Powershell 的设计缺陷 我想拖放 或使用发送到机制 将多个文件和 或文件夹作为数组传递到 Powershell 脚本 测试脚本 Test ps1 param stri
  • 无法在 Powershell 中运行 R.exe

    我经常发现在命令行 Windows 上运行 R 更有用 然而 当我在 Powershell 中尝试时 我往往会遇到问题 但这可以通过第一次运行轻松克服cmd然后就可以了 这是我执行此操作时遇到的错误R CMD BATCH Invoke Hi
  • 如何获取 64 位的 pshome 路径?

    32 位的主文件夹路径可以使用 PSHome多变的 c Windows System32 WindowsPowerShell v1 0 如何访问包含 64 位版本路径的变量 c Windows SysWOW64 WindowsPowerSh
  • 如何将 .bat 文件中的变量获取到 PowerShell 脚本中?

    我正在用 PowerShell 替换 bat 脚本的部分内容 批处理文件的配置是通过以下文件完成的set适当的环境变量 我正在寻找一种方法将这些变量值加载到 ps1脚本 无需修改 bat文件 因为它们也在其他地方使用 一个例子 bat看起来
  • 相当于 UNIX diff 和 patch 的本机 PowerShell

    我需要潜在地修补文件作为脚本的一部分 为了使脚本所做的事情更具可读性 我想以类似于 UNIX diff 和 patch 方法的方式来实现它 在标准 UNIX 系统上 diff 可以生成特殊格式的文本文件 表示两个文件之间的差异 这可以与要修
  • 抑制数组列表添加方法管道输出

    我正在使用数组列表来构建日志项序列以供稍后记录 工作起来很不错 但是 Add 方法将当前索引发送到管道 我可以通过将其发送到 null 来解决这个问题 如下所示 strings Add junk gt null 但我想知道是否有某种机制可以
  • 如何在 Powershell 中自动对提示回答“是”?

    如何在 PowerShell 会话中输入 是 作为交互式问题的答案 我知道 在 Bash 中 Yes是在提示上回答 是 的工具 在我的情况下 我无法抑制提示 我正在运行的脚本停止于 如果您想继续 请回复 是 powershell 如何运行脚
  • System.IO.FileInfo 的“目标”成员记录在哪里?

    PowerShell 命令行开关Get Item 如果应用于文件 则返回System IO FileInfo type PS C gt item get item c windows System32 atl dll PS C gt ite
  • 如何使用Powershell变量打开Edge?

    我已经尝试过以下方法 edge New Object com microsoft edge application edge visible true edge FullScreen true 但我收到错误 New Object Retri
  • 如何使用卸载路径卸载 MSI

    我正在尝试获取一组应用程序的卸载路径并卸载它们 到目前为止 我得到了卸载路径列表 但我很难真正卸载这些程序 到目前为止我的代码是 app msi1 msi2 msi3 msi4 Regpath HKLM Software Microsoft

随机推荐

  • 数据库正在被另一个进程使用...但是什么进程呢?

    我编写了一个非常小的 C 程序 它使用一个非常小的 SQL Server 数据库 纯粹用于一些学习和测试目的 该数据库仅在这个新项目中使用 而没有在其他地方使用 但是 我在运行调试时遇到问题 程序无法运行 因为数据库 正在被另一个进程使用
  • 单元格中的 UIView -- 无法圆化右上角

    我有一个长方形UIView静态表视图单元格中的对象 我有一个通往物体的出口 我正在尝试有选择地圆角 但它不会圆化右侧的角 这是故事板中的样子 我要配置的视图是淡黄色的 红色视图除了确认另一个视图没有被裁剪之外没有任何实际用途 不存在约束问题
  • VBA IE 自动化 - 等待下载完成

    我正在尝试自动执行一些通过 Internet Explorer 完成的任务 其中包括下载文件 然后将其复制到不同的目录并重命名 我或多或少成功地找到了有关如何执行此操作的信息 代码正在运行 但有例外 因此如果有人可以帮助我改进此代码 我将不
  • 确定记录是否存在的最快方法

    正如标题所示 我试图找出以最少的开销最快的方法来确定表中是否存在记录 示例查询 SELECT COUNT FROM products WHERE products id vs SELECT COUNT products id FROM pr
  • 如何自定义 iOS 警报视图?

    我想创建一个自定义alert view在我的 iOS 应用程序中 例如 我想放一些images在这个alert 并更改其颜色 我知道如何创建一个正常的UIAlertView 但是有没有办法定制一个alert view 我设置了自己的 UIV
  • Chrome 扩展:XMLHttpRequest 已取消(状态 == 0)

    我尝试从服务器加载 json 文件XMLHttpRequest 但我只得到status 0Chrome 开发控制台显示 已取消 我可以用这个 简化的 代码重现这个 var httpReq new window XMLHttpRequest
  • Windows 错误 5:尝试在 Windows 中删除目录时访问被拒绝

    我正在尝试删除一个目录 但是当我运行代码时 它给出 Windows 错误 5 访问被拒绝 这是我的代码 在 Release 文件夹中 有一个名为OD if os path exists os path join get path for o
  • 具有固定行数的 ddply

    我想按 行数 分解数据 也就是说 我想向我的函数发送固定数量的行 当我到达数据帧的末尾 最后一个块 时 我只需要发送该块 无论它具有固定的行数还是更少 像这样的东西 ddply df 8 rows fun somefunction 如果你想
  • Odoo 8 - 如何更改页面标题?

    我想知道如何更改页面标题并从中删除 Odoo https www odoo com forum help 1 question change login page title 34874我尝试了这个 但我什么也没发现 标题使用标准 html
  • Python:运行进度条并同时工作?

    我想知道如何同时运行进度条和其他一些工作 然后当工作完成时 停止Python 2 7 x 中的进度条 import sys time def progress bar while True for c in sys stdout write
  • 当 DIV 的高度设置为“100%”时,为什么计算出的 DIV 高度大于其内容(如 svg)? [复制]

    这个问题在这里已经有答案了 这是我的代码 div align center style width 100 height 100 padding 0px margin 0px div
  • JavaScript for 循环索引奇怪[重复]

    这个问题在这里已经有答案了 我对 JS 比较陌生 所以这可能是一个常见问题 但我在处理 for 循环和 onclick 函数时注意到一些奇怪的事情 我能够用这段代码复制这个问题
  • 如何比较数组?还有改变属性?

    我是新的 ios 开发人员 我想比较和更改属性 数组1 对象1 对象2 对象3 对象4 数组2 对象2 对象4 对象5 对象8 比较数组 1 和数组 2 如果 Array2 中存在相同的对象 请更改对象中的属性 在上面的例子中 Object
  • 如何以 root 权限启动 QProcess?

    我需要启动gphoto2来自 Qt 程序 我这样做 QString gphotoProgram usr bin gphoto2 QStringList gphotoArguments gphotoArguments lt lt captur
  • 如何修复 Linux 中的“usr/bin/google-chrome 不再运行,因此 ChromeDriver 假设 Chrome 已崩溃”错误? [复制]

    这个问题在这里已经有答案了 我正在尝试设置一个 jenkins 服务器来在 Amazon Linux 上使用 Selenium webdriver 3 142 0 和 ruby 2 3 7 托管我的自动化框架 如果我尝试使用我的脚本调用 c
  • 从一堆对象中提取一个对象并检测边缘

    在我的大学项目中 我需要通过检测叶子的边缘来根据植物叶子的形状来识别植物的种类 我使用OpenCV 2 4 9和C 但源图像是在植物的真实环境中拍摄的 并且有不止一片叶子 请参阅下面的示例图片 所以这里我需要提取一片叶子的边缘图案来进一步处
  • 在 Visual Studio 环境中将第一个自定义对话框添加到 WIX

    我正在使用 Visual Studio 构建我的 wix 文件 到目前为止 我有一个文件 Product wxs 它可以进行简单的安装 现在我想添加一些自定义对话框 我认为从下面的两篇文章中 我了解了如何做到这一点 在我设置了环境之后 ht
  • 基底存储中私有变量的可能性

    是否可以将私有变量存储在底层存储中 特别是以以下形式存储并在私有函数中访问它们 derive Encode Decode Default Clone PartialEq Debug pub struct MyStruct id Hash t
  • python:ext4 文件系统中 os.path.exists 的复杂性?

    有谁知道 os path exists 函数在带有 ext4 文件系统的 python 中的复杂性是多少 使用的底层目录结构Ext4 and Ext3 与中完全相同Ext2 Ext3添加日记 Ext4改善日记 日记与你的问题无关 最初 Ex
  • 列出物理驱动器空间

    我有大约 200 台服务器 我需要获取磁盘空间和逻辑驱动器空间详细信息 可用空间 已用空间和总空间 这是我的 PowerShell 查询 infoObjects New Object PSObject foreach machine in