使用以下命令,我尝试dir c:
从 powershell 使用管理员帐户运行
$RemoteMachine = "10.1.1.40"
$Username = 'Administrator'
$Password = ' '
$pass = ConvertTo-SecureString -AsPlainText $Password -Force
$Cred = New-Object System.Management.Automation.PSCredential -ArgumentList $Username,$pass
Invoke-Command -ComputerName $RemoteMachine -Credential $Cred -ScriptBlock { dir c: }
但是输出是:
PS C:\Windows\system32> C:\Users\user\Desktop\anydesk.ps1
PS C:\Windows\system32>
这意味着它尚未连接到远程计算机。我不得不说管理员帐户已启用,并且远程桌面允许管理员。有什么办法可以解决这个问题吗?如果我使用普通用户,我可以看到 的输出dir c:
。
答案1
Administrator
远程机器上的密码实际上是空的吗?
尝试手动执行每个步骤来验证哪些有效、哪些无效:
# Get-Credential will prompt for a username and password
# Try and use the computer *name* instead of the IP:
$RemoteMachine = 'MyPC'
$cred = Get-Credential -UserName "$RemoteMachine\Administrator"
# Use a remote Powershell session instead of invoke-command for troubleshooting:
Enter-PSSession $RemoteMachine -Credential $cred
# In the remote session, manually run "dir C:/"
[MyPC]: PS C:\WINDOWS\system32> dir C:/
然后将结果和/或错误消息添加到您的问题中
如果上述方法有效,请尝试以下方法 - 它与您之前尝试的方法没有太大区别:
$computername = 'MyPC'
$user = "$computername\Administrator"
$password = ConvertTo-SecureString -AsPlainText (Read-Host "MyPassword") -Force
$cred = [PSCredential]::new($user, $password)
Invoke-Command -ComputerName $computername -Credential $cred -ScriptBlock {Get-ChildItem c:}
我想补充一点,在脚本中以明文形式保留管理员密码是个坏主意。请考虑将其存储在更安全的地方,或者使用类似凭证管理器powershell 模块。