UInt64同士の割り算に失敗します。詳細は以下のフィードバックです。
できれば追試をお願いします。
https://connect.microsoft.com/feedback/ViewFeedback.aspx?FeedbackID=218579&SiteID=99
スクリプトの紹介
$drives = Get-WmiObject Win32_LogicalDisk | Where-Object -FilterScript {$_.DriveType -eq 3} | foreach { $DeviceID = $_.DeviceID;$Size = $_.Size;$FreeSpace = $_.FreeSpace;$ExistPersent = 100 - $FreeSpace / $Size * 100}
パイプをばらしてみましょう。
$drives = Get-WmiObject Win32_LogicalDisk
| Where-Object -FilterScript {$_.DriveType -eq 3}
| foreach { $DeviceID = $_.DeviceID;$Size = $_.Size;$FreeSpace = $_.FreeSpace;$ExistPersent = 100 - $FreeSpace / $Size * 100}
あ、ちょっと失敗してる(^^;;
1行目でWMIにアクセスして論理ディスクの一覧を取得しています。
2行目でドライブタイプが3のものだけに絞り込んでいます。
3行目で、実際の空き容量などを計算して、という流れです。
これはCodeZineで紹介したディスク容量算出wshの移植を試みたものです。(^^
https://codezine.jp/a/article.aspx?aid=501&mode=preview&p=2
ちなみにVisual Studio 2005でC#では実行できました。
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
UInt64 a = 10;
UInt64 b = 20;
UInt64 c = b / a;
}
}
}