В основном то, что я пытаюсь сделать, это собрать размер папки пользователей из их сетевой папки, а затем экспортировать ее в .csv, структура каталогов выглядит примерно так: network:\Department\user...User's-stuff
Сценарий, который у меня есть прямо сейчас, получает имя файла отдела и размер папки пользователя, но не имя пользователя (имя папки в отделе). Что касается TimeStamp, я не уверен, что он работает правильно. Он предназначен для создания временной метки, когда он запускается для пользователей в следующем отделе, поэтому в основном все пользователи в одном и том же отделе будут иметь одинаковую временную метку.
Это то, что у меня есть до сих пор:
$root = "network"
$container= @()
$place = "C:\temp\"
$file = "DirectoryReport.csv"
Function Get-FolderSize
{
BEGIN{$fso = New-Object -comobject Scripting.FileSystemObject}
PROCESS
{
$prevDept = (Split-Path $path -leaf)
$path = $input.fullname
$folder = $fso.GetFolder($path)
$Volume = $prevDept + "-users"
$user = $folder.name #can't figure this part out...
$size = $folder."size(MB)"
if ( (Split-Path $path -leaf) -ne $prevDept)
{
$time = Get-Date -format M/d/yyy" "HH:mm #Probably wrong too..
}
return $current = [PSCustomObject]@{'Path' = $path; 'Users' = $user; 'Size(MB)' = ($size /1MB ); 'Volume' = $Volume; 'TimeStamp' = $time;}
}
}
$container += gci $root -Force -Directory -EA 0 | Get-FolderSize
$container
#Creating the .csv path
$placeCSV = $place + $file
#Checks if the file already exists
if ((test-path ($placeCSV)) -eq $true)
{
$file = "DirectoryReport" + [string](Get-Date -format [email protected]) + ".csv"
rename-item -path $placeCSV -newname $file
$placeCSV = $place + $file
}
#Exports the CSV file to desired folder
$container | epcsv $placeCSV -NoTypeInformation -NoClobber
Но в файле CSV пользователь и метка времени неверны. Спасибо за любую / всю помощь