【发布时间】: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