2014-09-04 34 views
1

我試圖爲用戶自動化一些東西,其中之一是將「計算機」和「文檔」快捷方式添加到其桌面。使用powershell創建「計算機」和「文檔」快捷方式

我在網上找到下面的代碼,改變了目標 「的explorer.exe/e,以:: {20D04FE0-3AEA-1069-A2D8-08002B30309D}」

$WshShell = New-Object -ComObject WScript.Shell 
$Shortcut = $WshShell.CreateShortcut(C:\users\username\Desktop\Computer.lnk") 
$Shortcut.TargetPath = "explorer.exe \/e,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}" 
$Shortcut.Save() 

但是當我運行這段代碼我出現以下錯誤:

「異常調用‘保存’和‘0’的說法:‘無法保存shotcut’

如果有另一種簡便的方法,我很想聽到它:)

提前感謝大家。

+1

這是更簡單的使用組策略首選項,如文檔[這裏](http://blogs.technet.com/b/askds/archive/2014/02/17/adding-shortcuts-on-desktop-使用基團的策略偏好式 - 窗口8和 - 窗口8-1.aspx)。 – 2014-09-04 22:14:03

+0

當試圖設置TargetPath(「TargetPath:參數不正確」)時,我得到一個完全不同的錯誤。嘗試設置TargetPath =「explorer.exe」和Arguments =「\/e,:: {20D04FE0-3AEA-1069-A2D8-08002B30309D}」。此外,是當前用戶的文件夾或不同用戶的快捷方式? – 2014-09-05 00:19:12

+0

嗨,邁克。我使用我的管理員帳戶運行腳本,以在用戶桌面上創建快捷方式。下面馬特的腳本就像一個魅力,除非我用我的管理員帳戶運行腳本,我會得到錯誤信息。 – Besiktas 2014-09-05 14:07:02

回答

0

我想我在這裏有一個很好的解決方案。此外,在我自己的無能,我想我找出你的錯誤原因

首先,我發現一個cleaner的方式來創建特殊文件夾的快捷方式。

$WshShell = New-Object -ComObject WScript.Shell 
$Shortcut = $WshShell.CreateShortcut("C:\users\user\Desktop\MacadizamianNizzut.lnk") 
$Shortcut.TargetPath = [environment]::getfolderpath("mycomputer") 
$Shortcut.Save() 

你也可以代替mycomputer使用mydocuments。有關可以使用的特殊文件夾的完整列表:[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." 
} 
+0

這工作完美。非常感謝。唯一的問題是,如果我使用我的管理員帳戶運行腳本(這是我將如何運行腳本),我仍然收到「Exception calling ...」錯誤。但是,如果我使用用戶帳戶運行腳本,它的工作原理是完美的。任何想法如何解決這個問題? – Besiktas 2014-09-05 13:27:28

+0

你在腳本中完全使用了什麼'CreateShortcut(「C:\ users \ user \ Desktop \ MacadizamianNizzut.lnk」)''。我想你的,如果你equivelent通過這個測試:'測試路徑「C:\用戶\用戶\桌面」' – Matt 2014-09-05 14:15:29

+0

我剛剛嘗試了測試路徑,並被拒絕訪問。很奇怪。但這是我的管理員帳戶。爲什麼我會拒絕訪問? – Besiktas 2014-09-05 14:25:19

相關問題