For example:

Lets say i have 10 servers (Server 1-Server10) and a csv list where i have the servernames and a individual Foldername/Path for each server.

How would i create these Folders on each machine?

a) Open all 10 connections and run a command based on the csv ? b) stepping through 1by1

Please point me to the most effective way


This is very naive in that there is no error checking/etc., but it does what you want. I'm assuming here that you are using Powershell 2.0 with WinRM.

Assuming you have a CSV setup like this:


The solution would be like so:

$csvdata = import-csv .\test.csv
foreach ($row in $csvdata) {
    invoke-command $row.server { param($path) mkdir $path } -argumentlist $row.path

The only really weird part here is how you get the path passed in. Typically, the script in invoke-command cannot read your local variables. You setup a param for it (called $path) and then put the local variable $row.path into the argument list - this allows the mkdir command on the remote servers to use the $path variable and it sees what was passed in from the CSV file.


if your doing something thats wmi based then you can utilize async calls!


my answer was completely off base, anyway if you don't have psv2 or don't implement winrm.

$csvdata = import-csv .\test.csv

foreach ($row in $csvdata) {

md  \\$row.server\c$\$row.path 


I'm doing this off the top of my head so please test this first!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.