2014-10-27 78 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