
Я пытаюсь создать несколько файлов, которые можно сохранить на локальном рабочем столе для запуска сеансов 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
Любая помощь будет высоко оценена.
решение1
$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"
.
решение2
добавить `-noexit'
PowerShell.exe -noexit -Command Enter-PSSession -computername Win2012SrvCore -credential administrator
решение3
Попробуйте сохранить свои команды в виде файла сценария, а затем используйте в своих сочетаниях клавиш командную строку:
powershell.exe -noExit <filename.ps1>
Это позволит вашим ярлыкам запускать указанный файл скрипта и не завершать работу PowerShell по окончании выполнения скрипта, поэтому вы сможете продолжить использовать окно после установки сеанса.
Чтобы это работало, вам необходимо убедиться, что политика выполнения PowerShell не ограничена, в противном случае ни один файл скрипта не будет выполнен.
Для проверки текущей политики выполнения можно использовать Get-ExecutionPolicy
, а также можно либо использовать Set-ExecutionPolicy
, чтобы изменить политику навсегда, либо добавить -ExecutionPolcy
параметр в командную строку PowerShell, чтобы изменить ее для одного сеанса.
Более подробную информацию о политиках выполнения и их влиянии можно найти с помощью help about_Execution_Policies
команды.