我想重新启动属于某个域的远程计算机。我有一个管理员帐户,但我不知道如何在powershell中使用它。
我知道有一个Restart-Computer
cmdlet,我可以传递凭据,但是如果我的域是例如mydomain
,我的用户名是myuser
,我的密码是mypassword
,使用它的正确语法是什么?
我需要安排重新启动,这样我就不必键入密码了。
发布于 2011-06-05 12:47:42
关于存储凭证,我使用了两个函数(通常位于从我的配置文件加载的模块中):
#=====================================================================
# 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就在那里,并将自动打开。
发布于 2013-11-08 09:39:28
我必须从需要不同凭据的远程服务器运行SCOM 2012函数。我通过将密码解密函数的输出作为输入传递给ConvertTo-SecureString来避免明文密码。为清楚起见,此处未显示此内容。
我喜欢强类型我的声明。$strPass的类型声明工作正常。
[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)
发布于 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作为用户名,将密码字段留空即可。
https://stackoverflow.com/questions/6239647
复制相似问题