使用保存的 ps1 文件启动远程 PowerShell 会话

使用保存的 ps1 文件启动远程 PowerShell 会话

我正在尝试创建几个可以保存在本地桌面上的文件来启动 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命令找到有关执行策略及其影响的更多信息。

相关内容