Я думаю, у меня есть хорошее решение здесь. Кроме того, в моем собственном неумении, я думаю, что выяснил причину ошибки.
Сначала я нашел способ создания ярлыков в специальных папках. cleaner.
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("C:\users\user\Desktop\MacadizamianNizzut.lnk")
$Shortcut.TargetPath = [environment]::getfolderpath("mycomputer")
$Shortcut.Save()
Вы также можете использовать mydocuments
вместо mycomputer
. Полный список специальных папок, которые вы можете использовать: [enum]::GetNames([System.Environment+SpecialFolder])
. Подсказки к JRV для комментария по моей ссылке выше.
Что касается вашей ошибки "Exception calling "Save" with "0" arguments : "Unable to save shortcut"
. Я тоже получил эту ошибку. На практике это было связано с тем, что значение, прошедшее для createshortcut
, не было допустимым путем. Я не говорю, что файл должен существовать, но путь к папке. Я сделал опечатку и получил ошибку. Используя мой пример этой команды провалились бы: Test-Path ""C:\users\user\Desktop"
Некоторые ошибки Профилактика
Что мы можем сделать, это назначить ярлык путь к переменной и проверить путь, основанный на этом.
$ShortcutPath = "C:\users\username\desktop\test.lnk"
If(Test-Path -Path (Split-Path -Path $ShortcutPath -Parent)){
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = [environment]::getfolderpath("mycomputer")
$Shortcut.Save()
} Else {
Write-Host "Unable to create shortcut. Check the path $ShortcutPath."
}
Это проще, используя предпочтения групповой политики, как описано [здесь] (http://blogs.technet.com/b/askds/archive/2014/02/17/adding-shortcuts-on-desktop- политик предпочтение с помощью-группа-в-окна-8-и-окна-8-1.aspx). –
Я получаю совершенно другую ошибку при попытке установить TargetPath с этим («TargetPath: параметр неверен»). Попробуйте установить TargetPath = "explorer.exe" и Аргументы = "\/e, :: {20D04FE0-3AEA-1069-A2D8-08002B30309D}". Кроме того, это ярлык в папке текущего пользователя или другом пользователе? –
Hi Mike. Я запускаю скрипт с учетной записью администратора для создания ярлыка на рабочем столе пользователей. Скрипт Мэтта ниже работает как шарм, кроме случаев, когда я запускаю скрипт с учетной записью администратора, я получаю сообщение об ошибке. – Besiktas