Likely a simple fix; for some reason the first icm works fine, but the second one does not do anything. It’s as though Test-Path is not including the subdirectory specified in $c, though it does contain a string value.
In a nutshell:
- Loop through list of remote computers in text file.
- Check if given remote computer is online.
- If remote computer online, icm on remote computer to create C:\folder if it does not already exist (this works).
- icm on backup server (hardcoded name) to create subfolder X:\backups\folder<strong>ComputerName if does not already exist (this does not work).
- Else, return message.
foreach ($c in $Computers) { if ((Test-Connection -ComputerName "$c" -Quiet -Count 1)) { Invoke-Command -ComputerName $c -Command { if (-not (Test-Path C:\folder)) { # This works on remote server ($c). New-Item -Path C:\folder -ItemType Directory } }; # This does not work on backup server. Permissions are correct. $c is assigned as the subfolder name. Invoke-Command -ComputerName "BACKUPSERVER" -Command { if (-not (Test-Path ("X:\Backups\folder\$c"))) { New-Item -Path "X:\Backups\folder" -Name "$c" -ItemType Directory -Force } } } else { Write-Warning "Unable to establish connection with system $c ($Date)" Write-Output '' } }
Would appreciate some insight to this.