Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


powershell:file-system:shortcut-target-checking-with-powershell

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

Автор первичной редакции:
Алексей Максимов
Время публикации: 04.04.2023 19:23

Обсуждение

Ваш комментарий:
 
powershell/file-system/shortcut-target-checking-with-powershell.txt · Последнее изменение: 04.04.2023 19:25 — Алексей Максимов

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki