【问题标题】:powershell start program on remote machine, webservice interface not working远程机器上的powershell启动程序,webservice接口不工作
【发布时间】:2017-02-14 23:58:35
【问题描述】:

我有一个远程服务器,其中有一个程序(C#、WCF),我需要从另一台机器启动它的 web 服务接口。目前我在远程机器上有一个powershell脚本:

 Start-Process -WindowStyle Minimized 'path to exe'

如果我在 cmd 提示符下直接使用以下命令在服务器上启动脚本,这将有效。

 Powershell.exe start.ps1

Webservice接口功能齐全。

但是,当我使用

通过 powershell 远程运行脚本时

Invoke-WmiMethod –class Win32_process -name Create -ArgumentList "powershell.exe c:\Start.ps1" -ComputerName $serverName -credential $Cred

程序在远程机器上启动,但是webservice接口不工作?我试图查看 wsdl 但它没有显示。

从远程调用脚本以使其工作时是否需要添加任何特殊权限或其他内容?

【问题讨论】:

    标签: web-services wcf powershell


    【解决方案1】:

    如果我理解正确的话,你的问题在于在远程服务器上启动 exe。如果您使用的是 WIN2012 R2(或更高版本),则应默认激活 Powershell 远程处理(如果您使用的是较旧的 WIN 版本,请执行一些关于如何激活 Powershell 远程处理的 Google 查询)。

    通过 Powershell 远程处理,您可以使用Invoke-Command 在远程启动 exe。示例:

    Invoke-Command -ComputerName 1.2.3.4 -Credential (Get-Credential) -Scriptblock { Start-Process "your.exe" }
    

    使用 Powershell 远程处理有一些优势。

    • 通过WSMAN 使用标准化机制。
    • 远程处理使用 HTTP(S) 进行传输。因此,使用防火墙变得更加容易。

    希望对您有所帮助。

    【讨论】:

    • 问题没有开始,这有效。但是当它启动时,网络服务不工作,这意味着我看不到该程序的 WSDL。如果在启动程序的服务器上运行相同的脚本,则 web 服务运行正常。
    猜你喜欢
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    • 2015-08-10
    • 2013-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多