I am trying to gather custom facts for a windows 2012 R2 server while avoiding to write powershell scripts. win_stat is something that can apparently be very useful to me but i am getting confused about its exact behavior.
I have a file structure like this:
E:
E:\link1
E:\folder\link2
E:\folder\link2\some_dir\link3.jar
Link1 and 2 are directory symbolic links and link3 is a file symbolic link and is currently active in a java process. I am trying to check if these links exists or not via this kink of script:
- I have a file symbolic link E:\folder\link.exe pointing to an exe file and this link is not actively in use by a process. So when i use
win_stat: path=“E:\folder\link.exe”
i get an answer that it does not exist.
“msg”: {
“changed”: false,
“stat”: {
“exists”: false
}
}
But when i use:
win_stat: path=“E:\folder\link.exe”
I get a proper result.
Probably related to the above questions, but what is the proper syntax to specify a path here ?
I don’t have any experience of using symlinks on windows, but my advice for construction windows paths (assuming you are using ansible 2.0 or later) is…
1/ If you need to double quote your path names, then always use double backslash for the path separator
So
win_stat: “path=E:\folder\link.exe”
2/ I would also advise using the ‘yaml style’ way of supplying module parameters, rather than using the key=value style, if only because ‘yaml style’ makes you put 1 parameter per line, which often means you don’t need to use any quotes at all for hard-coded windows paths:
So like this (yaml style parameter)
win_stat:
path: E:\folder\link.exe
Hope this helps,
Jon
Thanks for the answer. I figured i should always quote and use double slashes to be on safe side.
I am still stuck with problem number 3. can you help me with that ?