Мы удаляем загрузку профилей XP для экономии места на диске. Некоторые папки профиля для XP существуют, а также те, что для одного и того же пользователя с .V2 для Windows 7. Id нравится использовать powershell для возврата только тех профилей XP, которые существуют.Powershell Вернуть только папки, которые существуют
Вот мой код до сих пор
$path = "\\server01\profiles"
#Get User Folder names into variable for ForEach Loop
$UserFolders = get-childitem -path $path\*.V2 | where-object {$_.Psiscontainer -eq "True"} |select-object name
#Loop through folders in Directory
foreach ($UserFolder in $UserFolders){
#remove the last .V2 from the folder name
$UserFolder = $UserFolder.name.substring(0,$UserFolder.name.length-3)
write-output $path\$userfolder
test-path $path\$userfolder #returns True or false
}
Я просто не могу получить последний бит для работы. Как я могу отображать только те папки, которые существуют (return True)
В качестве примечания: всегда используйте «Test-Path -LiteralPath», если вы не уверены, что вам нужно сопоставить шаблоны. Я также рекомендую использовать '(Join-Path $ path $ userfolder)', а не '$ path \ $ userfolder'. –