我编写了一些批处理脚本以在计算机上执行docker命令,并使其使用c#程序运行。我可以在本地计算机上成功运行那些批处理脚本,但是我希望它在远程计算机上运行。如何通过提供远程计算机访问凭据来做到这一点?我正在寻找批处理命令,这些命令将首先连接到远程计算机,然后在远程计算机中执行其主体。 批处理脚本示例如下。
::Start an exited container
::Iam expecting some code here to connect to a remote machine
@echo off
docker start %1
或者,是否可以通过c#程序进行选择?
答案 0 :(得分:3)
我找不到在远程计算机上运行批处理脚本的方法,但是我使用Powershell脚本而不是批处理脚本。如果可以使用Powershell脚本代替批处理脚本,则可以使用此方法。
set-item wsman:localhost\client\trustedhosts -value <Remote_computer_name> -Force
$pword = ConvertTo-SecureString -String <Remote_machine_password> -AsPlainText -Force
$user = <Remote_userName>
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user, $pword
Set-ExecutionPolicy -ExecutionPolicy Bypass
Invoke-Command -ComputerName <Remote_computer_name> -filepath <ps1_file_path> -Credential $Credential
在powershell管理员窗口中运行上述命令将在远程计算机上的<ps1_file_path>
中运行脚本。
您必须考虑到该命令
set-item wsman:localhost\client\trustedhosts -value <Remote_computer_name> -Force
将远程计算机添加到“受信任的主机”列表中。
另外,命令Set-ExecutionPolicy -ExecutionPolicy Bypass
将允许所有Powershell脚本在我们的计算机上运行,但我不确定使用该脚本是否安全。
希望它能以某种方式对某人有所帮助,但是您必须进行研究以确保此方法安全。
参考:
答案 1 :(得分:2)
答案 2 :(得分:2)
尝试使用PsExec https://docs.microsoft.com/en-us/sysinternals/downloads/psexec
这是telnet的轻巧替代品