0

我正在尝试通过 Powershell 脚本与远程服务器上的 Powershell 脚本创建带有 mklink 的符号链接。该链接应该出现在所有用户的桌面上。因为我有 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

但是当我尝试在服务器上执行链接时,它不起作用。查看链接的Target,似乎没有target。

似乎当我不在C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -file目标中使用时,我确实在 lnk 文件中得到了一个目标,但它不执行脚本。

任何提示/想法?

4

1 回答 1

0

符号链接需要指向单个文件——它们是指向磁盘上另一个位置的指针。他们不能(据我所知)指向传递参数的可执行文件。

.LNK 文件是一种特定类型的文件。你不能只是创建一个符号链接,调用它。lnk,并期望它与您在桌面上创建新快捷方式一样工作。

您的 UNC 路径格式不正确 - 它们需要以两个反斜杠 ( \\) 开头,而不是一个。

于 2013-12-10T15:12:49.260 回答