You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by ar...@apache.org on 2010/11/02 19:30:21 UTC
svn commit: r1030163 -
/incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm
Author: arkurth
Date: Tue Nov 2 18:30:20 2010
New Revision: 1030163
URL: http://svn.apache.org/viewvc?rev=1030163&view=rev
Log:
VCL-373
Added Windows.pm::enable_rdp_audio subroutine and added call to pre_capture. Audio redirection is disabled by default for RDP sessions under Windows Server 2008. This should allow audio to work as expected.
Modified:
incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm
Modified: incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm?rev=1030163&r1=1030162&r2=1030163&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm Tue Nov 2 18:30:20 2010
@@ -423,6 +423,16 @@ sub pre_capture {
=item *
+ Enable audio redirection for RDP sessions
+
+=cut
+
+ if (!$self->enable_rdp_audio()) {
+ notify($ERRORS{'WARNING'}, 0, "unable to enable RDP audio redirection");
+ }
+
+=item *
+
Clean up the hard drive
=cut
@@ -7073,6 +7083,59 @@ EOF
#/////////////////////////////////////////////////////////////////////////////
+=head2 enable_rdp_audio
+
+ Parameters : None.
+ Returns : If successful: true
+ If failed: false
+ Description : Sets the registry keys to allow audio redirection via RDP
+ sessions. This is disabled by default under Windows Server 2008
+ and possibly other versions of Windows. Also sets the Windows
+ Audio service to start automatically.
+
+=cut
+
+sub enable_rdp_audio {
+ my $self = shift;
+ unless (ref($self) && $self->isa('VCL::Module')) {
+ notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called as a VCL::Module module object method");
+ return;
+ }
+
+ my $registry_string .= <<"EOF";
+Windows Registry Editor Version 5.00
+
+[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\WinStations\\RDP-Tcp]
+"fDisableCam"=dword:00000000
+
+[HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Windows NT\\Terminal Services]
+"fDisableCam"=dword:00000000
+
+EOF
+
+ # Import the string into the registry
+ if ($self->import_registry_string($registry_string)) {
+ notify($ERRORS{'OK'}, 0, "set the registry keys to enable RDP audio");
+ }
+ else {
+ notify($ERRORS{'WARNING'}, 0, "failed to set the registry key to enable RDP audio");
+ return 0;
+ }
+
+ # Configure the Windows Audio service to start automatically
+ if ($self->set_service_startup_mode('AudioSrv', 'auto')) {
+ notify($ERRORS{'DEBUG'}, 0, "set the Windows Audio service startup mode to auto");
+ }
+ else {
+ notify($ERRORS{'WARNING'}, 0, "failed to set the Windows Audio service startup mode to auto");
+ return 0;
+ }
+
+ return 1;
+}
+
+#/////////////////////////////////////////////////////////////////////////////
+
=head2 get_node_configuration_directory
Parameters : None.