Ich habe diesen Code, die Anzahl von Bytes zurückgibt:Konvertieren von Bytes GB oder MB gibt nichts
$size = Get-ChildItem $userAccount.homeDirectory -Recurse | Measure-Object -Property Length -Sum
Dies funktioniert gut, ist aber nicht sehr benutzerfreundlich, so möchte ich Megabyte oder Gigabyte konvertieren .
Nach googeln und an Beispielen suchen, habe ich das versucht:
$size = "{0:N2}" -f ((Get-ChildItem $userAccount.homeDirectory -Recurse | Measure-Object -Property Length -Sum).Sum/1MB)
Allerdings gibt Powershell nichts.
Irgendeine Idee warum?
Bearbeiten: Posting vollständigen Code.
Funktion:
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
}
}
Script Bericht zu generieren, basierend auf einer Eingangsliste von Benutzer-IDs:
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}
Works4me. Können Sie den Fehler in einem neuen Terminal/ISE nur mit der 2. Zeile reproduzieren? – wOxxOm
Ich denke, ich werde nur den gesamten Code posten .. Funktion –
Vollständiger Code geschrieben. –