Du kannst dabei direkt auf .NET Klassen zurück greifen, das ist um einiges effizienter als Get-ChildItem.
$folderpath = "C:\test"
$folderCount = [System.IO.Directory]::EnumerateDirectories($folderpath, "*", [System.IO.SearchOption]::AllDirectories) | Measure-Object | Select-Object -ExpandProperty Count
Write-Output "Anzahl der Unterordner: $folderCount"