我正在使用SCOM模块来处理SCOM,我需要从SCOM中找到已经导入的somemanagementpack.mpb文件信息,而不是根据版本在本地删除相同的somemanagementpack.mpb文件。
下面是我使用的命令
Import-Module "OperationsManager"
New-SCOMManagementGroupConnection -ComputerName "DEVSCOM"
$mp = Get-SCManagementPack -BundleFile C:\Temp\somemanagementpack.mpb
$version = $mp.Version
$localVersion = "1.0.0.0"
if($version -gt $localVersion)
{
Remove-Item "C:\Temp\somemanagementpack.mpb" -Force
}但是,当我试图删除它时,我也尝试使用Dispose方法,但是没有发生任何事情。
操作无法完成,因为文件是打开的
发布于 2020-12-21 19:40:47
SCOM正在锁定文件。让它停止的唯一方法是终止PowerShell进程。
作为解决办法,我建议先将每个文件的副本复制到另一个目录。让您的脚本从副本中获取版本。然后删除原始文件,如果它符合您的条件,它将不会被锁定。完成之后,关闭PowerShell窗口并删除包含所有复制文件的目录。
Import-Module "OperationsManager"
New-SCOMManagementGroupConnection -ComputerName "DEVSCOM"
Copy-Item C:\Temp\somemanagementpack.mpb C:\Temp\Copy\somemanagementpack.mpb
$mp = Get-SCManagementPack -BundleFile C:\Temp\Copy\somemanagementpack.mpb
$version = $mp.Version
$localVersion = "1.0.0.0"
if($version -gt $localVersion)
{
Remove-Item "C:\Temp\somemanagementpack.mpb" -Force
}如您所见,只有副本被锁定。

https://stackoverflow.com/questions/65218409
复制相似问题