===== PowerShell - Проверка ярлыков *.lnk на предмет поломанных ссылок ===== Пример функции для пакетной проверки множества ярлыков *.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'} ---- Проверено на следующих конфигурациях: ^ Версия ОС ^ Версия PowerShell ^ | Windows Server 2022 Standard 10.0.20348 | 5.1.20348.1366 | ---- {{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 04.04.2023 19:23 {{tag>PowerShell "File Server" "Windows Server 2022" "Shortcut"}} ~~DISCUSSION~~