调用命令并使用管理员帐户运行命令

调用命令并使用管理员帐户运行命令

使用以下命令,我尝试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 模块。

相关内容