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.