Update pve RustDesk GA sync scripts

This commit is contained in:
alexveley
2026-06-24 02:03:10 -04:00
parent eddabfe934
commit 7151e11d34
+28 -6
View File
@@ -38,6 +38,8 @@ GUEST_READ_PATHS = [
]
PS_READ_ID = r'''
$ProgressPreference = 'SilentlyContinue'
$ErrorActionPreference = 'SilentlyContinue'
$paths = @(
'C:\ProgramData\Blair\rustdesk-report.json',
'C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\config\RustDesk2.toml',
@@ -145,16 +147,36 @@ def decode_exec_payload(st: dict) -> tuple[str, str]:
return out, err
def clean_exec_text(text: str) -> str:
if not text:
return ''
text = re.sub(r'#< CLIXML.*', '', text, flags=re.DOTALL)
return text.strip()
def extract_id_from_exec(out: str, err: str) -> str | None:
combined = '\n'.join(filter(None, (clean_exec_text(out), clean_exec_text(err))))
for line in combined.splitlines():
line = line.strip()
if re.fullmatch(r'\d{6,12}', line):
return line
match = re.search(r'\d{6,12}', combined)
return match.group(0) if match else None
def parse_exec_result(st: dict) -> tuple[str | None, str | None]:
try:
exitcode = int(st.get('exitcode', 1))
out, err = decode_exec_payload(st)
rid = extract_id_from_exec(out, err)
if rid:
return rid, None
if exitcode != 0:
return None, err or out or f'guest exit {exitcode}'
match = re.search(r'\d{6,12}', out)
if not match:
return None, f'no id in exec output: {out!r}'
return match.group(0), None
brief = clean_exec_text(err) or clean_exec_text(out) or f'guest exit {exitcode}'
if len(brief) > 120:
brief = brief[:120] + '...'
return None, brief
return None, f'no id in exec output: {out!r}'
except Exception as exc: # noqa: BLE001
return None, f'exec decode error: {exc}'
@@ -258,7 +280,7 @@ def guest_exec_powershell(vmid: int) -> tuple[str | None, str | None]:
enc = powershell_encoded(PS_READ_ID)
return guest_exec_text(
vmid,
['powershell.exe', '-NoProfile', '-EncodedCommand', enc],
['powershell.exe', '-NoProfile', '-NonInteractive', '-EncodedCommand', enc],
timeout=120,
)