powershell - 使用 PowerShell 凭据而不提示输入密码

标签 powershell powershell-remoting

我想重新启动属于某个域的远程计算机。我有一个管理员帐户,但我不知道如何从 powershell 使用它。

我知道有一个 Restart-Computer cmdlet,并且我可以传递凭据,但如果我的域是 mydomain,则我的用户名是 myuser ,我的密码是 mypassword 使用它的正确语法是什么?

我需要安排重新启动,这样我就不必输入密码。

最佳答案

Get-Credential 的问题是它总是提示输入密码。不过,有一种方法可以解决这个问题,但它涉及将密码作为安全字符串存储在文件系统上。

以下文章解释了其工作原理:

Using PSCredentials without a prompt

总之,您创建一个文件来存储您的密码(作为加密字符串)。以下行将提示输入密码,然后将其作为加密字符串存储在 c:\mysecurestring.txt 中。您只需执行一次:

read-host -assecurestring | convertfrom-securestring | out-file C:\mysecurestring.txt

无论您在 PowerShell 命令中的何处看到 -Credential 参数,都意味着您可以传递 PSCredential。所以在你的情况下:

$username = "domain01\admin01"
$password = Get-Content 'C:\mysecurestring.txt' | ConvertTo-SecureString
$cred = new-object -typename System.Management.Automation.PSCredential `
         -argumentlist $username, $password

$serverNameOrIp = "192.168.1.1"
Restart-Computer -ComputerName $serverNameOrIp `
                 -Authentication default `
                 -Credential $cred
                 <any other parameters relevant to you>

您可能需要不同的 -Authentication 开关值,因为我不知道您的环境。

关于powershell - 使用 PowerShell 凭据而不提示输入密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6239647/

相关文章:

powershell - 在 Powershell 中调用 Exchange 命令 - 数据部分中不允许出现 block

.net - 在批处理脚本中使用 Powershell 的 SFTP

.net - 匹配不以 [ 且不以 ] 结尾的行的正则表达式(ini header )

multithreading - 如何检查后台作业是否已完成但在 PowerShell 中保持 Windows 表单响应

powershell - 文件操作因 New-PSSession 失败

windows - 在远程机器上创建私有(private)消息队列

powershell - 将文件夹从远程计算机 (Azure) 复制到远程计算机

windows - 有没有一种方法可以向git别名添加多个步骤?

asp.net - 使用 Powershell 从 Servicenow 票证下载附加的 excel 文件

powershell - 带有脚本 block 的 Invoke-Command 在没有错误的远程机器上不起作用