2013-12-10 6 views
0

Я пытаюсь создать символическую ссылку с mklink через скрипт Powershell для сценария Powershell на удаленном сервере. Эта ссылка должна появиться на рабочем столе всех пользователей. Becasue У меня 2003 и 200! серверы я первый проверить, если патч существует ..Попытка сделать символическую ссылку на сценарий Powershell на удаленном сервере

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

Символы должны указывать на отдельные файлы - они являются указателями на другое место на диске. Они не могут (насколько мне известно) указать на исполняемый файл с переданными параметрами.

Файл .LNK: a specific kind of file. Вы не можете просто создать символическую ссылку, назовите ее. lnk, и ожидайте, что он будет работать так же, как если бы вы создали новый ярлык на рабочем столе.

Пути UNC неправильны - им нужно начинать с двух обратных косых черт (\\), а не одного.

Смежные вопросы