尝试从给定目录中筛选出所有 .p12 和 .pfx 文件



我的组织需要过滤并从我们的计算机和服务器中删除所有.PFX.P12文件。 我们目前每周运行的脚本在更高的指导下不够深入或不够深入。 我正在尝试做的是采用我当前的工作脚本,并过滤两个文件扩展名。 写剧本的人几乎已经离开了这个世界,所以我正在写一个我没有写的剧本,但我正在努力熟悉。

我已经尝试更改Get-ChildItemcmdlt 中的某些变量以在那里应用筛选而不是变量。 这包括以下尝试:

$Files = Get-ChildItem -Path \$clientc$Users -Filter -filter {(Description -eq "school") -or (Description -eq "college")} -Recurse -ErrorAction SilentlyContinue 

这是代码的一部分,而不是全部。 除此之外,还有日志记录和注释以及其他管理任务,我只包括了创建错误的代码部分。

$computers = Get-ADComputer -Filter * -SearchBase "AD OU PATH OMITTED"
$destination = "****SoftwareaPatching_ToolsLog FilesSoft CertWorkstationsAUG 19WEEK 2"
$ext = "*.pfx"
foreach ($computer in $computers)
{
$client = $computer.name
if (Test-Connection -ComputerName $client -Count 1 -ErrorAction SilentlyContinue)
{
$outputdir = "$destination$client"
$filerepo = "$outputdirFiles"
$files = Get-ChildItem -Path \$clientc$Users -Filter $ext -Recurse -ErrorAction SilentlyContinue
if (!$files)
{
Write-Host -ForegroundColor Green "There are no .pfx files on $client."
}
else
{
Write-Host -ForegroundColor Cyan "PFX files found on $client"

脚本的预期和正常操作是,它会遍历每台计算机,对其进行测试,如果脱机,则继续前进,或者如果处于联机状态,则在搜索并继续前进时会暂停 4-5 分钟。

当我进行更改(例如执行$ext = "*.p12")时,我遇到的错误".pfx"-Filter不支持此操作。 或者,如果我尝试上述对过滤的更改,则每台计算机的脚本需要 1-2 秒,并且有时C:\Users文件夹中有 15-20 个用户,几乎不可能通过网络快速搜索。

不要将扩展作为-filter传递,而是使用-include- 即$files = Get-ChildItem -Path \$clientc$Users* -include $ext -Recurse -ErrorAction SilentlyContinue传递它们。然后,您可以将$ext定义为字符串数组,例如$ext = "*.pfx","*.p12"Get-ChildItem将仅返回具有指定扩展名的文件。

相关内容

  • 没有找到相关文章

最新更新