我正在像这样使用 Invoke-Command:
Invoke-Command @parameters
凭证如下:
$credentials = Get-Credential
以及如下参数:
$parameters = @{
ComputerName = "myHost"
Credential = $credentials
ScriptBlock = { some code here }
}
如果我能成功执行代码我的主机使用我提供的凭据,这是否也意味着我可以 100% 保证我可以使用相同凭据使用 RDP (mstsc.exe) 登录?最后,我想检查是否可以使用 Powershell 在 myHost 上使用 RDP 登录。
答案1
Invoke-Command
需要PSRemoting
在远程计算机上启用。默认情况下,域管理员和本地管理员组能够运行远程命令。可以单独添加不属于这些组的其他用户/服务帐户。可以通过以管理员身份打开 Windows Powershell 会话并输入和添加其Set-PSSessionConfiguration -Name Microsoft.PowerShell -ShowSecurityDescriptorUI -Force
帐户来添加用户以运行远程命令。
Remote Desktop
要求将用户添加到Remote Desktop Users
组或加入Local/Domain Administrators
组。
回答您的具体问题,通常情况下,如果您可以成功运行Invoke-Command
,您也可以使用远程桌面,但并非总是如此。
您可以检查Administrators
组和Remote Desktop Users
正在使用的组Invoke-Command
,看看您使用的帐户是否列在其中。这将迭代并列出本地计算机上的组和这些组的成员。
$credentials = Get-Credential
Invoke-Command -Computer "MyRemotePCName" -Credential $credentials -ScriptBlock { Get-LocalGroupMember -group "Administrators"; Get-LocalGroupMember -group "Remote Desktop Users" }