Kaseya Community

Windows 7 VNC CTRL+ALT+DEL Fix

  • OK so I know what fixes it, but I have issues running the procedure on some agents. I have tried executing as System and as logged in User, using the Use Credential step prior to that. It seems like it only works on machines where the user is a local admin. I can delete the reg key on my PC, run it, and it appears instantly. Other machines the script just sits as pending or says it was successful and the Reg Key does not appear. I can make the entry through Live Connect no problem and it works right away. 

    I have tried Set Registry value, execute Shell Command, and even making a .reg key and trying Execute File. Set Reg value and Shell Command work for me, but not all users. 

    Anyway, this is an annoying bug and this is what fixes it:

    reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System /v SoftwareSASGeneration /t REG_DWORD /d 1 

    Anyone have any luck with this? 

  • Yes. This is what I'm using: It checks for the key, it checks for the incorrect value, then and only then fixes the value.

    <?xml version="1.0" encoding="utf-8"?>
    <ScriptExport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.kaseya.com/vsa/2008/12/Scripting">
      <Procedure name="Enable SAS (fixes Ctrl-Alt-Del for Win7/2008)" treePres="3" id="1118181001" folderId="24386157161423917123725421">
        <Body description="If the SoftwareSASGeneration value under System Policies in the registry is set to 0, you can't Ctrl-Alt-Del on Win7/2008 machines.">
          <If description="">
            <Condition name="CheckRegistryValue">
              <Parameter xsi:type="StringParameter" name="RegistryPath" value="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\SoftwareSASGeneration" />
              <Parameter xsi:type="EnumParameter" name="Condition" value="Exists" />
              <Parameter xsi:type="StringParameter" name="Value" value="" />
            </Condition>
            <Then>
              <If description="">
                <Condition name="CheckRegistryValue">
                  <Parameter xsi:type="StringParameter" name="RegistryPath" value="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\SoftwareSASGeneration" />
                  <Parameter xsi:type="EnumParameter" name="Condition" value="Equals" />
                  <Parameter xsi:type="StringParameter" name="Value" value="0" />
                </Condition>
                <Then>
                  <Statement description="Set the specified registry value - Regedit displays keys as folders and values as documents." name="SetRegistryValue" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
                    <Parameter xsi:type="StringParameter" name="RegistryPath" value="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\SoftwareSASGeneration" />
                    <Parameter xsi:type="StringParameter" name="Value" value="1" />
                    <Parameter xsi:type="EnumParameter" name="DataType" value="Integer" />
                  </Statement>
                </Then>
              </If>
            </Then>
          </If>
        </Body>
      </Procedure>
    </ScriptExport>

  • OK I imported your procedure and it looks like it's the same steps I've tried. Your script doesn't make a new key if there is none to begin with, which is what I typically come across. I added an ELSE into it, and it still works for my PC and not another. I'm going to do some credential testing now. The procedure just sits as pending, rather than failing or running. I feel like the procedure isn't the problem here, but I can't pinpoint it. Blaaaaaah....

  • Here is the link to an updated script based on GreyDuck and Dantheman on our ClubMSP.com site.  This is a free download.    I didn't have much luck getting  KLC  CTRL-ALT-DEL to work on on Server 2008, but seemed to work on my Windows 7 tests.  

    Please test in your environment before using.

    Chris.