特定の AppV パッケージを削除するスクリプトを作成しようとしています。私が抱えている問題は、管理者アクセス権を持たないローカル ユーザーの下に AppV パッケージがインストールされているため、次のメッセージが表示されることです。
"アクセス拒否"
ただし、スクリプトを管理者として実行し、資格情報を与えると、AppV パッケージが表示されません。これは、パッケージを一覧表示して削除するために使用しているコードのセクションです。
# Remove AppV version of inProcess
$allAppV = Get-AppvClientPackage
If ($allAppV.Count -ge 0) {
$i = 1
#This part lists the packages
Write-Host "List AppV packages"
ForEach($Package in $allAppV) {
Write-Host `t $i - $Package.Name
$i +=
1
}
# Select which package to remove
$NumbertoRemove = Read-Host
"Which one would you like to remove? Type 0 if none"
If ($NumbertoRemove -eq 0) {
Write-Host "Not removing any App-V Client Package"
$Global:More = $False
}
else {
If ($NumbertoRemove -le $allAppV.Count) {
$NumbertoRemove -= 1
Write-Host "Removing package" $allAppV[$NumbertoRemove].Name
$PackageToRemove = $allAppV[$NumbertoRemove]
If ($PackageToRemove.IsPublishedGlobally)
{Unpublish-AppvClientPackage $allAppV[$NumbertoRemove]}
# I need to provide admin credentials for this step
Remove-AppvClientPackage $allAppV[$NumbertoRemove]
Write-Host "AppV Client Package has been removed"
ローカル ユーザーとしてスクリプトを実行すると、次のようになります。1 を入力すると、inProcess を削除しようとしますが、許可拒否エラーが発生します。
管理者として実行すると、パッケージがリストされないことを除いて同じように見えます。スクリプトが管理者として実行されているため、管理者アカウントにインストールされているパッケージが一覧表示されているためだと思います。
管理者としてスクリプトを実行する必要がありますが、ローカル ユーザーの Appv パッケージを一覧表示するか、remove-AppvClientPackages ステップの資格情報を提供します。パッケージを削除するには、資格情報を求めるプロンプトを表示することをお勧めします。ありがとう