我想在用户的桌面上创建一个快捷方式,指向他们将备份.pst文件的共享。我借用了使用%username%
变量创建快捷方式的代码,如果我以自己的身份登录它,它就可以运行。但是,当实际用户登录时,它仍然以我的名字作为用户而不是当前登录的用户。如何使其变量?
以下是代码:
# Create a Shortcut with Windows PowerShell
$TargetFile = "\\fileserver\%username%$"
$ShortcutFile = "C:\Users\Public\Desktop\Mail.lnk"
$WScriptShell = New-Object -ComObject WScript.Shell
$Shortcut = $WScriptShell.CreateShortcut($ShortcutFile)
$Shortcut.TargetPath = $TargetFile
$Shortcut.Save()
当我登录时,代码在桌面上工作并创建一个快捷方式。但是当另一个用户登录时,我的用户名将被填充,因为我运行了脚本,而不是使用他们的用户名%username%
。有没有办法使这种动态,以便谁登录将有他们在网络上的共享的快捷方式?
答案 0 :(得分:2)
使用Windows资源管理器作弊
这个TechNet post的绅士信用。环境路径变量扩展适用于前缀路径很简单,但似乎不允许中间路径扩展。我不知道这种概括是否正确,但在实践中却是如此。
$TargetFile = "%windir%\explorer.exe"
$arguments = '/e,"\\fileserver\%username%$"'
$ShortcutFile = "C:\Users\Public\Desktop\Mail.lnk"
$WScriptShell = New-Object -ComObject WScript.Shell
$Shortcut = $WScriptShell.CreateShortcut($ShortcutFile)
$Shortcut.TargetPath = $TargetFile
$Shortcut.Arguments = $arguments
$Shortcut.Save()
因此我们使用/e argument调用Windows资源管理器,然后使用环境变量pre expansion指定目标路径。
答案 1 :(得分:0)
创建快捷方式 - >
seen = set()
lst = []
for i, v in enumerate(original):
if not v in seen:
lst.append(key[i])
seen.add(v)
print(lst)
或用VBscript放置快捷方式