以下が機能しない理由がよくわかりません。基本的に、キーの値に基づく複数の elseif ステートメントがあります。
$valuePassword
入力したランダムな文字に等しい設定でサーバーをテストし、 にも設定$valueAutoLogin
しました'1'
。しかし、私が得た結果は以下のもので、何も表示されませんか?
また、複数のelseifステートメントの代わりに、これを行うより良い方法を考えられますか?
>
clear
Import-Module PSRemoteRegistry
$computers = Get-Content -Path C:\MANNY\Servers.txt
foreach($computer in $computers)
{
Write-Host "Checking $computer"
#Check if key exists
$valuePassword = Get-RegValue -ComputerName $Computer -Key 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -Value DefaultPassword
$valueAutoLogin = Get-RegValue -ComputerName $Computer -Key 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -Value AutoAdminLogon
if($valuePassword -eq $null -and $valueAutoLogin -eq $null)
{Write-Host "$computer not set"}
elseif($valuePassword -notcontains $null -and $valueAutoLogin -eq $null)
{Write-Host "$computer has Password set"}
elseif($valuePassword -eq $null -and $valueAutoLogin -eq '1')
{Write-Host "$computer has Autologin set but not password"}
elseif($valuePassword -notcontains $null -and $valueAutoLogin -eq '1')
{Write-Host "$computer has Autologin set and password set - AUTOLOGIN IS POSSIBLY SET"}
}
> 結果:
Checking SV160666
Checking SV160668
Checking SV160670
Checking SV160672
Checking SV160674
Checking SV180435
Checking SV193865
Checking SV193885