2017-08-23 2 views
2

返さない私だバイト数を返します。このコード、:は何も

$size = Get-ChildItem $userAccount.homeDirectory -Recurse | Measure-Object -Property Length -Sum 

これはうまく動作しますが、非常にユーザーフレンドリーではありませんので、私はMBまたはGBに変換したいです。

グーグルと例を見た後、私はこれを試してみた:

$size = "{0:N2}" -f ((Get-ChildItem $userAccount.homeDirectory -Recurse | Measure-Object -Property Length -Sum).Sum/1MB) 

しかし、PowerShellは何も返しません。

理由は何ですか?

編集:完全なコードを投稿してください。

機能:あなたはあなたの最初の例で数学演算を実行することができ

Get-Content brukerlistetest.txt | Foreach-Object {Get-ADUser $_ -properties homeDirectory | ? {$_.homeDirectory -ne $nul} | Get-ADHomeDirectorySize | sort HomeDirectorySize | Format-Table -HideTableHeaders | out-file output.txt -width 120 -append} 
+2

Works4me:あなたはそれを文字列になりたい場合は

は、文字列の部分式を使用することができます。 2行目だけで新しい端末/ ISEにバグを再現できますか? – wOxxOm

+0

私はコード全体を投稿すると思います。 機能 –

+0

完全なコードが掲載されています。 –

答えて

1

$size = (Get-ChildItem $userAccount.homeDirectory -Recurse | Measure-Object -Property Length -Sum)/1MB # or/1GB 

Function Get-ADHomeDirectorySize 
{ 
Param 
(
    [Parameter(ValueFromPipeline=$true,Mandatory=$true)] 
    [Microsoft.ActiveDirectory.Management.ADUser]$User 
) 
Begin 
{ 
    $HomeD = @() 
    $size = $nul 
} 
Process 
{ 
    ForEach($userAccount in $User) 
    { 
     $userAccount = Get-ADUser $userAccount -properties homeDirectory 
     $size = "{0:N2}" -f ((Get-ChildItem $userAccount.homeDirectory -Recurse | Measure-Object -Property Length -Sum).Sum/1MB) 
     If($userAccount.homeDirectory -eq $nul) 
     { 
      Write-Host "`nERROR -- User: $userAccount has no Home Directory`n" -foregroundcolor red 
      Return 
     } 
     $obj = New-Object System.Object 
     $obj | add-member -type NoteProperty -name User -value $userAccount.Name 
     $obj | add-member -type NoteProperty -name HomeDirectory -value $userAccount.homeDirectory 
     $obj | add-member -type NoteProperty -name HomeDirectorySize -value $size.sum 
     $HomeD += $obj 

    } 
} 
End 
{ 
    $HomeD 
} 
} 

スクリプトは、ユーザIDの入力リストに基づいてレポートを生成しますPowerShellには、バイトを定義する定数があります。

$size = "$((GCI $userAccount.homeDirectory -Recurse | Measure Length -Sum)/1MB)MB"