How to make screenshots using VMWare tool "vmrun"? - vmware

I'm currently working with the vmrun-Tool, to control VMWare Virtual Machines.
I'm using VMWareWorkstation 7.0.0/7.0.1 and VMWarePlayer 3.0.0 on Windows 7 x64.
I simply want to take a screenshot of each virtual machine which is powered on.
Listing the power-on virtual machines is quite simply and works!
(vmrun list)
But the captureScreen command doesn't work.
I have tried several commandline options.
For example:
vmrun -T ws captureScreen %VMPATH% %OUTPUTPATH%
I get no error message, but the console is blocked (and the command never finishes).
I have also tried to include -gu USERNAME and -gp PASSWORD, but it results in the same problem.

Be sure the user/pass that you use for '-gu' and '-gp' are a valid username and password for the guest OS not the host.
I had the same trouble as you because I was using "root" and "root_pwd" for my user/pass, then I realized it had to be a pasword inside the guest.
vmrun -T ws -gu GUEST_USER -gp GUEST_PASS captureScreen %VMPATH% %OUTPUTPATH%
Also, the %OUTPATH% needs to be a png. The captureScreen command outputs in PNG.

I tried to run the statement in my questition via VMWare Player 3.1 and it worked. I guess I might also work using the new VMWare Workstation (7.1).

Related

Launch a program at login without permissions (fedora 20)

I'm currently developing an application with QT 4.8 with a "Launch on login" option. My main problem currently is that I can't seem to find a proper way to make the program launch itself after login on Linux (Fedora 20 in my case).
My program should be able to run in the background without stopping fedora to launch.
I would also like to avoid having to ask for any sort of admin privilege since my application doesn't require any (except maybe for this option).
Finally found out about "home/.config/autostart/.desktop".
I'll have to create autostart if it's not created but from there I can chose to make or delete the file depending on what my user decided to do.
The .desktop file have to follow a particular syntax (which is not a problem for me)
[Desktop Entry]
Type=Application
Exec=</path/to/binary or command to execute>
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=<Name_to_be_displayed>
Comment=<optional comment>
In my case, I can just remove the "comment" line since just the name of the application should be enough for the user to recognize it.
You can Either keep your executable in side /etc/rc.d/rs or inside /etc/init.d folder, so that it can automatically start once device is up.
Hope this Helps.
Each user has a .bashrc file located in their home directory, you could append a command to run your application to the end of that.
That will run when only that user logs in (I think either with graphical or terminal session)
To run for all users, look at creating a systemd service if you dare, or append a line to the end of /etc/rc.local. You'll need to be root for that though.
EDIT: Don't forget to put an ampersand at the end of the command to run in background.

Virtualbox “Callee RC: REGDB_E_CLASSNOTREG” (0x80040154)?

