存储凭据以在PHP应用程序中运行PowerShell脚本(远程)

时间:2016-06-06 16:54:40

标签: php security powershell passwords

我正在使用XAMPP(php / mysql / apache)和PowerShell v3运行Windows 2012 R2服务器。在过去的几个月里,我的代码已经正常工作以存储和检索加密密码

我的问题是,如何存储我的Powershell脚本使用的密码?当我在本地运行时脚本运行正常,但是当我从远程客户端上的PHP应用程序运行它们时,我得到“服务器已拒绝客户端凭据”。错误。

我尝试过以这种方式创建密码文件:

$File = "D:\path\to\password.txt"
[Byte[]] $key = (1..16)
$Password = "myPassword" | ConvertTo-SecureString -AsPlainText -Force
$Password | ConvertFrom-SecureString -key $key | Out-File $File

并像这样检索和使用它:

$PasswordFile = "D:\path\to\password.txt"
[Byte[]] $key = (1..16)
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "domain\username", (Get-Content $PasswordFile | ConvertTo-SecureString -Key $key)

然后像这样使用它:

get-wmiobject Win32_Service -ComputerName $dc.name -credential $credential | select systemname,name,startmode,caption,state

1 个答案:

答案 0 :(得分:0)

Here使用略有不同的命令

也许你想尝试一下

$SecureString = Read-Host -AsSecureString
$EncryptedPW = ConvertFrom-SecureString -SecureString $SecureString
Set-Content -Path "C:\tmp\mypw.txt" -Value $EncryptedPW

并使用

进行检索
$EncryptedPW = Get-Content -Path "C:\tmp\mypw.txt"
$SecureString = ConvertTo-SecureString -String $EncryptedPW
$Credentials = New-Object System.Management.Automation.PSCredential "User", $SecureString

我还没试过。但值得一试。