windows – 检查注册表值是否等于1无法正常工作
发布时间:2020-12-13 20:29:37 所属栏目:Windows 来源:网络整理
导读:我已经将PowerShell的一些东西放在一起,以远程查询存储在.csv文件中的计算机列表,以获取注册表值.如果注册表项的值等于“1”,则脚本应使用计算机的名称作为文本文件的名称创建文本文件. 一切都很好.脚本运行愉快,没有任何错误.问题是,当我返回并远程检查目标
我已经将PowerShell的一些东西放在一起,以远程查询存储在.csv文件中的计算机列表,以获取注册表值.如果注册表项的值等于“1”,则脚本应使用计算机的名称作为文本文件的名称创建文本文件.
一切都很好.脚本运行愉快,没有任何错误.问题是,当我返回并远程检查目标注册表值时,我发现该值不是1.脚本只是为.csv中的每一行创建一个文件. 我究竟做错了什么? 编辑***我发现一个问题我在注册表路径的$key变量中输入了错误. 2013年7月17日2:21p $File = Import-Csv 'c:tempmachines.csv' foreach ($line in $file) { $machinename = $line.machinename trap [Exception] {continue} $reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey("LocalMachine",$MachineName) $key = "SOFTWAREMicrosoftWindows NTCurrentVersionWinLogon" $regkey = "" $regkey = $reg.opensubkey($key) $keyValue = "" $keyValue = $regKey.GetValue('AutoAdminLogon') if ($keyValue = "1") { try { $textFile = New-Item -Path "c:tempautologin" -Name $MachineName -ItemType "File" } catch { $msg = $_ $msg } } $Results = $MachineName,$keyValue Write-host $Results #Output Below Here: }
在PowerShell中,=是赋值运算符,而不是比较运算符.改变这一行:
if ($keyValue = "1") 进入这个: if ($keyValue -eq "1") 有关更多信息,请参阅 你这么做太复杂了,BTW.这样的东西应该足够了: $keyname = 'SOFTWAREMicrosoftWindows NTCurrentVersionWinLogon' Import-Csv 'C:tempmachines.csv' | % { $reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey("LocalMachine",$_.machinename) $key = $reg.OpenSubkey($keyname) $value = $key.GetValue('AutoAdminLogon') if ($value -eq "1") { $filename = Join-Path "c:tempautologin" $_.machinename try { touch $filename $textFile = Get-Item $filename } catch { $_ } } Write-Host ($_.machinename,$value) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 有没有办法在Windows资源管理器中查看SVN修订号?
- windows-server-2003 – 在指定时间安排重启
- windows – 为什么“%~fI”参数扩展能够“访问”
- 批处理文件 – 无法在Windows 10下运行.bat文件
- windows-phone-7 – 是否可以仅为一个Pivot项目显
- windows-phone-8 – 如何使用WP8的LongListSelec
- r – 在Windows vs Mac上更改ggplot2中的字体
- 通过Windows命令行启动网站
- <Windows> VS2017使用GoogleTest
- windows-phone-7 – 如何使用Expression Blend在
热点阅读