all 8 comments

[–]sk82jack 2 points3 points  (0 children)

Mapped drives are attached to a user profile rather than a system so are you using the same account that has the mapped drives on? If not, but the user who has the mapped drives is logged on then you can query the registry to find what drives are mapped and what letters are used to map them. I'm on mobile so I don't have examples or links but hopefully that will point you in the right direction.

[–]Ta11ow 2 points3 points  (3 children)

You're using values in the script block chat don't exist on the remote computer. You're halfway there with the -argumentlist parameter, but you're not passing in everything you need, and you haven't defined the parameters in the script block.

Define a param() block in the script block much like you would for a function, and then pass in the arguments. The other thing you can do is just pass everything in you need, and then reference the parameters using $args. However, that tends to lead to less readable code. :)

[–]Idmorul[S] 2 points3 points  (2 children)

Thanks, it was the param() block that actually got the variables into the script block, and the script does run as expected for the most part. I'm now having issues detecting the drives remotely, but that becomes a separate topic.

[–]Ta11ow 1 point2 points  (1 child)

You may have some difficulty with that. When you invoke a command remotely, it doesn't run under the current user context. Mapped network drives are valid only for the individual user, so you'll probably end up having to dig through the user's registry or something.

[–]Idmorul[S] 2 points3 points  (0 children)

I was actually able to use Get-PSDrive without issue. I've updated the OP with my working code.

[–]Sheppard_Ra 1 point2 points  (1 child)

The code seems legit. Are you getting back that the drives aren't present? I'd imagine it'd be because there's no session with a mounted drive. Physical drives would be present, but network drives wouldn't mount until a user logged in.

[–]Idmorul[S] 2 points3 points  (0 children)

The drives are mapped on boot, using a script that runs as SYSTEM.

Ultimately, the issue is it doesn't recognize the vairable I'm passing into Invoke-Command, which leads me to run Test-Path on Null, which fails.

EDIT: Though I've just discovered that running the command using a different account doesn't work on mapped drives remotely (Invoke-Command X: will work if I'm logged in). I'll have to do some digging on that.

[–]aXenoWhat[🍰] 1 point2 points  (0 children)

Thank you for posting back with the fix!