为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

LEATH 2019-07-25 18:58:45
使用PowerShell凭据而不提示输入密码我想重新启动属于域的远程计算机。我有一个管理员帐户,但我不知道如何从powershell使用它。我知道有一个Restart-Computercmdlet,我可以通过凭证但是如果我的域名是,例如mydomain,我的用户名是myuser,我的密码是mypassword使用它的正确语法?我需要安排重启,所以我不必输入密码。
查看完整描述

3 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

还有另一种方式,但......

如果你 不想在脚本文件中输入密码,请不要这样做(在脚本中存储密码不是一个好主意,但我们中的一些人只是想知道如何。)

好的,这是警告,这是代码:

$username = "John Doe"$password = "ABCDEF"$secstr = New-Object -TypeName System.Security.SecureString$password.ToCharArray() | ForEach-Object {$secstr.AppendChar($_)}$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $secstr

$cred 将获得John Doe的凭证,密码为“ABCDEF”。

替代方法是准备好使用密码:

$password = convertto-securestring -String "notverysecretpassword" -AsPlainText -Force


查看完整回答
反对 回复 2019-07-25
?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

关于存储凭证,我使用两个函数(通常在从我的配置文件加载的模块中):


#=====================================================================

# Get-MyCredential

#=====================================================================

function Get-MyCredential

{

param(

$CredPath,

[switch]$Help

)

$HelpText = @"


    Get-MyCredential

    Usage:

    Get-MyCredential -CredPath `$CredPath


    If a credential is stored in $CredPath, it will be used.

    If no credential is found, Export-Credential will start and offer to

    Store a credential at the location specified.


"@

    if($Help -or (!($CredPath))){write-host $Helptext; Break}

    if (!(Test-Path -Path $CredPath -PathType Leaf)) {

        Export-Credential (Get-Credential) $CredPath

    }

    $cred = Import-Clixml $CredPath

    $cred.Password = $cred.Password | ConvertTo-SecureString

    $Credential = New-Object System.Management.Automation.PsCredential($cred.UserName, $cred.Password)

    Return $Credential

}

还有这个:


#=====================================================================

# Export-Credential

# Usage: Export-Credential $CredentialObject $FileToSaveTo

#=====================================================================

function Export-Credential($cred, $path) {

      $cred = $cred | Select-Object *

      $cred.password = $cred.Password | ConvertFrom-SecureString

      $cred | Export-Clixml $path

}

你这样使用它:


$Credentials = Get-MyCredential (join-path ($PsScriptRoot) Syncred.xml)

如果凭证文件不存在,则第一次会提示您,此时它会将凭证存储在XML文件中的加密字符串中。第二次运行该行时,xmlfile就会出现并自动打开。


查看完整回答
反对 回复 2019-07-25
  • 3 回答
  • 0 关注
  • 1436 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信