iNNOKENTIY21
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Код: function Test-Shortcut([Parameter(Mandatory, ValueFromPipelineByPropertyName)][string]$FullName) { begin { $shell = New-Object -ComObject WScript.Shell } process { $shortcut = $shell.CreateShortcut($_.FullName) if ($shortcut.TargetPath) { $TargetPathValid = Test-Path -Path $shortcut.TargetPath $_ | Add-Member -MemberType NoteProperty -Name TargetPath -Value $shortcut.TargetPath $_ | Add-Member -MemberType NoteProperty -Name TargetPathValid -Value $TargetPathValid } $_ } } # Пример использования $StartMenu = ([Environment]::GetFolderPath('StartMenu')) $StartMenuLNK = Get-ChildItem -Path $StartMenu -Filter "*.lnk" -Recurse -Force -ErrorAction Ignore $StartMenuLNK | Test-Shortcut | Sort-Object TargetPathValid | Format-Table Name, TargetPath, TargetPathValid "Ярлыков: $($StartMenuLNK.Length)" # Список специальных папок: #[System.Environment+SpecialFolder]::GetNames([System.Environment+SpecialFolder]) # Список ярлыков из меню ПУСК текущего пользователя: #Get-ChildItem -Path ([System.Environment]::GetFolderPath('StartMenu')) -Filter "*.lnk" -File -Recurse |
|