使用PowerShell从远程服务器获取服务状态

deb*_*bal 8 powershell service remote-server

如何获取需要用户名和密码登录的远程计算机的服务状态?

我正在尝试使用以下代码找到解决方案:

$serviceStatus = get-service -ComputerName $machineName -Name $service

get-service命令的默认语法是:

Parameter Set: Default
Get-Service [[-Name] <String[]> ] [-ComputerName <String[]> ] [-DependentServices] [-Exclude <String[]> ] [-Include <String[]> ] [-RequiredServices] [ <CommonParameters>]

Parameter Set: DisplayName
Get-Service -DisplayName <String[]> [-ComputerName <String[]> ] [-DependentServices] [-Exclude <String[]> ] [-Include <String[]> ] [-RequiredServices] [ <CommonParameters>]

Parameter Set: InputObject
Get-Service [-ComputerName <String[]> ] [-DependentServices] [-Exclude <String[]> ] [-Include <String[]> ] [-InputObject <ServiceController[]> ] [-RequiredServices] [ <CommonParameters>]
Run Code Online (Sandbox Code Playgroud)

这没有用户名和密码选项.

Dav*_*ant 9

据我所知,Get-Service 不接受凭证参数.但是,您可以通过WMI执行此操作:

$cred = get-Credential -credential <your domain user here>
Get-WMIObject Win32_Service -computer $computer -credential $cred
Run Code Online (Sandbox Code Playgroud)

评论后更新:

您可以将凭据作为securestring保存到文件中,然后重新加载它以手动创建凭证而无需提示.见信息在这里.


Mor*_*ard 7

这也适用:

net use \\server\c$ $password /USER:$username
$service = Get-Service $serviceName -ComputerName $server
Run Code Online (Sandbox Code Playgroud)

请注意,密码不应使用安全字符串。