Buongiorno,
tornato entusiasta dal Community Tour di Venerdì a Cesena, ho cominciato subito a scrivere qualcosa e, come ogni neofita, mi sono subito scontrato con questo codice:
$Computers = get-content C:\script\Machinelist.txt
foreach ($strComputer in $Computers)
{
$Path = "\\"+ $strComputer + "\c$\BG"
$PC = "\\"+ $strComputer + "\c$"
$shot1 = "c:\BG"
$Confronto = Compare-Object (Dir $shot1) (Dir $Path) -property Name, Length, LastWriteTime
if ((Test-Path $Path) -and ($Confronto.IsSynchronized))
{
Write-Host "c:\BG esiste!"
}
else
{
Write-Host "c:\BG non esiste!"
Copy-Item $shot1 $PC -recurse
$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $strComputer)
$regKey= $reg.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run",$True)
$regKey.Setvalue('BGinfo', '"C:\BG\Bginfo.exe.lnk"', 'String')
}
}
Devo copiare, via rete, una cartella (BG contenente BGInfo) dal mio PC a tutti i client. Per evitare di copiarla in ogni caso, con il ciclo IF volevo testare se la cartella esisteva nella destinazione e se non erano stati eliminati e/o alterati i file in essa contenuti, ma purtroppo non funziona a dovere.
Infatti se la cartella esiste ma uno dei file è stato modificato, il ciclo non se ne accorge e non esegue la copia.
Qualche idea su dove sbaglio ?
Grazie in anticipo