Попытка сделать символическую ссылку на скрипт Powershell

Я пытаюсь создать символическую ссылку с помощью mklink через скрипт Powershell на скрипт Powershell на удаленном сервере. эта ссылка должна прийти на рабочий стол всех пользователей.

if (! (test-path -path \ $ hostname \ c $ \ Users)) {Copy-Item -Path "\ dsfpad \ Nagios \ Nagios_Downtime \ Nagios - Расписание Downtime.lnk" -Destination "\$hostname\c$\ Документы и настройки \ Все пользователи \ Рабочий стол \ Nagios - Расписание Downtime.lnk" } else { $s=New-PSSession -ComputerName $hostname Enter-PSSession $s Invoke-Command -Session $s -ScriptBlock {& cmd /c mklink "C:\Users\Public\Desktop\Nagios - Расписание 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 - Расписание Downtime.lnk <<===>> C:\WINDOWS\system32\WindowsPowerShell\v1.0\po wershell.exe -file c:\Nagios\Nagios_Downtime_Window_NRDP.ps1

Но когда я пытаюсь выполнить ссылку на сервере, это не работает. глядя на цель ссылки, там, кажется, нет цели...

Любые советы / идеи?

0 ответов

Этот пост довольно старый, но я бы просто создал другой файл.ps1, который вызывает запрошенный файл.ps1:

В вашем случае вместо

& 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"

Я бы просто использовал:

"& c:\Nagios\Nagios_Downtime_Window_NRDP.ps1" | Out-File "c:\temp\C:\Users\Public\Desktop\Nagios - Schedule Downtime_lnk.ps1"

Если вы не можете выполнить файл, вы можете использовать -ExecutionPolicy Bypass (см. Ниже)

PowerShell -ExecutionPolicy Bypass -File "c:\temp\C:\Users\Public\Desktop\Nagios - Schedule Downtime_lnk.ps1"

( https://support.microsoft.com/en-us/help/2856739/you-cannot-use-a-symbolic-link-to-run-an-exe-file-or-execute-a-script)

Другие вопросы по тегам