首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在不提示输入密码的情况下使用PowerShell凭证

在不提示输入密码的情况下使用PowerShell凭证
EN

Stack Overflow用户
提问于 2011-06-05 05:56:47
回答 8查看 510.6K关注 0票数 157

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

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

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

EN

回答 8

Stack Overflow用户

发布于 2011-06-05 12:47:42

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

代码语言:javascript
复制
#=====================================================================
# 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
}

还有这一条:

代码语言:javascript
复制
#=====================================================================
# 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
}

您可以这样使用它:

代码语言:javascript
复制
$Credentials = Get-MyCredential (join-path ($PsScriptRoot) Syncred.xml)

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

票数 30
EN

Stack Overflow用户

发布于 2013-11-08 09:39:28

我必须从需要不同凭据的远程服务器运行SCOM 2012函数。我通过将密码解密函数的输出作为输入传递给ConvertTo-SecureString来避免明文密码。为清楚起见,此处未显示此内容。

我喜欢强类型我的声明。$strPass的类型声明工作正常。

代码语言:javascript
复制
[object] $objCred = $null
[string] $strUser = 'domain\userID'
[System.Security.SecureString] $strPass = '' 

$strPass = ConvertTo-SecureString -String "password" -AsPlainText -Force
$objCred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList ($strUser, $strPass)
票数 10
EN

Stack Overflow用户

发布于 2012-07-10 01:27:57

如果您计划重新启动,这里有两种方法可以做到这一点。

首先,您可以使用具有连接和重启另一台计算机所需权限的凭据在一台计算机上创建任务。这使得调度器负责安全地存储凭证。reboot命令(我是Powershell的一员,但这里更干净。)是:

SHUTDOWN /r /f /m \\ComputerName

在本地计算机上创建计划任务并远程重新启动另一个任务的命令行为:

SCHTASKS /Create /TN "Reboot Server" /TR "shutdown.exe /r /f /m \\ComputerName" /SC ONCE /ST 00:00 /SD "12/24/2012" /RU "domain\username" /RP "password"

我更喜欢第二种方法,在这种方法中,您使用当前凭据创建一个计划任务,该任务使用远程计算机上的系统帐户运行。

SCHTASKS /Create /TN "Reboot Server" /TR "shutdown.exe /r /f" /SC ONCE /ST 00:00 /SD "12/24/2012" /RU SYSTEM /S ComputerName

这也可以通过GUI实现,只需输入SYSTEM作为用户名,将密码字段留空即可。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6239647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档