windows Enter-PSSession不执行远程计算机上的命令

omqzjyyz  于 2023-03-31  发布在  Windows
关注(0)|答案(1)|浏览(130)

我想在远程计算机上执行一些powershell命令。我的ps1文件包含以下数据:

$secure_password = 'password' | ConvertTo-SecureString -AsPlainText -Force
$credential_object = New-Object System.Management.Automation.PSCredential -ArgumentList 'administrator', $secure_password 
$new_session = New-PSSession -Credential $credential_object -ComputerName  192.168.1.222
Enter-PSSession $new_session
{
  mkdir "C:\Users\Administrator\Desktop\new_folder"
}
Exit-PSSession  
Remove-PSSession $new_session

我想在我的远程计算机上创建一个IP地址为www.example.com的目录192.168.1.222,但不幸的是在远程计算机上没有创建目录。为什么它不起作用?

eqzww0vc

eqzww0vc1#

当您想在远程系统上执行多个命令时,您可以创建PSSession。但是,如果您只需要运行单个命令/脚本,则不需要持久的PSSession。
您使用Enter-PSSession进行交互工作。但是,当您在脚本/函数中使用PSSession时,只需使用Invoke-Command即可。它会更容易和更快。

示例

$secure_password = 'password' | ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList 'administrator', $secure_password 

Invoke-Command -ComputerName 192.168.1.222 -Credential $cred -ScriptBlock { New-Item -Name "C:\Users\Administrator\Desktop\new_folder" -ItemType Directory }
  • 注意:将明文密码硬编码到脚本中是一个坏主意。看看外部存储凭据的本地方式:SecretManagement*

相关问题