Thanks a lot for your replies. @Riepl nmap -sS -O does help in fetching the OS type only if they have public ip. I cant ssh into the machines because they are customer machines and I dont have credentials for them.
@Nikolaos ping didnt work for me all the time because few VM's have blocked ping and in that case, there is no way of telling it. Also, the default TTL values are outdated in that page. I got a response of 122 for windows vm On Mon, Jun 17, 2019 at 12:30 PM Nikolaos Dalezios <dale...@gmail.com> wrote: > Another solution is to ping a VM and check the TTL value. > Due to slightly different TCP/IP implementation on each OS-family, you can > identify the OS family by checking this > <https://subinsb.com/default-device-ttl-values/> table > > > On Mon, Jun 17, 2019, 12:44 Riepl, Gregor (SWISS TXT) < > gregor.ri...@swisstxt.ch> wrote: > > > > > > version. Another way is to open the console and see the login screen. > > > This will get the actual data but I want to do automation to see for > > > all VM's and opening the console is not feasible to automate. Is > > > there any other way to get it? > > > > Are the VMs networked? > > > > You could fetch their public IPs and run nmap -sS -O against them. This > > should produce fairly accurate results. > > > > If they are all on the same Cloudstack network, you could also SSH into > > a connected VM and run nmap from there. > > > > I don't think that there is a generic way to obtain the actual OS > > running on a VM via Cloudstack. It might be possible through the > > hypervisor, but nmap will work in most cases. > > > -- Thanks and regards Rakesh venkatesh