gpt4 book ai didi

powershell - 如何使用PowerShell从GAC中已存在的给定路径中删除所有dll?

转载 作者:行者123 更新时间:2023-12-02 23:54:39 25 4
gpt4 key购买 nike

这里是否有任何PowerShell专家知道如何从GAC中已存在的给定路径中删除所有dll?

最佳答案

您可以使用以下名称通过名称来确定程序集是否已存在于GAC中:

$AssemblyName = [System.Reflection.AssemblyName]::GetAssemblyName("C:\Path\to\assembly.dll")
$IsInGAC = [System.Reflection.Assembly]::ReflectionOnlyLoad($AssemblyName).GlobalAssemblyCache

您可以将其包装在测试函数中以过滤输入程序集:
function Test-GACPresence {
param(
[Parameter(Mandatory=$true,ParameterSetName='Path')]
[string]$Path,

[Parameter(Mandatory=$true,ParameterSetName='LiteralPath',ValueFromPipelineByPropertyName=$true)]
[Alias('PsPath')]
[string]$LiteralPath
)

$LiteralPath = if($PSCmdlet.ParameterSetName -eq 'Path'){
(Resolve-Path $Path).ProviderPath
} else {
(Resolve-Path $LiteralPath).ProviderPath
}

try{
return [System.Reflection.Assembly]::ReflectionOnlyLoad([System.Reflection.AssemblyName]::GetAssemblyName($LiteralPath)).GlobalAssemblyCache
}
catch{
return $false
}
}

$ExistsInGAC = Get-ChildItem "path\to\test" -Filter *.dll -Recurse |?{$_|Test-GACPresence}
$ExistsInGAC |Remove-Item

关于powershell - 如何使用PowerShell从GAC中已存在的给定路径中删除所有dll?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48041304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com