Запуск сценария PowerShell удаленно - PullRequest
1 голос
/ 01 апреля 2020

Итак, у меня есть сценарий на сервере, который я могу удаленно использовать с помощью Enter-PSSession и просто запустить сценарий из своей локальной среды. То, что я делаю, это ... Enter-PSSession hostname cd c:\temp\myscript.ps1

или

$s = New-PSSession -ComputerName hostname
Invoke-Command -Session $s -ScriptBlock {C:\temp\myscript.ps1}

, они прекрасно запускают скрипт. У меня проблема в том, что данные должны быть отправлены в базу данных. Если я запускаю .ps1 на имени хоста, используя RDPing, он работает. Если я пересылаю RDP на сервер и go возвращаюсь в свою локальную среду, где я использую Enter-PSSession, используя приведенный выше код, он просто отлично отправляется в базу данных. Но когда я закрываю сеанс RDP и просто пытаюсь снова запустить скрипт локально, он не go для базы данных.

Может быть, это что-то глупое, что мне не хватает, но любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 06 апреля 2020

Возможно ли, что у пользователя нет разрешения на запись в вашу БД или учетные данные для записи в эту БД не предоставлены в сценарии?

Если после проверки проблемы с учетными данными она все еще не работает Вы можете зарегистрировать свой скрипт как задачу. Вы можете установить это как ручное задание. Затем, когда вам это нужно, вы (удаленно) запускаете эту задачу. Таким образом, ваши учетные данные также сохраняются, и вы можете безопасно использовать функцию «запустить как».

0 голосов
/ 01 апреля 2020

Важные биты находятся в myscripts.ps1, поэтому невозможно сказать, из того, что вы предоставили.

Я предлагаю вам проверить этот файл сценария, где хранятся учетные данные. Когда вы запускаете его локально, я предполагаю, что вы запускаете его из этого рабочего каталога.

Попробуйте использовать $ psexecscript в качестве root пути к файлу конфигурации. Это тот путь, по которому идет скрипт, при условии, что учетные данные находятся в том же самом или подкаталоге.

...