Estoy viendo una condición de carrera cuando llamo a New-Item para crear un directorio en una máquina extranjera usando una ruta UNC. El código está a continuación:¿Condición de carrera para crear un directorio con New-Item?
New-Item $target -itemType Directory -Force -Verbose |
%{ Write-Host "Creating dir" $_.FullName }
El uso de Test-Path inmediatamente después devuelve falso. Puse una ruta de prueba -> reposo durante 1 segundo reintento de bucle y, después de dormir durante 1 segundo, la ruta de prueba devuelve verdadera.
¿Es el artículo nuevo una llamada de bloqueo? ¿Debería esperar tener que esperar después de llamar a New-Item?
No tengo problemas y obtengo un resultado verdadero: md \\ server \ share \ newFolder; test-path \\ server \ share \ newFolder –
Ídem, no hay problema aquí creando directorios y pruebas 50 veces en rápida sucesión. Tal vez haya algo inusual en su recurso compartido de red (como una capa de almacenamiento en caché)? –
@Niall ¿Estás haciendo esto contra un recurso compartido DFS? aunque no sé por qué iría a diferentes acciones de una instrucción a la otra ... – Matt