【问题标题】:How to uninstall a service on remote machine using powershell?如何使用powershell卸载远程机器上的服务?
【发布时间】:2014-01-04 20:39:21
【问题描述】:

我是 powershell 脚本的新手。我想卸载远程机器上的服务并重新安装它。我能够停止服务,更改服务正在使用的文件并再次启动它。 但是,现在我想完全卸载它。

还有一件事,我将通过 TeamCity 执行这些脚本。

我尝试了以下方法,但每一个都给麻烦:

  • using wmi class
  • 在远程计算机上运行 installutil 命令。但是,由于访问该服务存在问题,因此无法在远程机器上执行此操作。
  • Using Get-WmiObject command 然后在检索到的服务上调用 delete()。

有什么有前途的解决方案吗? 任何帮助都将是可观的..

【问题讨论】:

  • 你看到这篇要删除的帖子了吗?:Check if a Windows Service Exists and Delete in Powershell 如果失败,你可以随时调用批处理脚本,或者可能在 TeamCity 中添加命令行步骤来调用sc delete yourServiceName跨度>
  • 感谢您的回复.. 我尝试使用 sc 命令,但它给出了错误。现在,我正在尝试使用带有“-verb RunAs”属性的“installutil”命令,同时启动一个新进程作为powershell。但是,当我通过远程登录到服务器来执行我的批处理文件时,会出现一个“RunAs”对话框。我想自动根除它。你能帮忙吗?
  • 我猜这是权限问题。如果您可以远程访问相关机器,请尝试使用和不使用提升权限运行每个命令。我将以 Team City 正在使用的用户身份远程登录,并对其进行测试。此外,我没有太多使用它,PowerShell 需要一些权限和配置;我猜你可能需要在 Team City 连接的帐户下进行配置。
  • 谢谢@Damon,你是对的。我使用了“wmic”命令并在该特定服务器上使用它,并通过 TC 参数传递了具有管理员权限的所需凭据。而且,它成功了。该问题与执行 PowerShell 的权限有关。

标签: powershell service teamcity powershell-remoting


【解决方案1】:

在玩了很多 TC 和许多命令之后,我终于得到了我的答案,卸载远程计算机上的服务,并且它工作正常。

我使用了“wmic”命令,并为/node:、/username: 和/password: 参数提供了远程计算机名称、用户名和密码。并且,提供了远程执行的“installutil.exe”命令。这里,实际的命令是..

"wmic /NODE:$serverName /USER:$userName /PASSWORD:$password process call create '$path_to_installutil_exe\installutil /u $exe_location_path_of_service'"

【讨论】:

    猜你喜欢
    • 2011-03-19
    • 2011-03-25
    • 1970-01-01
    • 2013-11-28
    • 2014-12-09
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    • 2020-10-23
    相关资源
    最近更新 更多