Запустіть віддалений сеанс 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до кожного сценарію, але це, здається, не зупиняє вікно від закриття.

Що я хотів би зробити, це створити сценарії, за допомогою яких я можу двічі клацнути та відкрити для підказки powerhell, подібно до збереженого сеансу RDP.

Я налаштував PS1 файли для виконання:

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

Будь-яка допомога буде дуже вдячна.


Що станеться, якщо ви вручну введете це в рядок ISE рядок, команда команда? Ви все ще отримуєте помилку?
Colyn1337

Я б відкрив Powershell ISE (Integrated Scripting Environemt) і запустив сценарій. Це покаже вихід і дозволить продовжувати усунення несправностей.
БРНДР

Відповіді:


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


9

Спробуйте зберегти свої команди у файлі сценарію, а потім натисніть ярлики, використовуючи командний рядок:

powershell.exe -noExit <filename.ps1>

Це призведе до того, що ваші ярлики запускають вказаний файл сценарію, а не закінчують повноваження в кінці виконання сценаріїв, тому ви можете продовжувати використовувати вікно після встановлення сеансу.

Для цього вам потрібно переконатися, що політика виконання PowerShell не обмежена, інакше файли сценаріїв не можуть бути виконані

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

Детальніше про політику виконання та їх вплив можна отримати за допомогою help about_Execution_Policiesкоманди.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.