我正在尝试通过Powershell脚本创建与mklink的符号链接到远程服务器上的Powershell脚本。此链接应该出现在所有用户的桌面上。 Becasue我有2003年和200年!服务器我首先检查补丁是否存在..
if(!(test-path -path \$hostname\c$\Users)) {
Copy-Item `
-Path "\dsfpad\Nagios\Nagios_Downtime\Nagios - Schedule Downtime.lnk" `
-Destination "\$hostname\c$\Documents and Settings\All Users\Desktop\Nagios - Schedule Downtime.lnk";
} else {
$s=New-PSSession -ComputerName $hostname Enter-PSSession $s;
Invoke-Command -Session $s -ScriptBlock {
& cmd /c mklink "C:\Users\Public\Desktop\Nagios - Schedule Downtime.lnk" "C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -file c:\Nagios\Nagios_Downtime_Window_NRDP.ps1"
}
exit-pssession;
remove-pssession $s;
}
我为C:\Users\Public\Desktop\Nagios - Schedule Downtime.lnk
<< ===>>创建了符号链接C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -file c:\Nagios\Nagios_Downtime_Window_NRDP.ps1
但是当我尝试在服务器上执行链接时,它不起作用。看着链接的目标,似乎没有目标。
当我在目标中不使用C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -file
时,我确实在lnk文件中获得了一个目标,但它没有执行该脚本。
任何提示/想法?
答案 0 :(得分:0)
符号链接需要指向单个文件 - 它们是指向磁盘上另一个位置的指针。他们不能(据我所知)指向传递参数的可执行文件。
.LNK文件为a specific kind of file。你不能只是创建一个符号链接,调用它。lnk
,并期望它与你在桌面上创建一个新的快捷方式一样工作。
您的UNC路径格式错误 - 它们需要以两个反斜杠(\\
)开头,而不是一个。