2016-09-01 9 views
1

У меня есть компьютеры, подключенные к локальной сети. С одного ПК скажу: A Я хочу запустить пакетный файл, хранящийся на компьютере B. Я не хочу использовать какие-либо ресурсы A. Этот командный файл содержит ресурсочувствительный процесс. Таким образом, ресурс B должен использоваться только. Пакетный файл должен быть запущен на B, но инициирован с A.Как запустить пакетный файл на компьютере с другого компьютера?

+4

Возможный дубликат [Запуск пакетного файла на удаленных компьютерах с помощью PowerShell 2.0] (http://stackoverflow.com/questions/15336336/running-batch-file -on-remote-computers-using-powershell-2-0) – SomethingDark

ответ

0

Предполагая, что у вас достаточно привилегий и настроено WinRM.

Invoke-Command -ComputerName 'RemotePCName' -ScriptBlock { 'c:\temp\script.bat' } -Credential $(Get-Credential) 
0

Вы должны использовать Invoke-Command и создать PSSession

И это выглядит следующим образом:

$session = New-PSSession -ComputerName "ComputerB" 
Invoke-Command -Session $session -ScriptBlock { ./P:\Path\to\bat.bat } 
$session | Remove-Session 

Это должно быть то, что вам нужно. Если у вас есть какой-либо вывод в пакетный файл, который вы можете использовать

$session = New-PSSession -ComputerName "ComputerB" 
$output = Invoke-Command -Session $session -ScriptBlock { ./P:\Path\to\bat.bat } 
$session | Remove-Session 

Если вам нужна $ ВАР внутри ScriptBlock вы можете использовать:

$examplePath = "P:\Path\to" 
$exampleFile = "mySCript.bat" 
$session = New-PSSession -ComputerName "ComputerB" 
$output = Invoke-Command -Session $session -ScriptBlock { ./$args[0] + "\" + $args[1] } -ArgumentList $examplePath, $exampleFile 
$session | Remove-Session 
1

Через командный файл можно использовать WMIC или SchTasks:

1) SCHTASKS:

SCHTASKS /s remote_machine /U username /P password /create /tn "On demand demo" /tr "C:\some.bat" /sc ONCE /sd 01/01/1910 /st 00:00 
SCHTASKS /s remote_machine /U username /P password /run /TN "On demand demo" 

2) WMIC (WMIC возвращает идентификатор процесса запущенного процесса)

WMIC /NODE remote_machine /user user /password password process call create "c:\some.bat","c:\exec_dir" 
+0

Я пробовал SCHTASKS. Но это запустит процесс на машине A. Что мне не нужно, потому что я хочу запустить 14 таких командных файлов на 14 машинах. Я хочу, чтобы они работали на соответствующих машинах. – Ish