I was getting the Virtualbox problem
Callee RC: REGDB_E_CLASSNOTREG” (0x80040154)
all of a sudden. Problem started on VirtualBox 4.3 (I think). I upgraded to version 5 hoping to fix it but had no luck at that point.
My solution:
Check your directory C:\Users\yourname\.VirtualBox\ (yourname is in fact your username.)
On my PC there was a VirtualBox.xml with size of 0 Kb.
Also there was a VirtualBox.xml-prev with a size of 3 Kb.
Dates where somewhere around the time the problem started...
Renaming the VirtualBox.xml-prev one to the VirtualBox.xml SOLVED my issue.
For those without an xml file, here is my xml file, hopefully it helps .....
<?xml version="1.0"?>
<!-- ** DO NOT EDIT THIS FILE. ** If you make changes to this file while any VirtualBox related application ** is running, your changes will be overwritten later, without taking effect. ** Use VBoxManage or the VirtualBox Manager GUI to make changes. -->
-<VirtualBox version="1.12-windows" xmlns="http://www.innotek.de/VirtualBox-settings">
-<Global>
-<ExtraData>
<ExtraDataItem value="general,system,previewClosed,display,storage,audio,network,usb,sharedFolders,description" name="GUI/DetailsPageBoxes"/>
<ExtraDataItem value="m=59397901-1440-48ea-8781-6f86d06c7fbb" name="GUI/GroupDefinitions/"/>
<ExtraDataItem value="m=Sharepoint" name="GUI/LastItemSelected"/>
<ExtraDataItem value="415,153,770,550,max" name="GUI/LastWindowPosition"/>
<ExtraDataItem value="D:/virtualbox" name="GUI/RecentFolderHD"/>
<ExtraDataItem value="D:\virtualbox\Sharepoint.vdi;" name="GUI/RecentListHD"/>
<ExtraDataItem value="334,1261" name="GUI/SplitterSizes"/>
<ExtraDataItem value=",confirmGoingScale,remindAboutAutoCapture,remindAboutMouseIntegration,showRuntimeError.warning.HostAudioNotResponding,confirmInputCapture,warnAboutInaccessibleMedia" name="GUI/SuppressMessages"/>
<ExtraDataItem value="53" name="GUI/UpdateCheckCount"/>
<ExtraDataItem value="1 d, 2015-08-19, stable, 5.0.0" name="GUI/UpdateDate"/>
</ExtraData>
-<MachineRegistry>
<MachineEntry src="D:/virtualbox/Sharepoint/Sharepoint.vbox" uuid="{59397901-1440-48ea-8781-6f86d06c7fbb}"/>
</MachineRegistry>
-<MediaRegistry>
<HardDisks/>
<DVDImages/>
<FloppyImages/>
</MediaRegistry>
-<NetserviceRegistry>
-<DHCPServers>
<DHCPServer enabled="1" upperIP="192.168.56.254" lowerIP="192.168.56.101" networkMask="255.255.255.0" IPAddress="192.168.56.100" networkName="HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter"/>
</DHCPServers>
</NetserviceRegistry>
<SystemProperties exclusiveHwVirt="false" LogHistoryCount="3" webServiceAuthLibrary="VBoxAuth" VRDEAuthLibrary="VBoxAuth" defaultHardDiskFormat="VDI" defaultMachineFolder="C:\Users\yourname\VirtualBox VMs"/>
<USBDeviceFilters/>
</Global>
</VirtualBox>
I had the error...
Failed to create the VirtualBoxClient COM object.
The application will now terminate.
Callee RC: REGDB_E_CLASSNOTREG (0x80040154)
...when starting VirtualBox as normal user. Starting as administrator
worked on the other hand.
System: Windows 8, VirtualBox 5
Actually, the issue "suddenly" appeared after I played around with raw disk accesses. During these test, I re-installed VirtualBox as administrator.
What people not always know is that the registry has also an access right management, like files. Right-click on a folder to access the Autorisations window to display them.
When I re-installed as administrator, the registry keys where created with an admin level access. By this, I wasn't able anymore to start VirtualBox as non-admin.
Re-installing as normal user did not solve the problem. Probably because some admin-level keys could not be deleted.
Solution that worked for me:
Back-up .VirtualBox (optional, as all backups are :-)
Uninstall VirtualBox
Open Registry Editor regedit.exe as administrator.
Delete all remaining VirtualBox keys (especially the .NET, driver registrations, Compatibility Manager settings)
Reinstall VirtualBox using a user account.
Notes:
I did not test escalating the VirtualBox uninstaller process to administrator level with sysinternals. That might work as well.
Be careful with regedit. The GUI is quite '90s. Good to know: CTRL+F searches below the currently selected key, so be sure to go to the top when start searching.
I had one key for an USB driver that I wasn't able to delete due to access rights problems. Finally, this was not needed anyway.
Please don't forget to change access rights on VirtualBox disk files when they have been created with VirtualBox running as administrator.
Renaming the VirtualBox.xml-prev one to the VirtualBox.xml solved my issue.
After you upgrade to VirtualBox-5.0.8-103449 started getting error: Virtualbox "Callee RC: REGDB_E_CLASSNOTREG" (0x80040154)
No advice on the Internet did not help.
It helped only delete the entire contents of the folder "C:\Users\"user"\. VirtualBox" and then restart Oracle VM VirtualBox shortcut on the desktop.
Apparently when you remove the previous version of Virtualbox folder
"C:\Users\"user"\.VirtualBox" is removed.
As the contents of the folder should be removed manually after reinstalling VirtualBox, as well as in case of damage VirtualBox, for example due to lack of space on the hard disk.
Not to be confused with the folder "C:\Users\"user"\VirtualBox VMs"
This folder appears later, only after the establishment has a particular virtual machine.
sorry for machine translation.
In my case this error was caused by a zero-byte truncated VirtualBox.xml in the user's .VirtualBox folder. I found out after downgrading to 4.x and getting a more descriptive error message regarding a missing < tag.
As I already suggested on superuser, as of today (09/09/2015).
Upgrade to the new version that was released.You can find it here
There have been some changes concerning the Windows 10 Problems.
The solution is in the last paragraph.
I happened to have a different cause for the same error message under VirtualBox 5.0.20.
So I temporarily installed VirtualBox 5.1.10 which tries to analyse the situation and gives more info about probable culprit.
In my case the error message from VB 5.1.10 looked like following:
Failed to instantiate CLSID_VirtualBox w/ IVirtualBox, but CLSID_VirtualBox w/ IUnknown works.
PSDispatch looks broken by the 'xxx' ({11B6009E-3F04-4478-A807-30FBD579FC07}) program, suspecting that it features the broken oleaut32.msm module as component {997FA962-E067-11D1-9396-00A0C90F27F9}.
We suggest you try uninstall 'xxx'.
See also https://support.microsoft.com/en-us/kb/316911 .
Result Code:
E_NOINTERFACE (0x80004002)
Component:
VirtualBoxClientWrap
Interface:
IVirtualBoxClient {d2937a8e-cb8d-4382-90ba-b7da78a74573}
Where 'xxx' is here a placeholder name for a specific program name it mentions and suggests to uninstall. (The specific name in my case is not important here).
So I did uninstall the specific program the new VirtualBox version accused, and after that VB started working again. Then I reinstalled the old VB version 5.0.20 I needed to continue using and all was well.
After some researching I found this thread with the step:
find C:\Program Files\Oracle\VirtualBox\drivers\vboxdrv\VBoxDrv.inf right click and select Install
I had this same issue, I believe something corrupted whilst shutting down without correctly closing connections and I couldn't boot VB.
Tried all of the solutions above but none of them worked.
Without Uninstalling I went to the virtual box website and grabbed the most recent version and installed over the top and VB jumped into life.
Version 6.0.14 From 6.0.10

