尝试在远程服务器上创建指向Powershell脚本的符号链接

时间:2013-12-10 12:03:09

标签: windows powershell mklink

我正在尝试通过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文件中获得了一个目标,但它没有执行该脚本。

任何提示/想法?

1 个答案:

答案 0 :(得分:0)

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

.LNK文件为a specific kind of file。你不能只是创建一个符号链接,调用它。lnk,并期望它与你在桌面上创建一个新的快捷方式一样工作。

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