MATLAB: Does DAQREGISTER fail on Windows Vista and Windows 7 with UAC enabled

7blocksdaqData Acquisition Toolboxlegacyni-daqmxnidaqmxsimulinkwindows

I am logged into my Windows Vista or Windows 7 computer with Administrative privileges. User Account Control (UAC) is enabled. If I attempt to register an adaptor from the Data Acquisition Toolbox, it fails.
daqregister('nidaq')
An adaptor could not be registered. User Access Control (UAC)
in Microsoft Windows Vista has prevented this operation.
To register an adaptor, MATLAB must be run with full administrator
rights including elevated UAC.
When I execute DAQHWINFO to query for installed adaptors, I see that the adaptor is not installed.

Best Answer

In order to register a Data Acquisition Toolbox adaptor, the MATLAB process needs administrative privileges. On Windows Vista and Windows 7, when UAC is enabled, even users who are part of the local Administrators group would have their administrative privileges disabled, resulting in this error message.
To work around this issue MATLAB should be run once in elevated Administrative mode in order to register the Data Acquisition Toolbox adaptor:
1. Right click on the MATLAB shortcut or the file MATLAB.exe and select "Run as Administrator".
2. Once MATLAB starts execute the DAQREGISTER command as normal.
daqregister('nidaq')
3. Close MATLAB and start it as usual.
Similarly, in Simulink data acquisition that uses legacy interface, above workaround helps, if the device is not being detected inside the DAQ blocks. This issue is specific to Data Acquisition with Legacy interface in 32 bit MATLAB. 
The workaround mentioned above also works well for Data Acquisition Toolbox installed on Windows 7.