Powershell

Eksportowanie virtualek

# skasowanie plików i folderow starszych niz 30 dni
$date = (Get-Date).ToString('dd_MM_yyyy')
# tworzenie folderu - nie wywala bledu nawet jesli istnieje
New-Item -ItemType Directory -Force -Path "E:\BACKUP_VIRTUALKI\"
Get-ChildItem –Path "E:\BACKUP_VIRTUALKI" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-30))} | Remove-Item -Recurse -Force
New-Item -ItemType Directory -Path "E:\BACKUP_VIRTUALKI\$date"
Export-VM -NAME "SERVER01" -Path "E:\BACKUP_VIRTUALKI\$date\"
Export-VM -NAME "SERVER02" -Path "E:\BACKUP_VIRTUALKI\$date\"
Export-VM -NAME "SERVER03" -Path "E:\BACKUP_VIRTUALKI\$date\"
Export-VM -NAME "SERVER04" -Path "E:\BACKUP_VIRTUALKI\$date\"

Powershell: directory name must be less than 248 characters

Może się przyda

Udało mi się obejść, prymitywnie, ale udało się, ograniczenie powershella

Mianowicie to: 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

Zamiast: Remove-Item na końcu robię Move-Item do innego folderu i nie wywala błędu długich nazw

A poleceniem dosowe rmdir nie ma problemu z kasowaniem długich ścieżek, plików

[sourcecode language=”powershell”]
Cmd /C "mkdir R:\DO_SKASOWANIA"
Get-ChildItem -Path "R:\BACKUP" | Where-Object { $_.CreationTime -lt (Get-Date).AddDays(-5)} | Move-Item -Destination "R:\DO_SKASOWANIA"
Cmd /C "rmdir /S /Q R:\DO_SKASOWANIA"[/sourcecode]