首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将供应商的远程Dos (带变量)命令迁移到PowerShell

将供应商的远程Dos (带变量)命令迁移到PowerShell
EN

Stack Overflow用户
提问于 2012-06-01 01:52:50
回答 1查看 330关注 0票数 0

我们正在尝试采用供应商的命令行远程执行,并将其转换为PowerShell 2.0。然而,由于变量的设置方式,我们似乎无法让命令远程运行。它们是空格分隔的,而不是逗号分隔的。我们已经创建了一个表单来获取变量的输入。有没有人有关于如何在PowerShell中使用它的建议?谢谢!瑞德

代码语言:javascript
复制
#Call the Function
GenerateForm

#Attempting to translate Dos command below to Powershell
#winrs -r:$ServerName -nop -d:"C:\Program Files (x86)\PaperCut NG\server\bin\win\" server-command.exe $Command $Varible1 $Varible2 $Varible3 
#cd C:\Program Files\PaperCut NG\server\bin\win\server-command rename-printer oldprintserver oldqueuename newprintserver newqueuename
#From: http://www.papercut.com/kb/Main/HowToRenameAPrinter
#Also: http://www.papercut.com/kb/Main/CallingServerCommandRemotely
#Server Commands List: http://www.papercut.com/products/ng/manual/apdx-tools.html

#Have tried below and many others:
#Invoke-Command -computername $ServerName  -scriptblock {'C:\Program Files (x86)\PaperCut NG\server\bin\win\server-command.exe rename-printer $OldPrintServer $OldQueueName $NewPrintServer $NewQueueName}
#Invoke-Command -Authentication Kerberos -computername $ServerName -scriptblock {"C:\Program Files (x86)\PaperCut NG\server\bin\win\server-command.exe"} -ArgumentList {param(rename-printer[, $OldPrintServe][, $OldQueueName][, $NewPrintServer][, $NewQueueName])}
#Invoke-Command -computername $ServerName  -scriptblock {cd 'C:\Program Files (x86)\PaperCut NG\server\bin\win\'; .\'server-command.exe rename-printer' $OldPrintServer $OldQueueName $NewPrintServer $NewQueueName}
#Invoke-Command -computername $ServerName  -scriptblock {cd 'C:\Program Files (x86)\PaperCut NG\server\bin\win\'; .\'server-command.exe' + ' rename-printer' + ' ' + $OldPrintServer + ' ' + $OldQueueName + ' ' + $NewPrintServer + ' ' + $NewQueueName}
#Invoke-Command -computername $ServerName  &"C:\Program Files (x86)\PaperCut NG\server\bin\win\server-command.exe" "rename-printer" "$OldPrintServer" "$OldQueueName" "$NewPrintServer" "$NewQueueName"
#Invoke-Command -computername $ServerName  &{"C:\Program Files (x86)\PaperCut NG\server\bin\win\server-command.exe" "rename-printer" "$OldPrintServer" "$OldQueueName" "$NewPrintServer" "$NewQueueName"}
Invoke-Command -computername $ServerName  -scriptblock {&"C:\Program Files (x86)\PaperCut NG\server\bin\win\server-command.exe" "rename-printer" "$OldPrintServer" "$OldQueueName" "$NewPrintServer" "$NewQueueName"}

Read-Host "Press ENTER to continue"
EN

回答 1

Stack Overflow用户

发布于 2012-06-01 15:24:45

只需用引号将所有内容括起来。下面是ping命令在PowerShell中的样子:

代码语言:javascript
复制
ping "192.168.0.1" "-4" "-n" "5"

因此,您的命令将如下所示:

代码语言:javascript
复制
&"C:\Program Files (x86)\PaperCut NG\server\bin\win\server-command.exe" "rename-printer" "$OldPrintServer" "$OldQueueName" "$NewPrintServer" "$NewQueueName"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10838690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档