レジストリ値について、.csv ファイルに保存されているマシンのリストをリモートでクエリするために、PowerShell のビットをまとめました。レジストリ キーの値が「1」に等しい場合、スクリプトは、マシンの名前をテキスト ファイルの名前として使用して、テキスト ファイルを作成する必要があります。
すべてがうまく機能します。スクリプトはエラーなしで問題なく実行されます。問題は、戻って対象のレジストリ値をリモートでチェックすると、値が 1 ではないことがわかります。スクリプトは、.csv のすべての行に対してファイルを作成しているだけです。
私は何を間違っていますか?
EDIT***レジストリ パスの $key 変数にタイプミスがある問題が見つかりました。2013 年 7 月 17 日 午後 2 時 21 分
$File = Import-Csv 'c:\temp\machines.csv'
foreach ($line in $file)
{
$machinename = $line.machinename
trap [Exception] {continue}
$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey("LocalMachine",$MachineName)
$key = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\WinLogon"
$regkey = ""
$regkey = $reg.opensubkey($key)
$keyValue = ""
$keyValue = $regKey.GetValue('AutoAdminLogon')
if ($keyValue = "1")
{
try
{
$textFile = New-Item -Path "c:\temp\autologin" -Name $MachineName -ItemType "File"
}
catch
{
$msg = $_
$msg
}
}
$Results = $MachineName , $keyValue
Write-host $Results
#Output Below Here:
}