我正在尝试创建几个可以保存在本地桌面上的文件来启动 PowerShell 会话。
Windows Server 2008 和 Windows Server 2012 都是服务器核心安装。
目前,我可以打开 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
命令找到有关执行策略及其影响的更多信息。