2014-10-27 86 views
0

我目前正在創建一個powershell腳本,技術人員可以在其中運行幫助應用各種註冊表編輯來創建具有自動登錄的某些PC。但是,無論何時運行我的腳本,在使用預先存在的鍵更改值時,powershell都沒有問題,但在使用「new-item」命令時它不會創建鍵。我想知道是否有人會有任何想法,爲什麼這不會創建註冊表鍵,因爲我運行時沒有收到任何錯誤。Powershell在腳本運行時沒有創建註冊表鍵

Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" –Name AutoAdminLogon -Value 1 
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -Name DefaultUserName -Value domain\TEST 
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -Name DefaultPassword -Value TEST123 
Test-Path –Path "HKLM:\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\ForceAutoLogon" 
if (-Not (Test-Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon")) 
{ 
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -Name ForceAutoLogon -Value 1 
} 
+0

您是否正在使用提升的權限運行腳本? – ChrisBint 2014-10-27 13:35:54

+0

我的Windows帳戶是一個管理員帳戶,我也嘗試以管理員身份運行與PowerShell相同的語法,但它仍不會應用任何更改。 – 2014-10-27 13:43:15

回答

0

Test-Path不是爲註冊表值設計的。你可以做什麼使用Try/Catch塊。您還需要獲取/設置itemPropery。如果Get-ItemProperty失敗,則該鍵不能存在。然後我們可以創建它!如果Get-ItemProperty成功,那麼我們可以確保值設置正確。我可能會使用註冊表關鍵字錯誤,但讓代碼自己說話。

+0

嗨馬特,謝謝你的建議。我剛剛嘗試過,但它仍然沒有任何區別。我實際上只是試圖運行'New-Item-Path'HKLM:\ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon「-Name ForceAutoLogon -Value 1',它本身並沒有創建任何東西。 – 2014-10-27 14:16:22

+0

@ Josh1893現在看更多。我一直在編輯像一個瘋子 – Matt 2014-10-27 14:17:10

+0

剛剛嘗試過,似乎現在工作正常,非常感謝你!我的New-Item語法有什麼問題嗎?因爲我不明白如何運行它不會創建註冊表項。 – 2014-10-27 14:19:14