首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >远程安装软件

远程安装软件
EN

Stack Overflow用户
提问于 2020-04-03 16:29:55
回答 2查看 113关注 0票数 0

我试图在我的域中部署一个使用Powershell的软件,由于某种原因,脚本在“启动进程”cmdlet中挂起。

以下是我所拥有的:

代码语言:javascript
复制
Invoke-Command -ComputerName $servers -Credential $creds -ScriptBlock {
   $args = "/param1=`"{0}`" /param2=`"{1}`" /param3=1 /S" -f "value1", "value2"
   Start-Process "c:\temp\installer.exe" -Wait -ArgumentList $args
}

有趣的是,如果手动将Enter-PSSession放入单个服务器并运行:

代码语言:javascript
复制
Enter-PSSession one_server
cd c:\temp\
$args = "/param1=value1 /param2=value /param3=1 /S"
Start-Process .\installer.exe -Wait -ArgumentList $args

有什么想法吗?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-03 23:01:42

最终的解决方案是权限提升,这需要"-Verb RunAs“。特别感谢Mark让我知道保留的$arg变量。

代码语言:javascript
复制
Invoke-Command -ComputerName $servers -Credential $creds -ScriptBlock {
   $args = "/param1=`"{0}`" /param2=`"{1}`" /param3=1 /S" -f "value1", "value2"
   Start-Process "c:\temp\installer.exe" -Wait -ArgumentList $args -Verb RunAs
}
票数 1
EN

Stack Overflow用户

发布于 2020-04-03 17:11:17

将变量$args更改为另一个名称,如$a或$arguments。$args是保留的,是一个system.array对象。您希望创建一个字符串。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61016368

复制
相关文章

相似问题

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