Вы можете использовать net use
, чтобы определить, подключен диск или нет:
net use s:
if ($LastExitCode -ne 0)
{
net use s: \\server\share
}
$folders = @{local = 'c:\path1';remote='s:\path1'},
@{local = 'c:\path2';remote='s:\path2'}
$folders | Foreach {xcopy $_.remote $_.local /E /C /H /R /Y /D /I}
Не забывайте, что существующие инструменты консоли, как правило, прекрасно работают в PowerShell и иногда являются самым простым способом выполнения работы.