У меня есть эта строка:
$output.GetEnumerator() | Where-Object { $_.ItemPath -notlike "*.zip" } | Select ItemPath
Пример вывода:
ItemPath
--------
\\devws04
\\devws04\c$
\\devws04\c$\share
\\devws04\c$\share\Dieser ORdner ist offline erstellt worden
\\devws04\c$\share\FileOfflineMode - Copy.txt
\\devws04\c$\share\FileOfflineMode.txt
\\devws04\c$\share\Personal
\\devws04\c$\share\Personal\Okey Cuuus.txt
\\devws04\c$\share\Portfolio.txt
Строка исключает значения пути, которые содержат "* .zip".Это работает, но я хочу использовать переменную в этом месте и не добавлять все к одной строке с "и".
Я попытался сделать следующее:
$ignoreFiles = @("*.zip", "*.psd")
$output.GetEnumerator() | Where-Object { $_.ItemPath -notin $ignoreFiles } | Select ItemPath
И несколько других фрагментов, но ни одногоиз них работал.Это ничего не дало в результате.Любая подсказка приветствуется!
Это полный вывод:
ItemPath
--------
\\devws04
\\devws04\c$
\\devws04\c$\share
\\devws04\c$\share\Dieser ORdner ist offline erstellt worden
\\devws04\c$\share\Dieser ORdner ist offline erstellt worden\MeineofflineDateien.zip
\\devws04\c$\share\FileOfflineMode - Copy.txt
\\devws04\c$\share\FileOfflineMode.txt
\\devws04\c$\share\Personal
\\devws04\c$\share\Personal\Okey Cuuus.txt
\\devws04\c$\share\Portfolio.txt
РЕДАКТИРОВАТЬ: Это фактический код, и моя цель - сделать csv-экспорт, но прежде чем я хочу отфильтровать значения, как описано выше:
$ignoreFiles = "\.zip|\.psd"
#$ignoreFiles = @("*.zip", "*.psd")
$query = Get-WmiObject -query "SELECT * FROM Win32_OfflineFilesItem"
$hostName = [System.Net.Dns]::GetHostName()
$user = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
$output = @()
$query | ? {
$output += [PSCustomObject] @{
User = $user
Hostname = $hostName
ItemPath = $_.ItemPath
}
}
$output | Export-CSV $outputPath -NoTypeInformation # ONLY EXPORT OBJECTS WHERE $_.ItemPath does not contain one of the values from $ignoreFiles!