Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ERROR: Could not list ADB devices ERROR: Server connection failed #3534

Open
GitDreak opened this issue Oct 13, 2022 · 24 comments
Open

ERROR: Could not list ADB devices ERROR: Server connection failed #3534

GitDreak opened this issue Oct 13, 2022 · 24 comments

Comments

@GitDreak
Copy link

Environment

OS: window11
scrcpy version: 1.24
device model: Redmi K30 Pro Zoom Edition
Android version: 12/13
Describe the bug:
Hello, the author. It was normal to use scrcpy before, but it can't be used normally these days. What's the reason?
scrcpy -d prompts an error

C:\Users\Administrator>adb devices
List of devices attached
c3edc532 device

C:\Users\Administrator>scrcpy -d
scrcpy 1.24 https://github.com/Genymobile/scrcpy
ERROR: Could not list ADB devices
ERROR: Server connection failed

@rom1v
Copy link
Collaborator

rom1v commented Oct 13, 2022

adb devices -l
echo ℅ADB℅

?

@GitDreak
Copy link
Author

C:\Users\Administrator>adb devices -l
List of devices attached
c3edc532 device product:lmipro model:Redmi_K30_Pro_Zoom_Edition device:lmipro transport_id:1

C:\Users\Administrator>echo ℅ADB℅
℅ADB℅

@rom1v
Copy link
Collaborator

rom1v commented Oct 13, 2022

List of devices attached
c3edc532 device product:lmipro model:Redmi_K30_Pro_Zoom_Edition device:lmipro transport_id:1

This output parses correctly, so you should not get ERROR: Could not list ADB devices.

Are you absolutely sure that your device was detected when you executed scrcpy -d?
Does it also happen without -d?

@GitDreak
Copy link
Author

Yes, because I tried to kill the service and restart it, whether USB debugging is allowed for the mobile phone also appears。
Try the above methods and enter adb devices,The terminal can also see the c3edc532 device
However, this problem still occurs when enter the code scrcpy and scrcpy - d again

C:\Users\Administrator>adb kill-server

C:\Users\Administrator>adb start-server

C:\Users\Administrator>adb devices
List of devices attached
c3edc532 device

C:\Users\Administrator>scrcpy
scrcpy 1.24 https://github.com/Genymobile/scrcpy
ERROR: Could not list ADB devices
ERROR: Server connection failed

C:\Users\Administrator>scrcpy -d
scrcpy 1.24 https://github.com/Genymobile/scrcpy
ERROR: Could not list ADB devices
ERROR: Server connection failed

@rom1v
Copy link
Collaborator

rom1v commented Oct 13, 2022

Oh, it seems the same as #3386.

@GitDreak
Copy link
Author

Yes, I also looked at this #3386 question and saw that you said it might be an OS related permissions issue.
I'm not sure if it's the problem caused by the update before win11, because scrcpy can be used normally before the win11 update.

@rom1v
Copy link
Collaborator

rom1v commented Oct 13, 2022

If there is a problem in scrcpy (something that may cause the reading of the output of a process fail on some Windows systems under some conditions), it's in this function:

enum sc_process_result
sc_process_execute_p(const char *const argv[], HANDLE *handle, unsigned flags,
HANDLE *pin, HANDLE *pout, HANDLE *perr) {
bool inherit_stdout = !pout && !(flags & SC_PROCESS_NO_STDOUT);
bool inherit_stderr = !perr && !(flags & SC_PROCESS_NO_STDERR);
// Add 1 per non-NULL pointer
unsigned handle_count = !!pin || !!pout || !!perr;
enum sc_process_result ret = SC_PROCESS_ERROR_GENERIC;
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
HANDLE stdin_read_handle;
HANDLE stdout_write_handle;
HANDLE stderr_write_handle;
if (pin) {
if (!CreatePipe(&stdin_read_handle, pin, &sa, 0)) {
perror("pipe");
return SC_PROCESS_ERROR_GENERIC;
}
if (!SetHandleInformation(*pin, HANDLE_FLAG_INHERIT, 0)) {
LOGE("SetHandleInformation stdin failed");
goto error_close_stdin;
}
}
if (pout) {
if (!CreatePipe(pout, &stdout_write_handle, &sa, 0)) {
perror("pipe");
goto error_close_stdin;
}
if (!SetHandleInformation(*pout, HANDLE_FLAG_INHERIT, 0)) {
LOGE("SetHandleInformation stdout failed");
goto error_close_stdout;
}
}
if (perr) {
if (!CreatePipe(perr, &stderr_write_handle, &sa, 0)) {
perror("pipe");
goto error_close_stdout;
}
if (!SetHandleInformation(*perr, HANDLE_FLAG_INHERIT, 0)) {
LOGE("SetHandleInformation stderr failed");
goto error_close_stderr;
}
}
STARTUPINFOEXW si;
PROCESS_INFORMATION pi;
memset(&si, 0, sizeof(si));
si.StartupInfo.cb = sizeof(si);
HANDLE handles[3];
si.StartupInfo.dwFlags = STARTF_USESTDHANDLES;
if (inherit_stdout) {
si.StartupInfo.hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE);
}
if (inherit_stderr) {
si.StartupInfo.hStdError = GetStdHandle(STD_ERROR_HANDLE);
}
LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList = NULL;
if (handle_count) {
unsigned i = 0;
if (pin) {
si.StartupInfo.hStdInput = stdin_read_handle;
handles[i++] = si.StartupInfo.hStdInput;
}
if (pout) {
assert(!inherit_stdout);
si.StartupInfo.hStdOutput = stdout_write_handle;
handles[i++] = si.StartupInfo.hStdOutput;
}
if (perr) {
assert(!inherit_stderr);
si.StartupInfo.hStdError = stderr_write_handle;
handles[i++] = si.StartupInfo.hStdError;
}
SIZE_T size;
// Call it once to know the required buffer size
BOOL ok =
InitializeProcThreadAttributeList(NULL, 1, 0, &size)
|| GetLastError() == ERROR_INSUFFICIENT_BUFFER;
if (!ok) {
goto error_close_stderr;
}
lpAttributeList = malloc(size);
if (!lpAttributeList) {
LOG_OOM();
goto error_close_stderr;
}
ok = InitializeProcThreadAttributeList(lpAttributeList, 1, 0, &size);
if (!ok) {
free(lpAttributeList);
goto error_close_stderr;
}
ok = UpdateProcThreadAttribute(lpAttributeList, 0,
PROC_THREAD_ATTRIBUTE_HANDLE_LIST,
handles, handle_count * sizeof(HANDLE),
NULL, NULL);
if (!ok) {
goto error_free_attribute_list;
}
si.lpAttributeList = lpAttributeList;
}
char *cmd = malloc(CMD_MAX_LEN);
if (!cmd || !build_cmd(cmd, CMD_MAX_LEN, argv)) {
LOG_OOM();
goto error_free_attribute_list;
}
wchar_t *wide = sc_str_to_wchars(cmd);
free(cmd);
if (!wide) {
LOG_OOM();
goto error_free_attribute_list;
}
BOOL bInheritHandles = handle_count > 0 || inherit_stdout || inherit_stderr;
DWORD dwCreationFlags = 0;
if (handle_count > 0) {
dwCreationFlags |= EXTENDED_STARTUPINFO_PRESENT;
}
if (!inherit_stdout && !inherit_stderr) {
// DETACHED_PROCESS to disable stdin, stdout and stderr
dwCreationFlags |= DETACHED_PROCESS;
}
BOOL ok = CreateProcessW(NULL, wide, NULL, NULL, bInheritHandles,
dwCreationFlags, NULL, NULL, &si.StartupInfo, &pi);
free(wide);
if (!ok) {
int err = GetLastError();
LOGE("CreateProcessW() error %d", err);
if (err == ERROR_FILE_NOT_FOUND) {
ret = SC_PROCESS_ERROR_MISSING_BINARY;
}
goto error_free_attribute_list;
}
if (lpAttributeList) {
DeleteProcThreadAttributeList(lpAttributeList);
free(lpAttributeList);
}
// These handles are used by the child process, close them for this process
if (pin) {
CloseHandle(stdin_read_handle);
}
if (pout) {
CloseHandle(stdout_write_handle);
}
if (perr) {
CloseHandle(stderr_write_handle);
}
*handle = pi.hProcess;
return SC_PROCESS_SUCCESS;
error_free_attribute_list:
if (lpAttributeList) {
DeleteProcThreadAttributeList(lpAttributeList);
free(lpAttributeList);
}
error_close_stderr:
if (perr) {
CloseHandle(*perr);
CloseHandle(stderr_write_handle);
}
error_close_stdout:
if (pout) {
CloseHandle(*pout);
CloseHandle(stdout_write_handle);
}
error_close_stdin:
if (pin) {
CloseHandle(*pin);
CloseHandle(stdin_read_handle);
}
return ret;
}

@GitDreak
Copy link
Author

Sorry, my current programming level is not high enough to understand this.
Today I tried to update to the latest version of win11, but the problem still exists.
Is there any other solution please?

@rom1v
Copy link
Collaborator

rom1v commented Oct 14, 2022

Please try this binary (replace the file in your 1.24 release), which prints more logs (based on #3386 (comment) but with additional logs):

  • scrcpy.exe SHA-256: 606b1ffea768070a15e699808caf22b955f4a8f0bb51a86e7f7d7a3dce1bbb02
diff
diff --git a/app/src/adb/adb.c b/app/src/adb/adb.c
index 344f7fcc..fbb2b8b5 100644
--- a/app/src/adb/adb.c
+++ b/app/src/adb/adb.c
@@ -401,6 +401,7 @@ sc_adb_list_devices(struct sc_intr *intr, unsigned flags,
 #define BUFSIZE 65536
     char *buf = malloc(BUFSIZE);
     if (!buf) {
+        LOG_OOM();
         return false;
     }
 
@@ -413,11 +414,13 @@ sc_adb_list_devices(struct sc_intr *intr, unsigned flags,
     }
 
     ssize_t r = sc_pipe_read_all_intr(intr, pid, pout, buf, BUFSIZE - 1);
+    LOGI("sc_pipe_read_all_intr() returned %d", (int) r);
     sc_pipe_close(pout);
 
     bool ok = process_check_success_intr(intr, pid, "adb devices -l", flags);
     if (!ok) {
         free(buf);
+        LOGE("'adb devices -l' failed");
         return false;
     }
 
@@ -440,6 +443,7 @@ sc_adb_list_devices(struct sc_intr *intr, unsigned flags,
 
     // List all devices to the output list directly
     ok = sc_adb_parse_devices(buf, out_vec);
+    LOGI("sc_adb_parse_device() ok? %d", ok);
     free(buf);
     return ok;
 }
diff --git a/app/src/util/process.c b/app/src/util/process.c
index 9c4dcd9f..8aa7c01f 100644
--- a/app/src/util/process.c
+++ b/app/src/util/process.c
@@ -11,10 +11,14 @@ sc_process_execute(const char *const argv[], sc_pid *pid, unsigned flags) {
 
 ssize_t
 sc_pipe_read_all(sc_pipe pipe, char *data, size_t len) {
+    char *buf = data;
     size_t copied = 0;
     while (len > 0) {
         ssize_t r = sc_pipe_read(pipe, data, len);
         if (r <= 0) {
+            LOGI("sc_pipe_read() returned %d when copied=%d", (int) r, (int) copied);
+            if (copied > 0)
+                LOGI("data===[\n%.*s\n]===", (int) copied, buf);
             return copied ? (ssize_t) copied : r;
         }
         len -= r;
diff --git a/app/src/util/process_intr.c b/app/src/util/process_intr.c
index d37bd5a5..e99aeea3 100644
--- a/app/src/util/process_intr.c
+++ b/app/src/util/process_intr.c
@@ -1,4 +1,5 @@
 #include "process_intr.h"
+#include "log.h"
 
 ssize_t
 sc_pipe_read_intr(struct sc_intr *intr, sc_pid pid, sc_pipe pipe, char *data,
@@ -22,6 +23,7 @@ sc_pipe_read_all_intr(struct sc_intr *intr, sc_pid pid, sc_pipe pipe,
                       char *data, size_t len) {
     if (intr && !sc_intr_set_process(intr, pid)) {
         // Already interrupted
+        LOGI("sc_pipe_read_all_intr() already interrupted");
         return false;
     }
 
@@ -31,5 +33,6 @@ sc_pipe_read_all_intr(struct sc_intr *intr, sc_pid pid, sc_pipe pipe,
         sc_intr_set_process(intr, SC_PROCESS_NONE);
     }
 
+    LOGI("sc_pipe_read_all() returns %d", (int) ret);
     return ret;
 }

@GitDreak
Copy link
Author

C:\Users\Administrator>scrcpy
scrcpy 1.24 https://github.com/Genymobile/scrcpy
INFO: sc_pipe_read() returned -1 when copied=0
INFO: sc_pipe_read_all() returns -1
INFO: sc_pipe_read_all_intr() returned -1
ERROR: Could not list ADB devices
ERROR: Server connection failed

C:\Users\Administrator>scrcpy -d
scrcpy 1.24 https://github.com/Genymobile/scrcpy
INFO: sc_pipe_read() returned -1 when copied=0
INFO: sc_pipe_read_all() returns -1
INFO: sc_pipe_read_all_intr() returned -1
ERROR: Could not list ADB devices
ERROR: Server connection failed

@rom1v
Copy link
Collaborator

rom1v commented Oct 14, 2022

One more test, please. Here is another binary with an additional log:

  • scrcpy.exe SHA-256: 23683ba6a4955669a9d181921faecbd1bbae6fa08f0e0a5fefcb2642114264cf
diff
diff --git a/app/src/adb/adb.c b/app/src/adb/adb.c
index 344f7fcc..fbb2b8b5 100644
--- a/app/src/adb/adb.c
+++ b/app/src/adb/adb.c
@@ -401,6 +401,7 @@ sc_adb_list_devices(struct sc_intr *intr, unsigned flags,
 #define BUFSIZE 65536
     char *buf = malloc(BUFSIZE);
     if (!buf) {
+        LOG_OOM();
         return false;
     }
 
@@ -413,11 +414,13 @@ sc_adb_list_devices(struct sc_intr *intr, unsigned flags,
     }
 
     ssize_t r = sc_pipe_read_all_intr(intr, pid, pout, buf, BUFSIZE - 1);
+    LOGI("sc_pipe_read_all_intr() returned %d", (int) r);
     sc_pipe_close(pout);
 
     bool ok = process_check_success_intr(intr, pid, "adb devices -l", flags);
     if (!ok) {
         free(buf);
+        LOGE("'adb devices -l' failed");
         return false;
     }
 
@@ -440,6 +443,7 @@ sc_adb_list_devices(struct sc_intr *intr, unsigned flags,
 
     // List all devices to the output list directly
     ok = sc_adb_parse_devices(buf, out_vec);
+    LOGI("sc_adb_parse_device() ok? %d", ok);
     free(buf);
     return ok;
 }
diff --git a/app/src/sys/win/process.c b/app/src/sys/win/process.c
index 6e9da09c..5de3b96c 100644
--- a/app/src/sys/win/process.c
+++ b/app/src/sys/win/process.c
@@ -245,6 +245,7 @@ ssize_t
 sc_pipe_read(HANDLE pipe, char *data, size_t len) {
     DWORD r;
     if (!ReadFile(pipe, data, len, &r, NULL)) {
+        LOGE("ReadFile error: %ld", GetLastError());
         return -1;
     }
     return r;
diff --git a/app/src/util/process.c b/app/src/util/process.c
index 9c4dcd9f..8aa7c01f 100644
--- a/app/src/util/process.c
+++ b/app/src/util/process.c
@@ -11,10 +11,14 @@ sc_process_execute(const char *const argv[], sc_pid *pid, unsigned flags) {
 
 ssize_t
 sc_pipe_read_all(sc_pipe pipe, char *data, size_t len) {
+    char *buf = data;
     size_t copied = 0;
     while (len > 0) {
         ssize_t r = sc_pipe_read(pipe, data, len);
         if (r <= 0) {
+            LOGI("sc_pipe_read() returned %d when copied=%d", (int) r, (int) copied);
+            if (copied > 0)
+                LOGI("data===[\n%.*s\n]===", (int) copied, buf);
             return copied ? (ssize_t) copied : r;
         }
         len -= r;
diff --git a/app/src/util/process_intr.c b/app/src/util/process_intr.c
index d37bd5a5..e99aeea3 100644
--- a/app/src/util/process_intr.c
+++ b/app/src/util/process_intr.c
@@ -1,4 +1,5 @@
 #include "process_intr.h"
+#include "log.h"
 
 ssize_t
 sc_pipe_read_intr(struct sc_intr *intr, sc_pid pid, sc_pipe pipe, char *data,
@@ -22,6 +23,7 @@ sc_pipe_read_all_intr(struct sc_intr *intr, sc_pid pid, sc_pipe pipe,
                       char *data, size_t len) {
     if (intr && !sc_intr_set_process(intr, pid)) {
         // Already interrupted
+        LOGI("sc_pipe_read_all_intr() already interrupted");
         return false;
     }
 
@@ -31,5 +33,6 @@ sc_pipe_read_all_intr(struct sc_intr *intr, sc_pid pid, sc_pipe pipe,
         sc_intr_set_process(intr, SC_PROCESS_NONE);
     }
 
+    LOGI("sc_pipe_read_all() returns %d", (int) ret);
     return ret;
 }

@GitDreak
Copy link
Author

C:\Users\Administrator>scrcpy
scrcpy 1.24 https://github.com/Genymobile/scrcpy
ERROR: ReadFile error: 109
INFO: sc_pipe_read() returned -1 when copied=0
INFO: sc_pipe_read_all() returns -1
INFO: sc_pipe_read_all_intr() returned -1
ERROR: Could not list ADB devices
ERROR: Server connection failed

C:\Users\Administrator>scrcpy -d
scrcpy 1.24 https://github.com/Genymobile/scrcpy
ERROR: ReadFile error: 109
INFO: sc_pipe_read() returned -1 when copied=0
INFO: sc_pipe_read_all() returns -1
INFO: sc_pipe_read_all_intr() returned -1
ERROR: Could not list ADB devices
ERROR: Server connection failed

@rom1v
Copy link
Collaborator

rom1v commented Oct 14, 2022

OK, thanks, so the pipe is not valid when read:

ERROR: ReadFile error: 109

ERROR_BROKEN_PIPE
109 (0x6D)
The pipe has been ended.

https://learn.microsoft.com/en-us/windows/win32/debug/system-error-codes--0-499-

To be investigated.

@rom1v
Copy link
Collaborator

rom1v commented Oct 14, 2022

@npes87184 Maybe you might have any idea about the cause? It happens only on Windows, only on very few machines apparently (this problem which totally prevents scrcpy to work has been reported only twice).
Maybe scrcpy does something wrong when starting a process on Windows, but I don't understand.

@npes87184
Copy link
Contributor

npes87184 commented Oct 14, 2022

Sorry for the late reply. I am quite busy recently.

I will take a look #2932 and this issue when I have free time (maybe after 10/22 😵).

@CameronBanga
Copy link

CameronBanga commented Oct 14, 2022

I'm seeing same exact issue, on an Android device running 5.1. It's weird because I have ~6 of these devices I've been testing with today, and this issue only occurs on 2 of the 6. And these two came from a specific manufacturing run we did a year or so ago.

Not sure what or how to check, but I'm wondering if there is some sort of flag or permission issue that could cause this associated with a manufacturers specific kernel build?

@rom1v
Copy link
Collaborator

rom1v commented Oct 14, 2022

@CameronBanga This specific issue ("Could not list ADB devices" while adb devices -l actually lists the device) is definitely a client-side issue, so it should not depend on the device.

Could you reproduce the problem with always the same devices? Or is it random? (in that case, that could be a race condition, e.g. if the adb process terminates before reading its output)

@CameronBanga
Copy link

CameronBanga commented Oct 14, 2022

@rom1v so far with what I have seen, the device is connected and recognized by ADB without issue. Here's a sample output of adb devices -l

List of devices attached
 GS101200400611        device usb:17825792X product:rk3288 model:rk3288 device:rk3288 transport_id:15

Out of the devices that I have, I have 4 that seem to always connect to scrcpy reliably, and 2 that refuse to connect. The devices are all identical (same size, same Android 5.1, same manufacturer), the only distinguishing difference is that the 2 that refuse to connect are from a specific manufacturing run of the tablets. The other 4 that connect are from other manufacturing runs.

@rom1v
Copy link
Collaborator

rom1v commented Oct 14, 2022

The only distinguishing difference is that the 2 that refuse to connect are from a specific manufacturing run of the tablets

What is the full scrcpy output when you connect one of these devices? And what is the output of adb devices -l for these ones? (is it the output in your previous comment?)

@CameronBanga
Copy link

CameronBanga commented Oct 14, 2022

It is the output of previous comment, so this is what I see:

⇒ adb devices -l
List of devices attached
 GS101200400611        device usb:17825792X product:rk3288 model:rk3288 device:rk3288 transport_id:15

And here is what is see from scrcpy:

scrcpy 1.24 <https://github.com/Genymobile/scrcpy>
2022-10-14 13:53:35.075 scrcpy[10883:119447] ERROR: Could not find any ADB device
2022-10-14 13:53:35.432 scrcpy[10883:119446] ERROR: Server connection failed

If it helps, I'm on macOS 12.6, installed via homebrew.

@rom1v
Copy link
Collaborator

rom1v commented Oct 14, 2022

⇒ adb devices -l
List of devices attached
 GS101200400611        device usb:17825792X product:rk3288 model:rk3288 device:rk3288 transport_id:15

Oh, your problem is a different one: the device serial starts with a space, so it is ignored by the parser (or at least is reported with a printed space by adb devices -l).

Which one works:

adb -s GS101200400611 shell echo ok
adb -s ' GS101200400611' shell echo ok

?

Just to confirm this is not the same issue, test with this executable and post the logs: #3534 (comment)

@CameronBanga
Copy link

@rom1v Ah, good catch, it is the space:

Desktop|⇒ adb -s GS101200400611 shell echo ok
adb: device 'GS101200400611' not found
Desktop|⇒ adb -s ' GS101200400611' shell echo ok
ok

That executable looks to be an exe. Have a Mac compatible executable I could try?

@rom1v
Copy link
Collaborator

rom1v commented Oct 14, 2022

OK, could you please open a separate issue for serials containing a space please? I'll fix it before the next release.

@shihua-guo
Copy link

I have the same situation:
My pc:

Here are my log:


C:\Users\Jade\Documents\software\scrcpy>adb devices -l
List of devices attached
8f2e78ed               device product:raphael model:Redmi_K20_Pro_Premium_Edition device:raphael transport_id:9

run the first debug exe
#3534 (comment)

C:\Users\Jade\Documents\software\scrcpy>scrcpy -d
scrcpy 1.24 <https://github.com/Genymobile/scrcpy>
INFO: sc_pipe_read() returned -1 when copied=0
INFO: sc_pipe_read_all() returns -1
INFO: sc_pipe_read_all_intr() returned -1
ERROR: Could not list ADB devices
ERROR: Server connection failed

run the second debug exe


C:\Users\Jade\Documents\software\scrcpy>scrcpy -d
scrcpy 1.24 <https://github.com/Genymobile/scrcpy>
ERROR: ReadFile error: 109
INFO: sc_pipe_read() returned -1 when copied=0
INFO: sc_pipe_read_all() returns -1
INFO: sc_pipe_read_all_intr() returned -1
ERROR: Could not list ADB devices
ERROR: Server connection failed

My systeminfo


AdminPasswordStatus         : 0
BootupState                 : Normal boot
ChassisBootupState          : 2
KeyboardPasswordStatus      : 2
PowerOnPasswordStatus       : 2
PowerSupplyState            : 2
PowerState                  : 0
FrontPanelResetStatus       : 2
ThermalState                : 2
Status                      : OK
Name                        : DESKTOP-OFONCHJ
PowerManagementCapabilities :
PowerManagementSupported    :
Caption                     : DESKTOP-OFONCHJ
Description                 : AT/AT COMPATIBLE
InstallDate                 :
CreationClassName           : Win32_ComputerSystem
NameFormat                  :
PrimaryOwnerContact         :
PrimaryOwnerName            : Jade
Roles                       : {LM_Workstation, LM_Server, NT}
InitialLoadInfo             :
LastLoadInfo                :
ResetCapability             : 1
AutomaticManagedPagefile    : True
AutomaticResetBootOption    : True
AutomaticResetCapability    : True
BootOptionOnLimit           :
BootOptionOnWatchDog        :
BootROMSupported            : True
BootStatus                  :
ChassisSKUNumber            :
CurrentTimeZone             : 480
DaylightInEffect            :
DNSHostName                 : DESKTOP-OFONCHJ
Domain                      : WORKGROUP
DomainRole                  : 0
EnableDaylightSavingsTime   : True
HypervisorPresent           : False
InfraredSupported           : False
Manufacturer                : Microsoft Corporation
Model                       : Surface Laptop
NetworkServerModeEnabled    : True
NumberOfLogicalProcessors   : 4
NumberOfProcessors          : 1
OEMLogoBitmap               :
OEMStringArray              :
PartOfDomain                : False
PauseAfterReset             : -1
PCSystemType                : 2
PCSystemTypeEx              : 2
ResetCount                  : -1
ResetLimit                  : -1
SupportContactDescription   :
SystemFamily                : Surface
SystemSKUNumber             : Surface_Laptop
SystemStartupDelay          :
SystemStartupOptions        :
SystemStartupSetting        :
SystemType                  : x64-based PC
TotalPhysicalMemory         : 17092952064
UserName                    : DESKTOP-OFONCHJ\Jade
WakeUpType                  : 2
Workgroup                   : WORKGROUP
PSComputerName              :
CimClass                    : root/cimv2:Win32_ComputerSystem
CimInstanceProperties       : {Caption, Description, InstallDate, Name...}
CimSystemProperties         : Microsoft.Management.Infrastructure.CimSystemProperties

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants