Я пишу простой script для удаления папок миграции USMT через определенное количество дней:
## Server List ##
$servers = "Delorean","Adelaide","Brisbane","Melbourne","Newcastle","Perth"
## Number of days (-3 is over three days ago) ##
$days = -3
$timelimit = (Get-Date).AddDays($days)
foreach ($server in $servers)
{
$deletedusers = @()
$folders = Get-ChildItem \\$server\USMT$ | where {$_.psiscontainer}
write-host "Checking server : " $server
foreach ($folder in $folders)
{
If ($folder.LastWriteTime -lt $timelimit -And $folder -ne $null)
{
$deletedusers += $folder
Remove-Item -recurse -force $folder.fullname
}
}
write-host "Users deleted : " $deletedusers
write-host
}
Однако я продолжаю сталкиваться с ужасным Remove-Item : The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
Я искал обходные пути и альтернативы, но все они вращаются вокруг меня, заботясь о том, что находится в папке.
Я надеялся на более простое решение, так как мне действительно не нравится содержимое папки, если оно помечено для удаления.
Есть ли какой-либо родной командлет Powershell, отличный от Remove-Item -recurse, который может выполнить то, что мне нужно?