0

我正在使用 OperationsManager 模块来处理 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方法,但没有任何反应

无法完成操作,因为文件已打开

4

1 回答 1

1

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
    }

如您所见,只有副本被锁定

复制锁定

于 2020-12-21T19:40:47.470 回答