初めてのstackoverflowerです。msiScriptNameの 'A'と 'R'の値は何を表していますか?
ソフトウェアデプロイメントGPOのPackageRegistrationsから「ゴースト」エントリを削除する必要があります。
これは、GPIに関連付けられているMSI/MSTファイルよりもADSIオブジェクトに多くのエントリがあることを意味します。つまり、このブロガーがhttp://justanotheritblog.co.uk/2016/11/15/list-msi-paths-from-software-installation-policies/(私の問題を調べるときにこれを見つけたばかり)を経験しているようだ。
ADSIのプロパティを取り巻くとき、私は 'msiScriptName'を突き抜けました。これは 'A'または 'R'の値を持つようです。
私は見つけられないようですが、これらの値が何を表すかについての情報です。
「A」と「R」の意味、および/または「ゴースト」の項目を訂正する方法と/または削除する方法についてのアイデアが大きく受け取りました。
これは、ファイルパスの更新が必要なソフトウェア展開GPOがたくさんあるため、PowerShellを使用して手動で一括編集するよりも、バルクで更新する必要があるからですファイルサーバーなので、msiFileListプロパティを更新する必要があります。これはできますが、無関係なオブジェクトに対する処理オーバーヘッドを無駄にしたくありません。
私はこれまでのところ、私が言うことができるように、この
$MSIFiles = @()
# Get all the SoftwareDeployment GPOs, indicated by a displayname continaing 'Install' and create an object for each MSI/MST associated to it.
$Packages = Get-GPO -All | Where-Object { $_.DisplayName -like "*Install*" } | Get-ADObjectGPOPackages -Domain 'skyriver.internal'
foreach ($p in $Packages)
{
$msiCount = ($p.msiFileList | Measure-Object).Count
$msiFileListNew = @()
for ($i = 0; $i -lt $msiCount; $i ++)
{
$msiFile = $p.msiFileList[$i] -replace 'hoth(01|01.skyriver.internal|02.skyriver.internal)','skyriver.internal\data'
$msiFileListNew += $msiFile
}
$Properties = [ordered]@{
'gpoDisplayName' = $p.gpoDisplayName
'PackageNumber' = $p.PackageNumber
'DisplayName' = $p.DisplayName
'CN' = $p.CN
'DistinguishedName' = $p.DistinguishedName
'Identity' = $p.Identity
'msiFileList' = $msiFileListNew
}
$obj = New-Object -TypeName psobject -Property $Properties
$MSIFiles += $obj
}
# Now make the replacements.
foreach ($m in $MSIFiles)
{
Set-ADObject -Identity $m.Identity -Server dagobah.skyriver.internal -Replace @{msiFileList = $m.msiFileList}
}
ありがとう、ティム、本当に役に立ちました。私は時間を見つけることができるときにいくつかのテストを行うかもしれません。 – Craig