1
不太確定爲什麼以下不起作用。基本上,有多個基於鍵值的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
有趣的 - 那工程 - 但是,我怎麼會得到輸出顯示每個服務器的結果? $計算機不工作,因爲它沒有定義 - 如果我將get-content定義爲$ computer,它不會顯示任何服務器名稱。 – lara400
我的部分複製/粘貼錯誤。由於我使用管道連接了「Get-Content」和「ForEach-Object」,因此'$ computer'必須用'$ _'替換。固定。 –
太棒了!非常感謝Ansgar! – lara400