by willbs at 2013-03-18 11:15:31
whe i run this code with the literal values for the remote machine name, username and password, it works fineby poshoholic at 2013-03-19 11:57:05
psexec \192.xxx.xxx.xxx -u Username -p Password cmd /c ‘echo . | diskpart /s "D:\serverfolders\documents\MSR-EFItest.txt" > "D:\serverfolders\documents\MSR-EFIlog.txt"’
if i run the same code using global variables, it gets stuck, as if i have the incorrect remote machine name, username, or password
psexec \$global:uutName -u $global:usernamer -p $global:password cmd /c ‘echo . | diskpart /s "D:\serverfolders\documents\MSR-EFItest.txt" > "D:\serverfolders\documents\MSR-EFIlog.txt"’
or this too with quotes
psexec \"$global:uutName" -u "$global:usernamer" -p "$global:password" cmd /c ‘echo . | diskpart /s "D:\serverfolders\documents\MSR-EFItest.txt" > "D:\serverfolders\documents\MSR-EFIlog.txt"’
any suggestions to get it to work?
Have you tried pushing the double backslash inside of your uutName variable? That would be my first guess as to why it isn’t working with variables.by willbs at 2013-03-19 14:41:21
that was a good guess but it didn’t workby poshoholic at 2013-03-20 05:38:01
thanks
Ok, here’s another way you could do it: try using splatting instead to push the arguments into psexec, like this:by willbs at 2013-03-20 09:02:51$psexecArguments = @(
$global:uutName
'-u'
$global:usernamer
'-p'
$global:password
'cmd'
'/c'
'echo . | diskpart /s "D:\serverfolders\documents\MSREFItest.txt" > "D:\serverfolders\documents\MSR-EFIlog.txt"'
)
psexec @psexecArguments
You should also verify the contents of the array by outputting it to the console to make sure the arguments are what you think they should be as a part of testing this. If that fails then I can run some tests locally (don’t have psexec installed right now, which is why I’m just putting out suggestions).
hey poshoholic, you got me thinking about pushing the backslashes when it didn’t workby poshoholic at 2013-03-20 12:12:26
so what i did was remove them from the contents of the global variables and rewrote the command like this
psexec \$global:uutName -u $global:DiskPartusername -p $global:password cmd /c ‘echo . | diskpart /s "D:\serverfolders\documents\MSR-EFItest.txt" > "D:\serverfolders\documents\MSR-EFIlog.txt"’
and it works fine
thanks for the idea
Excellent, glad you were able to work it out.