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

Ant*_*ito 15 powershell windows-server-core

我正在尝试创建几个可以保存在本地桌面上的文件以启动 PowerShell 会话。

Windows Server 2008 和 Windows Server 2012 都是服务器核心安装。

目前,我可以打开 Powershell 并输入:

Enter-PSSession -computername Win2012SrvCore -credential administrator
Run Code Online (Sandbox Code Playgroud)

使用它,我可以连接和运行命令,一切都很棒。

我试图做的是:

创建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
Run Code Online (Sandbox Code Playgroud)

创建Win2012SrvCore2.ps1使用以下命令调用的文件:

PowerShell.exe -Command Enter-PSSession -computername Win2012SrvCore -credential administrator
Run Code Online (Sandbox Code Playgroud)

每个ps1文件都会快速启动和关闭,并带有一些我无法阅读的红色文本。

我试图添加PAUSE到每个脚本中,但这似乎并没有阻止窗口关闭。

我想要做的是创建脚本,我可以双击并打开到 powershell 提示符,类似于保存的 RDP 会话。

我已经配置了 ps1 文件来执行:

C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

Cra*_*aig 12

添加`-noexit'

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


The*_*ner 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
Run Code Online (Sandbox Code Playgroud)

再添加一行:

Import-PSSession $session

然后保存 .PS1 文件并将其创建为powershell.exe -noexit -File "C:\PS.ps1".


小智 9

尝试将您的命令保存为脚本文件,然后让您的快捷方式使用命令行:

powershell.exe -noExit <filename.ps1>

这将使您的快捷方式运行指定的脚本文件,并且在脚本执行结束时不会退出 powershell,因此您可以在会话建立后继续使用该窗口。

为此,您需要确保 PowerShell 执行策略不受限制,否则无法执行任何脚本文件

要检查当前的执行策略,您可以使用Get-ExecutionPolicy,你可以使用Set-ExecutionPolicy到permanantly改变政策或添加-ExecutionPolcy参数到PowerShell命令行来改变它的单个会话。

可以使用该help about_Execution_Policies命令找到有关执行策略及其影响的更多信息。