Powershell:无法为点斜杠用户创建凭据文件

Powershell:无法为点斜杠用户创建凭据文件,powershell,credentials,Powershell,Credentials,我正在尝试对具有“\”的计算机运行远程命令 当我尝试使用get credentials获取凭据并将其存储到文件时,我不允许这样做。 当我尝试使用 $Username = -join($env:COMPUTERNAME,'\<user_name>') $Password = '<password>' $pass = ConvertTo-SecureString -AsPlainText $Password -Force $Cred = New-Object System.M

我正在尝试对具有“\”的计算机运行远程命令

当我尝试使用get credentials获取凭据并将其存储到文件时,我不允许这样做。 当我尝试使用

$Username = -join($env:COMPUTERNAME,'\<user_name>')
$Password = '<password>'
$pass = ConvertTo-SecureString -AsPlainText $Password -Force
$Cred = New-Object System.Management.Automation.PSCredential -ArgumentList $Username,$pass
Invoke-Command -ComputerName  <computer_name> -Authentication Kerberos -Credential $Cred  {Get-WmiObject -Class Win32_LogicalDisk}
但是当我做一个mstsc并使用相同的凭证时,它就可以工作了


请告诉我怎么走。

$env:COMPUTERNAME
是您的计算机名

假设我正在使用ComputerA并希望以ComputerB上的本地用户身份连接到ComputerB


您当前的代码正试图以
ComputerA\Username
的身份连接,这在ComputerB上不存在

$env:COMPUTERNAME
是您的计算机名

假设我正在使用ComputerA并希望以ComputerB上的本地用户身份连接到ComputerB


您当前的代码正试图以
ComputerA\Username
的身份连接,这在ComputerB上不存在

你能用下面的语法传递用户名吗

$Username = -join('Localhost','\<user_name>')
$Username=-join('Localhost','\'))

能否尝试用下面的语法传递用户名

$Username = -join('Localhost','\<user_name>')
$Username=-join('Localhost','\'))

您确定需要使用kerberos进行身份验证吗?你正在使用计算机名作为域名,这对我来说似乎是违反直觉的。这段代码是在PS2中运行的,我尝试过这样做。\n但结果相同。我使用Kerberos进行身份验证,而我发现这是在powershell 4中使用的。您使用的帐户是本地帐户,而不是域帐户,对吗?是的,远程计算机的本地帐户不是域。然后您必须使用不同的身份验证方法,因为Kerberos隐式尝试域身份验证(这将不起作用)。如果省略参数
Authentication
,则可能会更进一步。我们将看到,如果您需要配置您的本地系统以信任您连接到的系统。但是一步一个脚印。尝试不使用
-身份验证
是否确实需要使用kerberos进行身份验证?你正在使用计算机名作为域名,这对我来说似乎是违反直觉的。这段代码是在PS2中运行的,我尝试过这样做。\n但结果相同。我使用Kerberos进行身份验证,而我发现这是在powershell 4中使用的。您使用的帐户是本地帐户,而不是域帐户,对吗?是的,远程计算机的本地帐户不是域。然后您必须使用不同的身份验证方法,因为Kerberos隐式尝试域身份验证(这将不起作用)。如果省略参数
Authentication
,则可能会更进一步。我们将看到,如果您需要配置您的本地系统以信任您连接到的系统。但是一步一个脚印。当我从computerA执行RDC(使用mstsc)时,尝试不使用
-身份验证
,我看到的是相同的computerA\username。我也尝试过使用powershell中的computerB/但它给出了相同的错误。当我从computerA中执行RDC(使用mstsc)时,我看到的是相同的computerA\username。我也尝试过使用powershell中的computerB/但是它给了我同样的错误。