【发布时间】:2013-12-06 16:04:29
【问题描述】:
我一直在尝试使用 powershell 停止和删除远程服务器上的 Windows 服务,特别是通过 Octopus Deploy 自动调用的 PostDeploy.ps1。我已尝试按照here:
的描述使用以下内容$service = Get-WmiObject -Class Win32_Service -Filter "Name='servicename'"
$service.delete()
当脚本运行时,我得到这个:
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 1
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
ReturnValue : 0
PSComputerName :
但服务仍然存在。我也尝试过使用
net stop "my service"
紧随其后
sc.exe delete "my service"
但会收到拒绝访问的消息。当我使用以管理员身份运行在盒子上手动使用这些命令时,我可以删除和删除服务。
我也尝试按照章鱼部署页面here.上的示例描述进行操作
有关信息,我可以通过 powershell 安装和启动服务。
我可以在我的 ps1 文件中添加一些内容以强制命令以管理员身份运行,还是我需要做其他事情?
【问题讨论】:
-
这可能是该机器上的八达通代理没有适当权限的问题。您能否验证该代理以谁的身份运行以及是否是管理员?
-
八达通代理作为本地系统运行,这大概意味着它拥有停止和删除服务的权限?
标签: windows powershell service wmi octopus-deploy