Child_info_fork error running code on cygwin [duplicate]

I recently reinstalled Cygwin on my computer in order to get access to several command line elements that I was missing. I have never had previous difficulty with Cygwin, but after this reinstallation, an error message continues to appear after (almost) each command entered. For instance:
-bash-4.1$ wc m1.txt
3 [main] bash 2216 child_info_fork::abort: data segment start: parent(0x26D000) != child(0x38D000)
-bash: fork: retry: Resource temporarily unavailable
2013930 4027950 74968256 m1.txt
Generally, the command still runs (as seen above), but not always. Occasionally, the 'error' message occurs several times in a row (the initial number "3" will then change to a "4" or "2", notably if I start a second Cygwin window.
Also, as soon as I start up Cygwin, I get the following message before the prompt:
3 [main] bash 6140 child_info_fork::abort: data segment start: parent(0x26D000) != child(0x36D000)
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: Resource temporarily unavailable
-bash-4.1$
At the moment, I am debating whether to uninstall/reinstall Cygwin again or just live with the error messages, but I was curious if there might be an issue that I am unaware of.
(assuming Cygwin is installed at C:\Cygwin):
Open Task Manager and close any processes that look to be Cygwin related.
Open C:\Cygwin\bin in Windows Explorer
Verify that dash.exe, ash.exe, rebase.exe, and rebaseall exist in this folder
If any of them are missing, re-run Cygwin setup and select the dash, ash, and rebase packages
right-click your C:\Cygwin folder, uncheck Read-only (if its checked), and press OK.
When an error about not being able to switch some files comes up, select "Ignore All". Wait for this process to complete.
Browse to C:\Cygwin\bin in Windows Explorer
Right click dash.exe and click "Run as Administrator". A command Prompt should appear with nothing but a $
Type /usr/bin/rebaseall -v, hit enter, and wait for the process to complete.
If you get errors about Cygwin processes running, try Step 1 again. If that still doesn't work, Restart your computer into safe mode and try these steps again.
A commenter noted that, depending on your settings, you may have to type cd /usr/bin && ./rebaseall -v instead.
Try opening Cygwin again.
This process worked for me. I hope it works for you guys too.
Source: http://cygwin.wikia.com/wiki/Rebaseall
I would like to add the following to the above answers, as it is what I had to do after reinstalling Cygwin:
Navigate to the "/usr/bin" directory (usually, C:\cygwin\bin) and right click, Run as Administrator the file: dash.exe
Then, at the $ prompt type the following, hitting enter after each line:
cd /usr/bin/
/usr/bin/peflags * -d 1
/usr/bin/rebaseall -v
What it does is, it marks the dll's as "rebase-able," and then rebases them. You have to have peflags.exe in addition to the above files (in previous answers). You may have to restart windows after doing this and you will definitely need to make sure that there are no processes nor services belonging to cygwin running. (Use task manager, kill any related processes, and then under the services tab look for any service starting with CYG and stop it.)
After doing this, I was able to get cygwin to run without any errors about dll's being loaded to the wrong addresses aka fork errors, etc.
I hope that this helps others, as it was a pain to find.
SOURCE: http://www.cygwin.com/faq.html#faq.using.fixing-fork-failures
and the rebase README file.
To add on to other answers here, we ran into the same issue but could not run the rebase command from the ash or dash shell. However, when launching the command from the Windows cmd shell, the following worked.
cmd /c "C:\cygwin64\bin\ash.exe /usr/rebaseall -v"
-v is to get verbose output
I found another information here :
http://cygwin.com/ml/cygwin/2014-02/msg00531.html
You have to delete the database at
/etc/rebase.db* and do in a "ash" windows :
peflags * -d 1
rebaseall
It works for me on 2 servers.
I solved this problem by restarting my computer. Probably installed a driver update and kept using sleep instead of shutting down.
Experienced the same issue when loading Cygwin with cygiconv-2.dll forking and not loading successfully in the Cygwin terminal, but after turning off my AntiVirus (it was specifically Ad-aware), the issue resolved, and Cygwin worked properly.
In case you are using babun's Cygwin, after rebaseall, try launching Cygwin by executing .babun\cygwin\cygwin.bat in a Windows command prompt or Windows explorer.
This works for me (while launching babun's default console - mintty results in fork error).
I had the error on win10 and i was trying to rebase to c: before install.
then i saw that the installer was installing it instead to c:/Users/myuser
so i was coping all files from c:/Users/myuser to c:.badun
and then restart plus open badun.bat
not shure if this was wise its now duplicated XD... but then it worked again.
Rebaseing didn't help in my case. In addition to what other people suggested, I noticed that reducing the length of PATH environment variable fixed the issue for me (and for other people as well as can be seen from this answer).
This issue is intermittent in nature & I found this issue when there is network is too slow to connect to remote machine on AWS.... I have Shell script that runs through Gitbash shell & it connects to AWS EC2 instance with ssh..... Most of the time, it ran correctly but 2 out 100 times it get into this issue bash: fork: retry: Resource temporarily unavailable .... Killing the MSYS2 terminal from task manager helps to overcome with this issue....
Negative side is you need to run the scripts from the beginning...
I had the same issue on Windows 10 and the mobaxterm app (which uses cygwin) and I tried all of answers listed here however for me, the solution was to simply delete the "CryptoPro CSP" application.
I started facing this problem after upgrading to windows 10. As of now I do not see that any of the above method working.
What I am noticing is that if you start cygwin with admin right (right click and say "run as admin") then it works fine.
Or you open cmd as administrator and then launch cygwin from there, then also it runs fine.
Just reinstall cygwin and select TCL and activate EXPECT

Intel pin: Instrumentate running process

I created a simple pin tool that dumps any win32 CreateFileW calls. It works fine, but when i try to attach it to an already running process, the process simply terminates. Tried with several applications (notepad, wordpad, internet explorer), same result. This is the command i use:
.\pin -pid 8804 -t dumpfile.dll
I got a tip to try and turn off multi-threading like this:
.\pin -mt 0 -pid 8804 -t dumpfile.dll
but it did not help. Also tried with another, out of the box pintool, didn't work either, so the problem is not in my pintool. Any ideas?
Thanks in advance!
Okay, today i had some time on my hands to research this problem again. Tested with a console application launched from cmd, and before shutting down, it actually dumped an error message, the .dll (the pin tool) was not found...
So when running pin you actually have to specify the full path to your pin tool, or the path relative to the instrumentated binary's location.

Connect to MS SQL Server through ODBC

I have a Qt 4 application that is trying to connect to an MS SQL Server 2008 database using the Qt ODBC driver. The application runs fine when it is running in Windows; however, the target OS for the application is to have it run in GNU/Linux. When the application runs in GNU/Linux I get the following error:
QSqlError(0, "QODBC3: Unable to connect", " [unixODBC][Driver Manager]Data source name not found, and no default driver specified")
Is there something I need to configure on the SQL server or application side to get the connection to work?
I don't really know much about unixODBC, but have a look here:
unixodbc.org/doc/
For connecting to MSSQL, the following might be useful:
http://www.unixodbc.org/doc/FreeTDS.html
or .../FreeTDS2.html
Try to copy the odbc.ini file in ~/.odbc.ini . If not working again, try to copy the same file into /etc/odbc.ini. If this is not working, as these directories are different for different Unix systems, find all files: *odbc*\.ini and see if some of them are empty. If so, replace them with the correct .ini file.
I had the same problem and this solved it. But it's a really stupid solution, so I'm looking for a better one. Hope that helped (: