#StackBounty: #windows #bash #ssh #cygwin PuTTY error: /bin/bash Operation not permitted when connecting to Cygwin sshd

Bounty: 50

When trying to connect to an SSH server using PuTTY, I get an error:

/bin/bash: Operation not permitted

And then I get a message box saying:

Connection closed by remote host

This started happening unexpectedly today and I have no idea why, the SSH connection used to work fine before that.

enter image description here

What is causes this error, and is there any way to fix it?

Edit: The server is a Windows box, not Linux, and it is running Cygwin’s sshd. Also I found this post which I think might be relevant – https://cygwin.com/ml/cygwin/2016-03/msg00097.html


Get this bounty!!!

#StackBounty: #windows #networking #vpn #windows-server-2016 #rras No services reachable on RRAS server after successful VPN dialin

Bounty: 100

We have the following configuration in place:

–LAN SIDE

Local Clients #N

Local Server A (DC + RRAS)

Local Server B (DC + RRAS)

Local Servers C…Z

—ROUTER/FIREWALL

–PUBLIC SIDE

Foreign Clients 1,2..,#N


Server A & B are both up to date (Aug ’17) Windows Server 2016 Standard.

We have this issue on both Servers, so we’re gonna take Server A as example for simplicity.

** RRAS configuration **:

Server A has just one nick, and it’s configured as follows:

1Physical NIC

Ethernet IF: 192.168.12.41/255.255.255.0

Alias IF: 192.168.12.38/255.255.255.255 (This has been created by the
RRAS server)

RRAS server (both PPTP and SSTP)’s ports are forwarded from their
public IP to the Ethernet IF’s IP by the router

Foreign Client’s configuration:

local and foreign clients are all Windows 7 to Windows 10 professional, there are no further relevant informations but the provided ipconfig/nmap’s output:

** Issue representation **

Foreign Clients can succesfully connect to the LAN through Server A’s RRAS.
But when they do, at the networking level, they can connect to anything BUT Server A.
The problem was firstly noticed when one connected to Server A wasn’t able to RDP to Server A. Then, we found that no services are rechable on Server A, but you can connect to any client and Servers B to Z.

If the connection is made the other way around (Foreign Client connects to Server B’s RRAS) it will connect to anything in the LAN BUT Server B.

Both UDP and TCP ports are not reachable through the connected RRAS:

That’s an nslookup from Foreign Client to Server A and B while connected to Server A:

c:Usersuser>nslookup site.customer.com 192.168.12.41
DNS request timed out.
    timeout was 2 seconds.
Server:  UnKnown
Address:  192.168.12.41

DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
*** Tempo scaduto per la richiesta a UnKnown

c:Usersuser>nslookup site.customer.com 192.168.12.42
Server:  moon.site.customer.com
Address:  192.168.12.42

Nome:    site.customer.com
Addresses:  192.168.12.41
          192.168.12.42

That’s an ipconfig /all of Foreign Client after successful connection to Server A:

c:Usersuser>ipconfig /all
...
Scheda PPP CUSTOMER:

   Suffisso DNS specifico per connessione: site.customer.com
   Descrizione . . . . . . . . . . . . . : CUSTOMER
   Indirizzo fisico. . . . . . . . . . . :
   DHCP abilitato. . . . . . . . . . . . : No
   Configurazione automatica abilitata   : Sì
   Indirizzo IPv4. . . . . . . . . . . . : 192.168.12.143(Preferenziale)
   Subnet mask . . . . . . . . . . . . . : 255.255.255.255
   Gateway predefinito . . . . . . . . . :
   Server DNS . . . . . . . . . . . . .  : 192.168.12.42
                                           192.168.12.41
   NetBIOS su TCP/IP . . . . . . . . . . : Disattivato
...

That’s a tracert to the ServerA.

c:Usersuser>tracert -w 100 sun.site.customer.com

Traccia instradamento verso sun.site.customer.com [192.168.12.41]
su un massimo di 30 punti di passaggio:

  1    16 ms     *       14 ms  192.168.12.38
  2    15 ms    15 ms    14 ms  192.168.12.41

Traccia completata.

That’s tracert to the ServerB.

c:Usersuser>tracert -w 100 moon.site.customer.com

Traccia instradamento verso moon.site.customer.com [192.168.12.42]
su un massimo di 30 punti di passaggio:

  1     *       29 ms    26 ms  192.168.12.38
  2    23 ms    29 ms    31 ms  192.168.12.42

Traccia completata.

Nmap Server B:

c:Usersuser>nmap --unprivileged -P0 -F 192.168.12.42
Starting Nmap 7.60 ( https://nmap.org ) at 2017-08-29 17:54 ora legale Europa occidentale
Nmap scan report for moon.site.customer.com (192.168.12.42)
Host is up (1.1s latency).
Not shown: 89 closed ports
PORT     STATE SERVICE
53/tcp   open  domain
80/tcp   open  http
88/tcp   open  kerberos-sec
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
389/tcp  open  ldap
443/tcp  open  https
445/tcp  open  microsoft-ds
1433/tcp open  ms-sql-s
1723/tcp open  pptp
3389/tcp open  ms-wbt-server

Nmap done: 1 IP address (1 host up) scanned in 32.27 seconds

Nmap Server A:

c:Usersuser>nmap --unprivileged -e ppp0 -P0 -F 192.168.12.41
Starting Nmap 7.60 ( https://nmap.org ) at 2017-08-29 17:56 ora legale Europa occidentale
Nmap scan report for sun.site.customer.com (192.168.12.41)
Host is up.
All 100 scanned ports on sun.site.customer.com (192.168.12.41) are filtered

Nmap done: 1 IP address (1 host up) scanned in 46.63 seconds

As you can see name resolution is working fine, but tcp/udp connections to Server A will fail if connected to Server A’s RRAS or will fail to Server B if connected to Server B’s RRAS.

No RRAS nor any other service’s on the Servers or Foreign clients shows anything relevant, and I think it’s normal as we have a problem at the networking level here.

We actually found that for Foreign Clients, the second autocreated Internal IP of the RRAS has Server’s A services published and reachable:

c:Usersuser>nmap --unprivileged -P0 -F 192.168.12.38
Starting Nmap 7.60 ( https://nmap.org ) at 2017-08-29 18:26 ora legale Europa occidentale
Nmap scan report for 192.168.12.38
Host is up (0.19s latency).
Not shown: 90 filtered ports
PORT     STATE SERVICE
21/tcp   open  ftp
80/tcp   open  http
88/tcp   open  kerberos-sec
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
389/tcp  open  ldap
443/tcp  open  https
445/tcp  open  microsoft-ds
1723/tcp open  pptp
3389/tcp open  ms-wbt-server

Nmap done: 1 IP address (1 host up) scanned in 38.33 seconds

Question: what can be done in order to diagnose and prevent this symptom?


Get this bounty!!!

#StackBounty: #performance #c #linked-list #console #windows Interactive console application to edit a sorted list

Bounty: 50

I am reading a book that has some difficult vocabulary and I, in order to understand the book thoroughly, decided to collect and lookup those words am not acquainted with, spend sometime learning them, and re-read the book.

I have created an interactive console application specifically for this purpose. The program’s main objectives are:

  • Open a file for reading and writing
  • Load data from file into linked list, if any, and sort them alphabetically.
  • Accept input from user, and search through the list for matches to display on screen.
  • If right key, is pressed, discard input. If Return key is pressed, save input to file, and if Escape key is pressed, cleanup and terminate program.

The key of interactivity is to show the user whether he added a word to the list or not, to avoid duplicates.

However, I have noticed that my implementation is hefty on the CPU, because when I run it, after short time, the fans become noisy, which make it hard for me to read and concentrate. Please advise on how can I optimize it and what improvements can be made.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <Windows.h>

struct G_list {
    char word[100];
    struct G_list *ptr;
};

typedef struct G_list G_list;

void add_and_sort(const char *str, G_list **head);
void free_list(G_list *head);

int cmp_at_begn(char *str, const char *substr);
void traverse_list(char *str, G_list *head);
void ClearScreen(void *hConsole);

int main(void)
{
    /* open file for reading and writing */
    const char filename[] = "Book.txt";
    FILE *fp = fopen(filename, "a+");
    if (!fp) {
        perror(filename);
        return 1;
    }

    /* ... */
    char alphabet[] = "abcdefghijklmnopqrstuvwxyz";
    const size_t len = strlen(alphabet);

    /* allocate memory */
    G_list **wlist = (G_list **)malloc(sizeof(G_list *) * len);
    for (size_t i = 0; i < len; i++) {
        wlist[i] = (G_list *)malloc(sizeof(G_list));
        wlist[i]->ptr = NULL;
        wlist[i]->word[0] = 0;
    }

    /* load data from file */
    int c;
    char load[100];
    while (fgets(load, sizeof(load), fp)) {
        load[strcspn(load, "n")] = 0;
        c = *load - 'a';
        if (c < 0 || c >= len) {
            continue;
        }
        add_and_sort(load, wlist + c);
    }

    /* recieve input and display data */
    int index = 0;
    char buf[100] = { 0 };
    HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);

    while (1) {
        // if backspace, delete character and traverse list
        if (GetAsyncKeyState(VK_BACK) == -32767) {
            if (index) {
                buf[--index] = '';
                ClearScreen(hStdout);
                printf("%sn............n", buf);
                if (index) {
                    traverse_list(buf, wlist[*buf - 'a']);
                }
            }
        }
        // if right-arrow key, discard input
        else if (GetAsyncKeyState(VK_RIGHT) == -32767) {
            index = 0;
            *buf = '';
            ClearScreen(hStdout);
            continue;
        }
        // if Enter, save to file
        else if (GetAsyncKeyState(VK_RETURN) == -32767) {
            if ((*buf - 'a') < 0 || (*buf - 'a') >= len) {
                continue;
            }
            add_and_sort(buf, &wlist[*buf - 'a']);
            fprintf(fp, "%sn", buf);
            index = 0;
            *buf = '';
            ClearScreen(hStdout);
            continue;
        }
        // if escape, terminate the program
        else if (GetAsyncKeyState(VK_ESCAPE) == -32767) {
            break;
        }
        // accept alphabet-input and display matches if any
        for (short i = 'A'; i <= 'Z'; i++) {
            if (GetAsyncKeyState(i) == -32767) {
                buf[index++] = (char)(i + 32);
                buf[index] = '';
                ClearScreen(hStdout);
                printf("%sn............n", buf);
                traverse_list(buf, wlist[*buf - 'a']);
            }
        }
    }

    /* release memory */
    fclose(fp);
    for (size_t i = 0; i < len; i++) {
        free_list(wlist[i]);
    }
    free(wlist);
}

void add_and_sort(const char *str, G_list **head)
{
    /* create node */
    G_list *node = (G_list *)malloc(sizeof(G_list));

    /* initialize node members */
    strcpy(node->word, str);
    node->ptr = NULL;

    /* ... */
    if ((*head)->word[0] == '') {
        *head = node;
        return;
    }
    else {
        while (1) {
            if (strcmp(str, (*head)->word) < 0) {
                G_list *tmp = *head;
                *head = node;
                node->ptr = tmp;
                break;
            }
            else {
                head = &((*head)->ptr);
                if (!*head) {
                    *head = node;
                    (*head)->ptr = NULL;
                    break;
                }
            }
        }
    }
}

void free_list(G_list *head)
{
    G_list *tmp;
    while (head) {
        tmp = head;
        head = head->ptr;
        free(tmp);
    }
}

// compare at beginning of line
int cmp_at_begn(char *str,
    const char *substr)
{
    if (!*str || !*substr) {
        return (*str == *substr);
    }
    else {
        while (*str && *substr) {
            if (*str++ != *substr++) {
                return 0;
            }
        }
    }
    return !(*substr);
}

void ClearScreen(void *hConsole)
{
    COORD coordScreen = { 0, 0 };    // home for the cursor 
    DWORD cCharsWritten;
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    DWORD dwConSize;
    // Get the number of character cells in the current buffer. 
    if (!GetConsoleScreenBufferInfo(hConsole, &csbi))
    {
        return;
    }
    dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
    // Fill the entire screen with blanks.
    if (!FillConsoleOutputCharacter(hConsole,        // Handle to console screen buffer 
        (TCHAR) ' ',     // Character to write to the buffer
        dwConSize,       // Number of cells to write 
        coordScreen,     // Coordinates of first cell 
        &cCharsWritten))// Receive number of characters written
    {
        return;
    }
    // Get the current text attribute.
    if (!GetConsoleScreenBufferInfo(hConsole, &csbi))
    {
        return;
    }
    // Set the buffer's attributes accordingly.
    if (!FillConsoleOutputAttribute(hConsole,         // Handle to console screen buffer 
        csbi.wAttributes, // Character attributes to use
        dwConSize,        // Number of cells to set attribute 
        coordScreen,      // Coordinates of first cell 
        &cCharsWritten)) // Receive number of characters written
    {
        return;
    }
    // Put the cursor at its home coordinates.
    SetConsoleCursorPosition(hConsole, coordScreen);
}

void traverse_list(char *str, G_list *head)
{
    int v = 0;
    while (head) {
        if (cmp_at_begn(head->word, str)) {
            puts(head->word);
            v = 1;
        }
        else {
            if (v) break;
        }
        head = head->ptr;
    }
}


Get this bounty!!!

#StackBounty: #authentication #windows #ntlm How feasible is it for an attacker to brute-force an NTLMv2 response captured off the netw…

Bounty: 50

According to the Wikipedia article on NTLM here:
https://en.wikipedia.org/wiki/NT_LAN_Manager

..under the NTLMv2 description it mentions that

NTLMv2 sends two responses to an 8-byte server challenge

So basically according to the article the NTLMv2 response becomes this:

SC = 8-byte server challenge, random
CC = 8-byte client challenge, random
CC* = (X, time, CC2, domain name)
v2-Hash = HMAC-MD5(NT-Hash, user name, domain name)
LMv2 = HMAC-MD5(v2-Hash, SC, CC)
NTv2 = HMAC-MD5(v2-Hash, SC, CC*)
response = LMv2 | CC | NTv2 | CC*

I am trying to understand the security challenges of NTLMv2 and how challenging it would an attacker that captures the above NTLMv2 response via sniffing the network, to brute-force it to get to the password.

Since the hash includes the random server challenge (SC), it already makes it difficult. But let’s suppose, the attacker has been sniffing and had already captured the SC when the server sent it to the client.

Attacker should also be able to see the client challenge (CC & CC*) from response as

response = LMv2 | CC | NTv2 | CC*

right?..
so does this mean the attacker can have a fair go at brute-forcing the NTV2 or LMV2 hashes included in the response, given that the following information is with them now

  • SC (Server Challenge)
  • CC & CC*
  • response
  • user name, domain name (easily acquired by an attacker already in the network)

Is this the correct way to understand it?

Many thanks


Get this bounty!!!

#StackBounty: #performance #c #linked-list #windows Interactive console application

Bounty: 50

I am reading a book that has some difficult vocabulary and I, in order to understand the book thoroughly, decided to collect and lookup those words am not acquainted with, spend sometime learning them, and re-read the book.

I have created an interactive console application specifically for this purpose. The program’s main objectives are:

  • Open a file for reading and writing
  • Load data from file into linked list, if any, and sort them alphabetically.
  • Accept input from user, and search through the list for matches to display on screen.
  • If right key, is pressed, discard input. If Return key is pressed, save input to file, and if Escape key is pressed, cleanup and terminate program.

The key of interactivity is to show the user whether he added a word to the list or not, to avoid duplicates.

However, I have noticed that my implementation is hefty on the CPU, because when I run it, after short time, the fans become noisy, which make it hard for me to read and concentrate. Please advise on how can I optimize it and what improvements can be made.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <Windows.h>

struct G_list {
    char word[100];
    struct G_list *ptr;
};

typedef struct G_list G_list;

void add_and_sort(const char *str, G_list **head);
void free_list(G_list *head);

int cmp_at_begn(char *str, const char *substr);
void traverse_list(char *str, G_list *head);
void ClearScreen(void *hConsole);

int main(void)
{
    /* open file for reading and writing */
    const char filename[] = "Book.txt";
    FILE *fp = fopen(filename, "a+");
    if (!fp) {
        perror(filename);
        return 1;
    }

    /* ... */
    char alphabet[] = "abcdefghijklmnopqrstuvwxyz";
    const size_t len = strlen(alphabet);

    /* allocate memory */
    G_list **wlist = (G_list **)malloc(sizeof(G_list *) * len);
    for (size_t i = 0; i < len; i++) {
        wlist[i] = (G_list *)malloc(sizeof(G_list));
        wlist[i]->ptr = NULL;
        wlist[i]->word[0] = 0;
    }

    /* load data from file */
    int c;
    char load[100];
    while (fgets(load, sizeof(load), fp)) {
        load[strcspn(load, "n")] = 0;
        c = *load - 'a';
        if (c < 0 || c >= len) {
            continue;
        }
        add_and_sort(load, wlist + c);
    }

    /* recieve input and display data */
    int index = 0;
    char buf[100] = { 0 };
    HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);

    while (1) {
        // if backspace, delete character and traverse list
        if (GetAsyncKeyState(VK_BACK) == -32767) {
            if (index) {
                buf[--index] = '';
                ClearScreen(hStdout);
                printf("%sn............n", buf);
                if (index) {
                    traverse_list(buf, wlist[*buf - 'a']);
                }
            }
        }
        // if right-arrow key, discard input
        else if (GetAsyncKeyState(VK_RIGHT) == -32767) {
            index = 0;
            *buf = '';
            ClearScreen(hStdout);
            continue;
        }
        // if Enter, save to file
        else if (GetAsyncKeyState(VK_RETURN) == -32767) {
            if ((*buf - 'a') < 0 || (*buf - 'a') >= len) {
                continue;
            }
            add_and_sort(buf, &wlist[*buf - 'a']);
            fprintf(fp, "%sn", buf);
            index = 0;
            *buf = '';
            ClearScreen(hStdout);
            continue;
        }
        // if escape, terminate the program
        else if (GetAsyncKeyState(VK_ESCAPE) == -32767) {
            break;
        }
        // accept alphabet-input and display matches if any
        for (short i = 'A'; i <= 'Z'; i++) {
            if (GetAsyncKeyState(i) == -32767) {
                buf[index++] = (char)(i + 32);
                buf[index] = '';
                ClearScreen(hStdout);
                printf("%sn............n", buf);
                traverse_list(buf, wlist[*buf - 'a']);
            }
        }
    }

    /* release memory */
    fclose(fp);
    for (size_t i = 0; i < len; i++) {
        free_list(wlist[i]);
    }
    free(wlist);
}

void add_and_sort(const char *str, G_list **head)
{
    /* create node */
    G_list *node = (G_list *)malloc(sizeof(G_list));

    /* initialize node members */
    strcpy(node->word, str);
    node->ptr = NULL;

    /* ... */
    if ((*head)->word[0] == '') {
        *head = node;
        return;
    }
    else {
        while (1) {
            if (strcmp(str, (*head)->word) < 0) {
                G_list *tmp = *head;
                *head = node;
                node->ptr = tmp;
                break;
            }
            else {
                head = &((*head)->ptr);
                if (!*head) {
                    *head = node;
                    (*head)->ptr = NULL;
                    break;
                }
            }
        }
    }
}

void free_list(G_list *head)
{
    G_list *tmp;
    while (head) {
        tmp = head;
        head = head->ptr;
        free(tmp);
    }
}

// compare at beginning of line
int cmp_at_begn(char *str,
    const char *substr)
{
    if (!*str || !*substr) {
        return (*str == *substr);
    }
    else {
        while (*str && *substr) {
            if (*str++ != *substr++) {
                return 0;
            }
        }
    }
    return !(*substr);
}

void ClearScreen(void *hConsole)
{
    COORD coordScreen = { 0, 0 };    // home for the cursor 
    DWORD cCharsWritten;
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    DWORD dwConSize;
    // Get the number of character cells in the current buffer. 
    if (!GetConsoleScreenBufferInfo(hConsole, &csbi))
    {
        return;
    }
    dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
    // Fill the entire screen with blanks.
    if (!FillConsoleOutputCharacter(hConsole,        // Handle to console screen buffer 
        (TCHAR) ' ',     // Character to write to the buffer
        dwConSize,       // Number of cells to write 
        coordScreen,     // Coordinates of first cell 
        &cCharsWritten))// Receive number of characters written
    {
        return;
    }
    // Get the current text attribute.
    if (!GetConsoleScreenBufferInfo(hConsole, &csbi))
    {
        return;
    }
    // Set the buffer's attributes accordingly.
    if (!FillConsoleOutputAttribute(hConsole,         // Handle to console screen buffer 
        csbi.wAttributes, // Character attributes to use
        dwConSize,        // Number of cells to set attribute 
        coordScreen,      // Coordinates of first cell 
        &cCharsWritten)) // Receive number of characters written
    {
        return;
    }
    // Put the cursor at its home coordinates.
    SetConsoleCursorPosition(hConsole, coordScreen);
}

void traverse_list(char *str, G_list *head)
{
    int v = 0;
    while (head) {
        if (cmp_at_begn(head->word, str)) {
            puts(head->word);
            v = 1;
        }
        else {
            if (v) break;
        }
        head = head->ptr;
    }
}


Get this bounty!!!

#StackBounty: #windows #windows-8 #taskbar #icons #autohotkey AutoHotkey – make window stay right in taskbar

Bounty: 50

Is there a way to achieve this using autohotkey: I want some windows to be always at the top right of the taskbar no matter how many programs I opened. So, for exmaple, currently it is like this. But, I want notepads always to be on the far right of the taskbar. So, for example like this. So, No matter how many programs I open, I want on the taskbar always notepads to be on the far right.

I’m using windows 8.1 and the latest version of AutoHotkey. Some explanations: I don’t want notepads’ window itself to be on the far right of the screen. No, but instead I want just icon on the taskbar of notepad to be on the far right. So, if I for example open new programs, I want the icon to be automatically moved to the right, so that no icons be after notepads’ icon.

I searched on internet and I didn’t find anything useful or similar. So, what I’m trying to do is to make notepads’ icons always at the right. I don’t care if all notepads I open will be moved to the right or just opened ones to be on the right, it doesn’t matter, I just open 4 notepads and keep them until I turn off my computer, so I will never close them.

How to achieve it? I am sure there must be a way because AutoHotkey is very good software and has a lot of enhancements.

Thank you in advance. This is my first question on this site, so please be respectful. Thank.


Get this bounty!!!

#StackBounty: #windows #linux #c++ #ide #game-development Which IDE to use for C++ game development on windows and on Linux?

Bounty: 50

I am a java developer and I want to learn game programming in C++. I have been using Eclipse, Intellij(recently) for java development.

Please suggest which IDE is best for C++ development.
There are many out there like Visual Studio, CLion, Eclipse, etc.
Which one to use (Not based on ease of use but the best/rich for long run) ?

Also as I have heard that Linux environment is best to C++ developers, please suggest the best IDE for windows and Linux both.

Thanks !


Get this bounty!!!

#StackBounty: #windows #network-share #file-sharing Is it possible to use FSRM or alternatives on multiple servers with multiple partit…

Bounty: 50

At my company we have multiple servers with multiple partitions that are shared for different users.
Some users have rights to multiple partitions on different servers.

In order to limit the space they waste, we use FSRM to generate reports of Large files, Duplicate Files, etc.

We can compare files on different partitions within the same server, but we can not check multiple servers at the same time. This would be useful to deal with duplicate files.

Is there a way to configure FSRM reports to be able to compare multiple server partitions at the same time?
Or maybe are there some different solutions for this?


Get this bounty!!!

#StackBounty: #windows #motherboard #bios Lenovo Motherboard, FW errors

Bounty: 50

Where I work we have many lenovo m93 Thinkcentre PCs. In one of them, errors appears right after the lenovo logo. The error sometimes says “FW status Initializing Error” or “FW status Recovery error”. Right after that an error saying “(A7) Me FW downgrade MeSpiLock Failed” appears. We can bypass these errors, sometimes the PC will work correctly and some others it will shutdows shortly after.

We have reset the CMOS, restored bios factory defaults, disabled safeboot, updated the bios, changed the hard drive, replaced memories, changed the PSU, replaced battery, checked processor temps and even tried with another processor. We´ve tried almost everything short of replacing the Motherboard.

The PC is a Thinkcentre M93, Model: a019LM and the motherboard model is lenovo IS8XM (American Megatrends). It has an i3-4i30, stock cooler, no OC.

Does anyone have a suggestion what could be causing this error? Is it Fixable? or should we just give up and replace the Motherboard.


Get this bounty!!!

#StackBounty: #windows-7 #windows #windows-registry #context-menu #regedit In the Windows Registry, what is the ProgrammaticAccessOnly …

Bounty: 50

This is a follow-up question from this one. As demonstrated by that answer, ProgrammaticAccessOnly can be used to hide certain context menu items without disabling their underlying or related functions.

In this way, it seems like a more useful analogue to the LegacyDisable string value, in that it can be used to disable registry functions in a less destructive way than LegacyDisable does.

However, as with many other Registry value-data pairs, actual documentation on the value and how exactly it works, from Microsoft or other authoritative sources, are hard to come by. All I’ve been able to find outside of disparate forum posts is the following, from a tutorial here:

ProgrammaticAccessOnly is a special value that hides a context menu entry but allows programs to access it if required.

This is far from comprehensive, and I doubt the value’s scope is limited to context menus. For example, ProgrammaticAccessOnly=Apartment is detailed at least once here, with no explanation of what it does or other data types.

How exactly does the ProgrammaticAccessOnly string value in the Registry work? Are there any caveats to always using it over LegacyDisable? Also, what is a list of all the possible data types that can be used with it?


Get this bounty!!!