调用命令不需要凭据

Invoke-command doesn't need credentials

我在同一域中有 2 台服务器(windows 服务器 2012 R2)。 我在 server01 上执行命令:

Invoke-Command -ComputerName server02 -Credential Administrator -ScriptBlock {Get-Culture}

我提供了我的管理员(服务器 2)的密码,它运行良好。 但是当我尝试时:

Invoke-Command -ComputerName server02 -ScriptBlock {Get-Culture}

它似乎也有效。可能是因为 2 台服务器在同一个域中。虽然我只希望它在您可以提供正确的凭据时工作。有人可以帮我吗?

您可能是通过域管理员帐户或域管理员组中的帐户执行此操作的。

无论如何,这是因为您的帐户在那台计算机上具有权限。

你在 server01 上用哪个用户执行脚本?该用户是否也有 server02 的权限?如果您的用户对 server01 和 server02 具有管理员权限,则不需要凭据...(据我所知)

要检查提供的凭据是否有效,请查看此处: https://gallery.technet.microsoft.com/scriptcenter/Test-Credential-dda902c6

或者像这样:

$cred = Get-Credential #Read credentials
$username = $cred.username
$password = $cred.GetNetworkCredential().password

# Get current domain using logged-on user's credentials
$CurrentDomain = "LDAP://" + ([ADSI]"").distinguishedName
$domain = New-Object System.DirectoryServices.DirectoryEntry($CurrentDomain,$UserName,$Password)

if ($domain.name -eq $null)
{
    write-host "Authentication failed - please verify your username and password."
    exit #terminate the script.
}
else
{
   write-host "Successfully authenticated with domain $domain.name"
}

这是在这里找到的(但我还没有测试过): https://serverfault.com/questions/276098/check-if-user-password-input-is-valid-in-powershell-script