Пожалуйста, просветите меня. Я пытаюсь проверить, существует ли файл на рабочем столе группы компьютеров. Некоторые компьютеры работают под управлением Windows 7, а некоторые - под управлением Windows XP. Когда я запускаю код, он не проверяет путь на каждом компьютере и возвращает каждый компьютер как "имеющий URL", даже если я знаю, что файл не существует. Я не уверен, где я ошибся.
$a = Get-Content "C:\Computers.txt"
$windowsXP = "\\$i\c$\Documents and Settings\All Users\Desktop\file.url"
$windows7 = "\\$i\c$\Users\Public\Desktop\file.url"
ForEach ($i in $a){
#Test file on WindowsXP
if ((test-path $windowsXP) -eq $True)
{Write-Output "$i WindowsXP has URL"}
elseif ((test-path $windowsXP) -eq $False)
{Write-Output "$i WindowsXP needs URL"}
#Test file on Windows7
elseif((test-path $windows7) -eq $True)
{Write-Output "$I Windows7 has URL"}
elseif ((test-path $windows7) -eq $False)
{Write-Output "$I Windows7 needs URL"}
}
Попробуйте это (непроверено). Хотя до сих пор не обойти вниманием тот факт, что вы тестируете вслепую.
$a = Get-Content "C:\Computers.txt"
ForEach ($i in $a){
$windowsXP = "\\$i\c$\Documents and Settings\All Users\Desktop\file.url"
$windows7 = "\\$i\c$\Users\Public\Desktop\file.url"
#Test file on WindowsXP
Write-Output("$i - Checking WindowsXP Location")
if ((test-path $windowsXP) -eq $True)
{Write-Output "File Found"}
elseif ((test-path $windowsXP) -eq $False)
{Write-Output "File Not Found "}
#Test file on Windows7
Write-Output("$i - Checking Windows7 Location")
if((test-path $windows7) -eq $True)
{Write-Output "File FoundL"}
elseif ((test-path $windows7) -eq $False)
{Write-Output "File Not Found"}
}