Запустите удаленный сеанс PowerShell, используя сохраненный файл ps1.

15

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

Windows Server 2008 и Windows Server 2012 являются установками Server Core.

В настоящее время я могу открыть Powershell и набрать:

Enter-PSSession -computername Win2012SrvCore -credential administrator

Используя это, я могу подключать и запускать команды, и все отлично.

То, что я пытался сделать, это:

Создайте файл с именем Win2012SrvCore1.ps1следующего:

$passwd = convertto-securestring -AsPlainText -Force -String MYPASSWORD

$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist "administrator",$passwd

$session = new-pssession -computername Win2012SrvCore -credential $cred

Создайте файл с именем Win2012SrvCore2.ps1следующего:

PowerShell.exe -Command Enter-PSSession -computername Win2012SrvCore -credential administrator

Каждый ps1файл запустится и быстро закроется красным текстом, который я не могу прочитать.

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

То, что я хотел бы сделать, это создать сценарии, которые я могу дважды щелкнуть и открыть в командной строке powershell, аналогично сохраненному сеансу RDP.

Я настроил файлы ps1 для выполнения:

C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe

Любая помощь будет принята с благодарностью.

Энтони Форнито
источник
Что произойдет, если вы вручную напечатаете это в ISE построчно, команда за командой? Вы все еще получаете ошибку?
Colyn1337
Я бы открыл Powershell ISE (Integrated Scripting Environemt) и запустил скрипт. Это отобразит вывод и позволит вам продолжить устранение неполадок.
BRNDR

Ответы:

10
$passwd = convertto-securestring -AsPlainText -Force -String MYPASSWORD

$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist "administrator",$passwd

$session = new-pssession -computername Win2012SrvCore -credential $cred

Добавьте еще одну строку:

Import-PSSession $session

Затем сохраните файл .PS1 и создайте для него ярлык powershell.exe -noexit -File "C:\PS.ps1".

Очиститель
источник
12

добавить `-noexit '

PowerShell.exe -noexit -Command Enter-PSSession -computername Win2012SrvCore -credential administrator

Craig
источник
9

Попробуйте сохранить ваши команды в виде файла сценария, а затем используйте ярлыки для командной строки:

powershell.exe -noExit <filename.ps1>

Это позволит вашим ярлыкам запускать указанный файл сценария и не выходить из PowerShell в конце выполнения сценариев, поэтому вы можете продолжать использовать окно после установления сеанса.

Чтобы это работало, вам нужно убедиться, что политика выполнения PowerShell не ограничена, в противном случае файлы сценариев не могут быть выполнены.

Чтобы проверить текущую политику выполнения, вы можете использовать Get-ExecutionPolicyее либо Set-ExecutionPolicyдля постоянного изменения политики, либо добавить -ExecutionPolcyпараметр в командную строку powershell, чтобы изменить его для одного сеанса.

Дополнительную информацию о политиках выполнения и их влиянии можно найти с помощью help about_Execution_Policiesкоманды.

Crippledsmurf
источник