1

以特定用戶身份運行腳本時出現錯誤,但不是以我自己的用戶帳戶身份運行。這在Windows 2012R2上。 Powershell模塊已安裝並已使用一段時間,但使用其他帳戶可阻止其運行。因爲我已經能夠運行它了,所以我覺得我可以排除腳本中缺少的任何文件或錯誤的命令。腳本的其餘部分依賴於此。我也使用將通過自動化運行命令的服務帳戶運行convertto-securestring選項,但它仍然不起作用。ConvertTo-SecureString密鑰在指定狀態下無效

這是我跑轉換的密碼

$password = "password" 
$secureStringPwd = $password | ConvertTo-SecureString -AsPlainText -Force 
$secureStringText = $secureStringPwd | ConvertFrom-SecureString 
Set-Content "E:\temp\ExportedPassword.txt" $secureStringText` 

這是

line 4 $pwdTxt = Get-Content "E:\temp\ExportedPassword.txt" 
line 5 $securePwd = $pwdTxt | ConvertTo-SecureString 

ConvertTo-SecureString : Key not valid for use in specified state. 
At E:\temp\get_user_cliffsv4.ps1:5 char:24 
+ $securePwd = $pwdTxt | ConvertTo-SecureString 
+      ~~~~~~~~~~~~~~~~~~~~~~ 
+ CategoryInfo   : InvalidArgument: (:) [ConvertTo-SecureString], 
CryptographicException 
+ FullyQualifiedErrorId : 
ImportSecureString_InvalidArgument_CryptographicError,Microsoft.PowerShell. 
Commands.ConvertToSecureStringCommand 

我已經通過運行該腳本無數次試圖爲用戶B運行後的錯誤信息安全密碼腳本自動化軟件,但是當測試時,由於這個錯誤我不得不作爲我的個人帳戶運行該命令,爲了解決這個問題,我可以完成測試,我調用了該選項。我的問題是,我使用的帳戶是否缺少任何特定的權利?我必須在該帳戶下安裝Powershell擴展,還是可以在PS或服務器上設置/更改某些內容,以便服務帳戶運行此腳本?提前致謝!

+0

正如你已經發現了你自己; SecureStrings,憑證等默認使用用戶特定的密鑰進行加密,因此它們不能在不同的用戶帳戶之間共享(或泄漏)。 –

+0

是的,得到了​​這個系統帳戶的工作,所以甚至比用戶運行服務更好。我們有一個流程來讓每臺主機上創建的密鑰以這種方式運行我們的服務。 –

回答

0

問題不在於服務帳戶運行命令的能力,而在於系統帳戶正在運行該命令,因此它傳遞的安全密碼不可用。我發現這個鏈接提供了一個腳本,用於安排腳本使用系統帳戶運行,從而通過系統創建文件,系統將正確使用密碼文件並正確傳遞憑據。感謝Keith Francis和代碼託管網站,我非常感謝這些社區提供支持。

https://community.spiceworks.com/scripts/show/3517-use-powershell-securestring-with-windows-system-account

相關問題