powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Windows [игнор отключен] [закрыт для гостей] / PowerShell - Rename-Item - Access denied
2 сообщений из 2, страница 1 из 1
PowerShell - Rename-Item - Access denied
    #38446365
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть powershell-скрипт, который распаковывает 7z-архив в новую папаку (папка создается автоматически при распаковке), а затем переименовывает эту папку:

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
param($basePath)

$path="TEST\123\456"
$path_cur = join-path $basePath $path
$path_old = join-path $basePath ${path}_old
$path_new = join-path $basePath ${path}_new
$path_tmp = join-path $basePath ${path}_tmp

$pathToZipExe = "$env:BASE_HOME\exe\7za\7za.exe"

write-host "Remove old folder - ${path_old} ....."
if (Test-Path $path_old){Remove-Item $path_old -Force -Recurse -ErrorAction SilentlyContinue}
write-host "Remove ok!"

write-host "Unzip partitions $path_tmp\tmp.7z.001 to $path_new ....."
$zipLog = & $pathToZipExe "x", "${path_tmp}\tmp.7z.001", "-o${path_new}", "*.*", "-r", "-y"
if ($LASTEXITCODE -ne 0) {
  write-host $zipLog
  throw "Unzip error: ${zipLog}"}
write-host "Unzip ok!"

write-host "Rename updated folder <<${path_cur}>> to <<${path_old}>> ....."
if (Test-Path $path_cur) {Rename-Item ${path_cur} ${path_old}}
write-host "Rename ok!"

write-host "Rename new folder <<${path_new}>> to updated <<${path_cur}>> ....."
Rename-Item ${path_new} ${path_cur}
write-host "Rename ok!"

write-host "Remove tmp folder with partitions - ${path_tmp} ....."
Remove-Item $path_tmp -Force -Recurse -ErrorAction SilentlyContinue
write-host "Remove ok!"



Во время переименования (желтая строка) происходит ошибка:

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
Rename-Item : Access to the path 'D:\MAIN\TEST\123\456
     [exec] 5_new' is denied.
     [exec] At E:\ARM_UPD\TMP_SETUP\11796134\finalScript.ps1:28 char:12
     [exec] + Rename-Item <<<<  ${path_new} ${path_cur}
     [exec]     + CategoryInfo          : WriteError: (D:\MAIN...456_new:S 
     [exec]    tring) [Rename-Item], IOException
     [exec]     + FullyQualifiedErrorId : RenameItemIOError,Microsoft.PowerShell.Commands. 
     [exec]    RenameItemCommand



Причем ошибка повторяется не везде (на тестовом сервере такой ошибки нет) и не всегда (для некоторых папок на некоторых серверах иногда отрабатывает).

В чем может быть проблема?
...
Рейтинг: 0 / 0
PowerShell - Rename-Item - Access denied
    #38448030
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже что после завершения распаковки новая папка остается еще некоторое время блокированной, и сразу ее переименовать не получается - access denied. Если поставить достаточно большой таймаут между распаковкой и переименованием (ставил минуту), то ошибки нет.

Как дождаться полного освобождения папки после разархивации?
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / PowerShell - Rename-Item - Access denied
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]