Попытка сделать символическую ссылку на скрипт 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"