Последующие меры по этому вопросу: How to get a value in a foreach loop into a sum?Как игнорировать нулевые значения в foreach в powershell?
У меня есть этот фрагмент Powershell кода:
$TotalHomeDirSizeMB = 0
foreach ($user in $ListofUsers)
{
# Calculate sum of file sizes, grab Sum property value directly
$HomeDirSize = (Get-ChildItem $user.HomeDirectory -Recurse | Measure-Object -Property length -sum).Sum
# Calculate and store size in MB
$HomeDirSizeMB = "{0:N2}" -f ($HomeDirSize/1MB)
# Add to cumulative size variable
$TotalHomeDirSizeMB += $HomeDirSizeMB
# Write results to screen + file
Write-Host "`r`n Size of:" $user.HomeDirectory
Write-Host ("{0:N2} MB" -f $HomeDirSizeMB)
"$($user.HomeDirectory) = $HomeDirSizeMB MB" | Out-File $LogFileName -Append
# Remove Home Directory
Remove-Item $user.HomeDirectory -Force -Recurse -ErrorAction SilentlyContinue
Write-Host "`r`n Removed HomeDirectory: " $user.HomeDirectory
# Wait for user to verify deletion from AD, preempt Confirmation if verified
Write-Host "`r`n Verifying you want to remove the user: " $user.Name -ForegroundColor Yellow -BackgroundColor Red
if ((Read-Host -Prompt "y for yes") -eq 'y'){
Remove-ADObject $user.DistinguishedName -Confirm:$false
}
}
Write-Host "Removed $TotalHomeDirSizeMB MB"
Мне нужен способ иметь дело с сценарий не erroring, если HomeDirectory пользователя в этом атрибуте AD NULL ,
Я думал, что это будет встроенный оператор IF ниже foreach, но я не могу заставить оператор If работать правильно, я продолжаю получать синтаксические ошибки.
Может ли кто-нибудь помочь в выполнении инструкции IF, чтобы убедиться, что код foreach работает только в том случае, если HomeDirectory имеет значение?
Привет, пожалуйста, покажите нам свою попытку с 'if' блока (изменить ваш вопрос), это довольно легко, вы должны помочь очень скоро. – sodawillow
@sodawillow - я делал, если {$ _. HomeDirectory -ne $ null}, но все равно будет ошибка, если атрибут был пустым ... не знаю, почему – TheCleaner
Вам нужны parens '()' вместо фигурных скобок '{} ' – sodawillow