我正在使用 powershell 1.0,我需要在远程机器上安装一项服务,如果存在的话,首先卸载它。
这是安装服务的脚本,但我似乎无法卸载该服务。我尝试过 installutil,但服务路径是网络路径,installutil 会抛出错误。
我是 powershell 的完全新手,但我确信一定有更好、更干净的方法来解决这个问题。
$class = "Win32_Service"
$method = "Create"
$mc = [wmiclass]"\\DUMMYServer\ROOT\CIMV2:$class"
$inparams = $mc.PSBase.GetMethodParameters($method)
$inparams.DesktopInteract = $false
$inparams.DisplayName = "DummyService"
$inparams.ErrorControl = 0
$inparams.LoadOrderGroup = $null
$inparams.LoadOrderGroupDependencies = $null
$inparams.Name = "DummyMessageService"
$inparams.PathName = '\\DummyServer\c$\Applications\DummyMessageWindowsService\DummyWindowsService.exe'
$inparams.ServiceDependencies = $null
$inparams.ServiceType = 16
$inparams.StartMode = "Automatic"
$inparams.StartName = $null # will start as localsystem builtin if null
$inparams.StartPassword = $null
$result = $mc.PSBase.InvokeMethod($method,$inparams,$null)
$result | Format-List
答案1
尝试使用 wmi 而不是所有花哨的参数......像这样(未经测试)
(gwmi win32_service -filter“name='yourservicename'”)。delete()