2011-11-05 30 views
1

圍繞在PowerShell中低限制創建PowerShell的代碼簽名證書的腳本後出現的問題(或短時間沒有),我決定把我的共同行動,並開始做的一切Set-ExecutionPolicy AllSigned。在步行通過Hanselman's old post後,我甚至無法簽署我的profile.ps1。在Windows 7

快速測試顯示:獲取ChildItem證書:\ CurrentUser \我-codesign總是返回null。我打開了certmgr,我可以看到所有的證書,但我不確定爲什麼我不能在本地簽署任何證書。運行此:

Set-AuthenticodeSignature "C:\users\[MY USER ACCOUNT]\Documents\WindowsPowerShell\profile.ps1" @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0]

總是返回:

的Set-AuthenticodeSignature:無法綁定參數參數 '證書',因爲它是空

我在Windows 7終極在一個管理員帳戶,我已經執行了一切在PS或CMD作爲管理員。我一直對PowerShell進行一段時間的黑客攻擊,但是我希望我不會錯過這裏超級簡單的東西。

回答

1

我想我已經想通了,實際上。在這種情況下,我不確定這是否是最佳做法,但我厭倦了將我的頭撞向我的辦公桌。

1.)所以,我看着這個MS Support Article,我注意到SYSTEM用戶應該完全控制... \ Crypto \ RSA \ MachineKeys目錄,而我的系統根本沒有列出。所以,我改變了那裏的權限(這也可以與SO Question #11887合作)。

2)刪除我之前創建的證書並重新創建它們。

3)開闢了certmgr,發現證書,去道具,並設置特定的目的。

現在Get-ChildItem cert:\CurrentUser\My -codesigning返回指紋,我可以腳本進行簽名。

我不知道爲什麼我安裝的是這樣或如何不尋常的,這是,但我從來不碰的machineKey目錄中有以前。但它現在似乎工作。