Пошаговые руководства, шпаргалки, полезные ссылки...
БлогФорумАвторы
Полезные Online-сервисы
Перечень Бесплатного ПО
Подписка на RSS-канал
Пример функции для пакетной проверки множества ярлыков *.lnk на предмет поломанных ссылок:
Function Check-Shortcut{ [CmdletBinding()] Param( [Parameter( Mandatory=$True, HelpMessage="Please enter Path of Shortcut, Example c:\folder", Position=1 )][string]$path ) $ErrorActionPreference='Silentlycontinue' $Shortcuts = Get-ChildItem -Recurse $path -Include *.lnk -Force $Shell = New-Object -ComObject WScript.Shell Foreach ($Shortcut in $Shortcuts) { $checks=$shell.CreateShortcut($Shortcut).TargetPath Foreach($check in $checks){ $pathcheck=Test-Path $($check) if($pathcheck -eq $false){ [Pscustomobject]@{ Status ='Failed' Shortcut =$Shortcut.name FailedTopath =$($check) } } elseif($pathcheck -eq $True){ [Pscustomobject]@{ Status ='Sucess' Shortcut =$Shortcut.name Workingpath =$($check) } } } } }
Пример вызова функции:
Check-Shortcut -path "\\Server\Share\SHORTCUTS" | where{$_.status -eq 'Failed'}
Проверено на следующих конфигурациях:
Автор первичной редакции: Алексей Максимов Время публикации: 04.04.2023 19:23