У меня есть следующий код в Azure Runbook:
$pathToDownloadedBlob = 'C:\depId-20150904032522\SevenZipSharp.dll'
if ((Test-Path $pathToDownloadedBlob) -eq $true)
{
try
{
Remove-Item -Path $pathToDownloadedBlob
}
catch
{
write-error "Could not delete $pathToDownloadedBlob. - $($error[0])"
exit
}
}
Когда я использую Remove-Item
, я получаю эту ошибку:
4/7/2015 2:14:14 PM, Error: Remove-Item : The converted JSON string is in bad format.
At DavidTest:45 char:45
+
+ CategoryInfo : InvalidOperation: (System.Unauthor... Boolean force):ErrorRecord) [Remove-Item],
InvalidOperationException
+ FullyQualifiedErrorId : JsonStringInBadFormat,Microsoft.PowerShell.Commands.RemoveItemCommand
Когда я вместо этого использую [System.IO.File]::Delete($using:path)
, я получаю эту ошибку:
4/7/2015 2:22:48 PM, Error: Exception calling "Delete" with "1" argument(s): "Access to the path 'C:\Deployment\SevenZipSharp.dll' is denied."
At DavidTest:46 char:46
+
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : UnauthorizedAccessException
Я знаю, что у меня нет прав на удаление файла. Однако почему он жалуется на строку JSON, когда я использую Remove-Item
?
РЕДАКТИРОВАТЬ: обратите внимание, что это происходит только в службе автоматизации Azure. Однако я не смог воспроизвести это в Powershell ISE локально, потому что у меня есть разрешение на файлы, которые я хочу удалить.
ОБНОВЛЕНИЕ: я только что понял, что это происходит только с файлами .dll. Если я пытаюсь удалить файл .7z, он работает нормально.