У меня проблема, когда я хочу удалить папки профиля на сетевом ресурсе. Кажется, есть проблема с некоторыми папками, которые нельзя удалить.
Вот код, который отлично работает в большинстве папок:
Import-Module -Name 'C:\Users\mkz\Documents\powershell\modules\AlphaFS.2.1.3.0\Lib\Net452\AlphaFS.dll'
$folder = "\\filsrvm\MDrev\folderName"
#Function to take ownership and grant permissions
function takeOwnership($path)
{
if(Test-Path $path)
{
$server = ($path).Split("\\",5)[2]+".adm.domain.dk"
takeown.exe /S $server /F $path /r /d Y
icacls $path /grant 'GroupAdm_GL:(CI)(OI)F' /t /c /q
icacls "$path\*" /reset /t /c /q
}
}
#Function to delete folders
function deleteFolder($path)
{
if(Test-Path $path)
{
[Alphaleonis.Win32.Filesystem.Directory]::Delete($path, $true, $true)
}
}
takeOwnership($folder)
deleteFolder($folder)
Я получаю следующую ошибку:
<red>Exception calling "Delete" with "3" argument(s): "(145) The directory is not empty: [\\?\UNC\filsrvm\MDrev\folderName\Ctx]"
At C:\Users\mkz\Documents\powershell\singleDelete.ps1:24 char:9
+ [Alphaleonis.Win32.Filesystem.Directory]::Delete($path, $true ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DirectoryNotEmptyException</red>
Я пытался использовать Remove-Item $path -force -Recurse
вместо "Alphaleonis", но это приводит к той же ошибке.