Windows 调用powershell脚本后,批处理文件将无法继续

Windows 调用powershell脚本后,批处理文件将无法继续,windows,batch-file,powershell,Windows,Batch File,Powershell,我有个情况。我正在使用调用Powershell脚本的批处理文件在远程桌面上安装网络打印机,但在远程桌面上安装打印机后,Powershell将不返回任何内容-因此我的批处理文件将无法继续…我必须手动按ENTER键两次,使其echo DONE,然后运行其余脚本。知道为什么吗 @echo off Copy /Y "\\AddPrinter\AddPrinter.ps1" "C:\scripts" powershell.exe -ExecutionPolicy Bypass -Command "C

我有个情况。我正在使用调用Powershell脚本的批处理文件在远程桌面上安装网络打印机,但在远程桌面上安装打印机后,Powershell将不返回任何内容-因此我的批处理文件将无法继续…我必须手动按ENTER键两次,使其
echo DONE
,然后运行其余脚本。知道为什么吗

@echo off

Copy /Y "\\AddPrinter\AddPrinter.ps1" "C:\scripts" 

powershell.exe -ExecutionPolicy Bypass -Command "C:\scripts\AddPrinter.ps1" 

Echo DONE

Del /F /Q "C:\ntfs3\scripts\AddPrinter.ps1"
这是我的powershell脚本,我甚至在脚本末尾添加了一个
exit
,但远程pc上的powershell不会退出……因此它不会返回批处理

$PrinterPath = "\\server-01\Printer0101"
$net = new-Object -com WScript.Network
$net.AddWindowsPrinterConnection($PrinterPath)
exit
顺便说一句,我使用psexec调用这个批处理文件,其中包含所有pc名称的txt文件

psexec @%1 -u admin -p xxxxxx -c -f "C:\AAA\AddPrinter.bat"
我做了一些研究,有人说需要使用
call
%1>null
使Powershell返回批处理。但它也不起作用

Call powershell.exe -ExecutionPolicy Bypass -Command "C:\scripts\AddPrinter.ps1"  %1 > null
我只能使用批处理命令安装打印机,但安装后,新打印机始终设置为默认打印机。但如果使用powershell安装,它不会更改远程桌面上的默认打印机

rundll32 printui.dll PrintUIEntry /ga /n\\server-01\printer0101

请提示。

我经常看到通过
psexec.exe
调用PowerShell时出现问题。我建议放弃psexec.exe并改为配置PowerShell远程处理。然后,您可以使用
Invoke命令部署脚本。

我还建议类似DOS的命令使用
Invoke表达式。PowerShell将按原样处理您正在传递的命令。最棒的是,您还可以传递变量

也许您的powershell脚本需要时间才能完成执行。能否粘贴powershell文件的内容?我粘贴了powershell脚本,只需15秒即可完成。如果从powershell提示符手动运行powershell脚本,它是否提示输入?否,它只是运行并完成。allIt没有提示在批处理文件中,无论是否有
Call
,它都可以为我工作。是否可以将
-NoProfile
开关添加到您的powershell.exe行?你是用什么账户做的?我同意你的看法。我不允许打开PSRemoting的东西…上层说太冒险了。。。。。