0

Я пытаюсь использовать PowerShell для запуска битой скрипт, который находится на компьютере A и выполнить его на компьютере BИспользование «Invoke-Command» для запуска локального файла на удаленной машине

Компьютер A является компьютер вызов функции Invoke Command

Я пытаюсь сделать это с помощью

Invoke-Command -ComputerName ComputerB -ScriptBlock{& "\\ComputerA\filepath\batch.bat"} -Credential $Cred 

Когда я запускаю это я получаю ошибку

The term '\\ComputerA\filepath\batch.bat' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. 

Я также попытался запустить его, вызвав CMD на компьютере B и передать эту биту скрипт в качестве аргумента, и я не Получать какие-либо ошибки, но я могу сказать, сценарий не запускать Команда Я использую для этого

Invoke-Command -ComputerName ComputerB -ScriptBlock{& "C:\Windows\System32\cmd.exe"} -ArgumentList "\\ComputerA\filepath\batch.bat" -Credential $Cred 

Когда я иду на компьютере B и вызвать скрипт вручную через CMD он работает

Я подтвердил Invoke-Command работает, потому что я был в состоянии запускать программы, которые являются локальными для компьютера B

Я пытаюсь не нужно помещать файлы на компьютер B, такие как psexec или bat sc НИИИМ себя именно поэтому я пытаюсь это так

Спасибо

+0

Да, я могу запустить его локально на обоих компьютерах я могу пойти на ComputerB и через CMD я могу ввести \\ ComputerA \ filepath \ batch.bat и запустите его нормально Я также могу запустить его через Windows Explorer – Nick

ответ

0

Когда пульт к машине (в данном случае ComputerB) и попытаться получить доступ что-то на ComputerA вы в основном пытаетесь получить доступ к сетевому ресурсу, который по умолчанию не допускается. Используйте параметр -EnableNetworkAccess в Invoke-Command, чтобы явно разрешить то же самое

0

Это звучит как проблема «двойной прыжок» -/«второй прыжок». Учетные данные недоступны в удаленном сеансе (для доступа к сетевому ресурсу). Решения:

  • Использование CredSSP аутентификации
  • запустить его локально ..
    • Скопируйте файл на удаленный компьютер
    • Использование Invoke-Command -Scriptblock { & "c:\temp\batch.bat" }
    • Удалить Fiel на удаленном компьютере, если это необходимо
  • Использование psexec.exe
Смежные вопросы