조직 전체에 Maxiful 배포하기
Windows PC와 Mac에 Maxiful을 배포하는 IT 팀을 위한 안내예요. 플랫폼별 설치 방식, Intune·Jamf Pro·자동 설치로 배포하는 방법, 컴퓨터에 설치되고 실행되는 항목, 허용할 네트워크 호스트, 보안 도구에서 보이는 방식, 중앙에서 정할 수 있는 설정, 업데이트와 제거 방법을 다뤄요.
Windows용과 Mac용 Maxiful 0.9.60 기준으로 확인했어요. 두 플랫폼이 다른 부분은 섹션마다 Windows와 Mac을 나눠 설명해요.
설치 방식
두 플랫폼 모두 Maxiful은 각 사용자가 직접 설정하는 데스크톱 앱이에요. 처음 실행하면 해당 사용자용 어시스턴트 런타임을 설정해요. 오픈 소스 에이전트 런타임인 OpenClaw를, Maxiful이 그 사용자용으로 설치한 Node.js 위에 올리는 방식이에요. 이 런타임의 백그라운드 프로세스인 게이트웨이가 어시스턴트를 실행하고, 사용자가 컴퓨터에 로그인할 때마다 다시 시작돼요.
Windows
사용자별 설치, 관리자 권한 불필요. 설치 프로그램 Maxiful-x64-setup.exe는 Windows에 로그인한 사용자 권한으로 실행되고 그 사용자의 %LOCALAPPDATA%\Maxiful에 설치돼요. 해당 사용자의 설치된 앱 목록에 표시되므로, 한 컴퓨터에서 Maxiful을 쓰는 사람마다 각자의 설치본을 갖게 돼요.
Windows 10 이상, 64비트. Maxiful 창은 Microsoft Edge WebView2로 그려져요. WebView2 Runtime이 없으면 설치 프로그램이 go.microsoft.com에서 Microsoft의 WebView2 설치 프로그램을 내려받아 자동으로 실행해요.
Mac
/Applications에 앱 하나, 설정은 사용자별. Mac용 Maxiful은 디스크 이미지 Maxiful-arm64.dmg로 제공되며, 안에 든 Maxiful.app은 Apple Developer ID로 서명되고 Apple의 공증을 받았어요(서명 세부 정보는 Mac: Intune 및 Jamf Pro 참고). 사용자나 기기 관리 도구가 /Applications에 복사하면 그 Mac의 모든 사용자가 쓰는 하나의 앱이 돼요. 앱을 여는 사람마다 로그인해 각자의 설치본을 갖고, 어시스턴트와 데이터는 각자의 홈 폴더에 저장돼요.
macOS 13 이상, Apple silicon 또는 Intel. 두 가지 모두 하나의 빌드로 지원해요.
Windows: 자동 설치
Maxiful-x64-setup.exe /S
| 스위치 | 동작 |
|---|---|
/S | 자동: 설치 프로그램 창이 뜨지 않고 아무것도 묻지 않아요. 시작 메뉴와 바탕 화면 바로 가기를 추가해요. |
/P | 패시브: 진행률 표시줄만 나오고 아무것도 묻지 않아요. Maxiful 자체 업데이트가 이 방식으로 실행돼요. |
/NS | 시작 메뉴와 바탕 화면 바로 가기를 만들지 않아요. |
/R | 설치가 끝나면 Maxiful을 열어요(/S 또는 /P와 함께 사용). |
/DEFENDER=managed | 조직의 Defender 정책이 Maxiful 작업 폴더(아래 참고)를 추가하므로, 설치 중에 Windows에 이를 요청하지 않아요. |
/DEFENDER=off | Defender가 해당 폴더를 검사하도록 두므로, 설치 중에 Defender가 이 폴더를 건너뛰게 해 달라고 Windows에 요청하지 않아요. |
종료 코드. 0은 설치 완료, 그 외 코드는 설치되지 않았다는 뜻이에요. 2는 원인이 여러 가지일 수 있어요. 그중 하나는 다른 프로그램이 Maxiful 파일을 30초 동안 사용 중인 경우로, 이때는 아무것도 변경되지 않아요. 설치 프로그램은 파일을 쓰기 전에 해당 사용자가 실행 중인 Maxiful을 종료해요.
기존 설치본 위에 설치. 같은 방식으로 새 버전의 설치 프로그램을 실행하면 그 자리에서 업데이트되고, 사용자의 어시스턴트와 데이터는 그대로 유지돼요. 2026년 10월 26일 사내 Windows 테스트 PC에서 0.9.54를 서명된 0.9.58로 업데이트해 확인했어요.
Microsoft Defender가 건너뛰는 폴더
Maxiful 작업 폴더에서는 팀이 시작될 때마다 수천 개의 파일이 바뀌기 때문에, Maxiful은 그중 네 폴더를 Microsoft Defender가 건너뛰도록 Windows에 요청해요. /DEFENDER 스위치가 없으면 파일을 쓴 뒤에 이 요청을 해요. Windows가 자체 권한 확인 창을 띄우고, 관리자 권한이 없는 사용자에게는 관리자 로그인을 요구해요. 아무도 응답하지 않으면 약 2분 뒤 Windows가 창을 스스로 닫고, 설치는 그대로 완료돼요. Maxiful은 다음 실행 때 한 번 더 묻고, 두 번째도 응답이 없으면 거부로 간주해 다시 묻지 않아요.
/DEFENDER=managed 또는 /DEFENDER=off(정확히 이 표기)를 쓰면 설치, 업데이트, 실행 어느 때에도 Windows에 요청하지 않고, Maxiful 설정에는 IT 부서가 이 컴퓨터의 Microsoft Defender를 관리한다고 표시돼요. 폴더를 검사하게 둬도 모든 기능이 작동하지만 팀 시작이 느려져요. 사용자는 나중에 Maxiful 설정의 Defender가 Maxiful 작업 폴더를 건너뛰게 하기에서 직접 예외를 켤 수 있고, 이때 위와 같이 Windows에 요청해요.
| Defender 예외 요청 폴더 |
|---|
%LOCALAPPDATA%\Lanoko\node-v24.21.0\node_modules\openclaw |
%LOCALAPPDATA%\Lanoko\node-v24.21.0\openclaw-compile-cache |
%USERPROFILE%\.openclaw-*\tmp\plugin-captures |
%USERPROFILE%\.openclaw-*\agents\*\agent |
Windows: Microsoft Intune(Win32 앱)
자동 설치와 기존 설치본 위 업데이트는 사내 Windows 테스트 PC에서 확인했어요. 이 절차는 Microsoft의 Win32 앱 문서를 따른 것으로, Intune 테넌트에서 실행해 보지는 않았어요. 실제 동작이 다르면 [email protected]로 알려 주세요.
- 패키지 폴더를 만드세요. Maxiful 계정에서 내려받고 SHA-256으로 확인한
Maxiful-x64-setup.exe와,uninstall.cmd파일을 넣어요. Intune은 제거 명령에서 환경 변수를 확장하지 않기 때문이에요.@echo off "%LOCALAPPDATA%\Maxiful\uninstall.exe" /S _?=%LOCALAPPDATA%\Maxiful set rc=%ERRORLEVEL% del /q "%LOCALAPPDATA%\Maxiful\uninstall.exe" rmdir "%LOCALAPPDATA%\Maxiful" exit /b %rc%_?=는 제거 프로그램을 그 자리에서 실행해 스크립트가 다음 줄로 넘어가기 전에 끝나게 해요. 이어지는 두 줄은 제거 프로그램 자체와 빈 폴더를 지워요. 사용자의 어시스턴트와 데이터까지 지우려면 첫 줄을/S /REMOVEALL _?=%LOCALAPPDATA%\Maxiful로 바꾸세요(제거 참고). - Microsoft Win32 Content Prep Tool로 .intunewin 파일을 만드세요.
IntuneWinAppUtil.exe -c C:\maxiful-package -s Maxiful-x64-setup.exe -o C:\maxiful-intunewin -q - Program: 설치 명령은 Defender 정책이 위 네 폴더를 추가한다면
Maxiful-x64-setup.exe /S /DEFENDER=managed, 폴더를 검사하게 하려면Maxiful-x64-setup.exe /S /DEFENDER=off. 제거 명령은uninstall.cmd, 설치 동작은 User, 디바이스 다시 시작 동작은 No specific action, 반환 코드는 기본값. - Requirements: 64비트, Windows 10 이상.
- Detection rule: 파일, 경로
%LOCALAPPDATA%\Maxiful, 파일Maxiful.exe, 방법 File or folder exists. - Assignment: 사용자 그룹에 Required 또는 Available.
Intune은 아무것도 묻지 않는 설치를 전제로 해요. /DEFENDER 스위치를 쓰면 Maxiful 설치는 아무것도 묻지 않아요. 스위치가 없으면 Windows의 Defender 확인 창이 유일하게 나타날 수 있는 질문이에요. 넓게 할당하기 전에 첫 실행을 읽어 보세요.
Mac: Microsoft Intune 및 Jamf Pro
기기 관리 도구가 사용자가 내려받는 것과 같은 디스크 이미지에서 공증된 Maxiful.app을 /Applications에 설치해요. 필요한 값은 다음과 같아요.
| MDM 항목 | 값 |
|---|---|
| 번들 식별자 | ai.maxiful.desktop |
| Team ID | 467H9AXX55 |
| 앱 서명 | Developer ID Application: Polytrader ltd (467H9AXX55), Apple 공증 완료. |
| 코드 요구 사항 | identifier "ai.maxiful.desktop" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "467H9AXX55" |
| 버전 | /Applications/Maxiful.app/Contents/Info.plist의 CFBundleShortVersionString: Maxiful 버전. |
| 설치 위치 | /Applications/Maxiful.app |
| 관리형 환경설정 도메인 | 번들 식별자인 ai.maxiful.desktop. 키는 관리형 설정에서 확인하세요. |
Microsoft Intune(macOS app (DMG))
- Apps, All Apps, Create를 선택하고, 플랫폼은 macOS, 유형은 macOS app (DMG)로 지정해요. Maxiful 계정에서 내려받고 SHA-256으로 확인한
Maxiful-arm64.dmg를 선택하세요. Mac에는 Intune의 macOS용 관리 에이전트가 있어야 해요. - App information: 로고를 추가하면 Company Portal에 앱 아이콘이 표시돼요. Requirements: Minimum Operating System은 macOS 13.
- Detection rules: Included apps에
ai.maxiful.desktop과 버전을 입력해요. Ignore app version은 No로 두어 업로드하는 버전마다 설치되게 해요.AutoUpdate도 0으로 설정하세요(관리형 설정 참고). 모든 버전을 Intune으로 설치하고, Maxiful은 스스로 업데이트를 찾지 않아요. - Assignments: Required(
/Applications에 설치), Company Portal에서 Available, 또는 Uninstall.
Intune이 DMG 앱을 업데이트하거나 제거하려면 전체 디스크 접근 권한이 필요하며, macOS 13 이상에서는 앱이 할당될 때 이 권한을 요청해요. 새 버전을 배포하려면 같은 앱에 새 디스크 이미지를 업로드하세요. Required 할당은 자동으로 업데이트되고, Available이면 각 사용자가 Company Portal에서 Reinstall을 선택해요.
Jamf Pro
Jamf Pro는 배포 지점에서 패키지를 배포해요. Jamf Composer로 /Applications/Maxiful.app을 담은 패키지를 만드세요.
- Mac에서 디스크 이미지의
Maxiful.app을/Applications로 복사해요. Composer에서 Finder의/Applications/Maxiful.app을 Sources 목록으로 끌어와/Applications경로가 유지되게 하고, 그 소스로 패키지를 빌드하세요. - 패키지를 배포 지점과 Jamf Pro에 추가하세요.
- Computers, Policies에서 새 정책을 만드세요. General에서 트리거와 실행 빈도를 설정하고, Packages 페이로드에 작업 Install로 패키지를 추가한 뒤 배포 지점을 선택해요.
- Scope 탭에서 컴퓨터를 선택하거나, 정책을 Self Service에서 쓸 수 있게 하세요.
- 새 버전마다 같은 방식으로 패키지를 빌드해 정책으로 배포하고,
AutoUpdate를 0으로 설정해(관리형 설정 참고) Maxiful이 스스로 업데이트를 찾지 않게 하세요.
이 절차는 Microsoft와 Jamf의 문서를 따른 것으로, Intune이나 Jamf 테넌트에서 실행해 보지는 않았어요. 실제 동작이 다르면 [email protected]로 알려 주세요.
게이트웨이의 로그인 항목
어시스턴트 게이트웨이는 사용자별 LaunchAgent로 실행되며 레이블은 ai.openclaw.<name>이에요. macOS 13 이상에서는 규칙 유형 Label prefix, 값 ai.openclaw.로 설정한 Service Management(관리형 로그인 항목) 페이로드가 이를 자동으로 승인해요.
첫 실행: 각 사용자가 할 일
자동 설치를 하거나 MDM이 /Applications에 Maxiful을 복사해 두면 바로 열 수 있는 상태가 돼요. 첫 실행 때는 Windows와 Mac 모두 각 사용자에게 다음 단계를 요청하며, IT가 사용자 대신 완료할 수는 없어요.
- 각 사용자는 자신의 이메일 주소로 로그인해요. Maxiful이 로그인 링크를 이메일로 보내고, 링크를 누르면 앱이 열려요. 워크스페이스 소유자가 조직의 이메일 도메인에 Single Sign-On을 설정해 두었다면 대신 회사 계정으로 계속하기를 선택할 수 있어요. 그러면 브라우저에서 ID 공급자(Microsoft Entra ID, Google Workspace, Okta, 기타 OpenID Connect 또는 SAML 2.0 공급자)의 로그인이 열려요. Enforce single sign-on이 켜져 있으면 이메일 링크도 ID 공급자로 넘어가요.
- 새 워크스페이스를 설정하는 사람은 Maxiful 계정의 설정 코드를 입력해요. 코드는 처음 사용한 컴퓨터에서만 작동해요.
- 워크스페이스에 초대받은 동료는 대신 그 워크스페이스에 참여해요. 소유자가 Add people to my workspace when they sign in을 켜 두었다면, 인증된 도메인의 사용자가 ID 공급자로 로그인할 때도 마찬가지예요. 동료의 새 기기는 워크스페이스 소유자가 팀 페이지의 사람에서 허용할 때까지 기다려요.
그다음 설정 과정에서 해당 사용자용 Node.js와 런타임을 설치하고 팀을 시작해요. 아래 네트워크 호스트에 접근할 수 있어야 해요.
Mac: macOS가 요청하는 권한
Maxiful은 기능에 처음 필요할 때만 macOS에 권한을 요청하고, macOS가 자체 확인 창을 띄워요:
- 알림: 창이 백그라운드에 있을 때 답장이 도착하는 등, Maxiful이 처음 알림을 표시할 때.
- 마이크와 음성 인식: 사용자가 처음 메시지를 받아쓰거나 어시스턴트와 대화할 때.
- 손쉬운 사용, 화면 기록, 입력 모니터링: 소유자가 처음 어시스턴트에게 컴퓨터 사용을 허용할 때.
팀이 실행되는 곳과 항상 켜 두는 컴퓨터
팀은 소유자의 컴퓨터에서 실행돼요. 어시스턴트와 그 메모리, 대화는 그 컴퓨터의 소유자 설치본에 있고, 동료는 각자의 기기에서 여기에 연결해요. 팀이 24시간 응답하기를 원하는 사무실은 소유자 설치본을 항상 켜 두는 컴퓨터에서 실행해요.
- Mac: 소유자의 macOS 계정에 로그인된 상태여야 해요. 게이트웨이는 그 계정의 LaunchAgent라 계정이 로그인할 때 시작되므로, 다시 시작할 때마다 계정에 다시 로그인하거나 자동 로그인을 켜 두세요. FileVault가 켜져 있으면 macOS에서 자동 로그인을 쓸 수 없어요.
- Windows PC: 소유자의 Windows 계정에 스스로 로그인하도록(Windows 자동 로그인) 설정해요. Maxiful은 계정이 로그인할 때 게이트웨이를 시작해요. 부팅 시 시작하려면 관리자 권한 설치가 필요한데, Maxiful은 그런 설치를 하지 않아요.
계정의 AI 모델은 한 번에 한 컴퓨터에서만 응답해요. 소유자가 노트북에서도 Maxiful을 쓰다가 거기서 여기서 Maxiful 사용을 선택하면, 항상 켜 둔 컴퓨터에서 다시 선택할 때까지 그 컴퓨터의 어시스턴트는 응답하지 않아요.
그 컴퓨터에 업데이트를 직접 설치하려면 AutoUpdate를 0으로 설정하세요(관리형 설정 참고). Maxiful 백업은 같은 컴퓨터의 소유자 홈 폴더 아래 <name>-shared/backups에 저장되는 아카이브예요. 조직의 백업 도구로 컴퓨터 밖에 복사해 두세요.
컴퓨터에 설치되는 항목
아래의 <name>은 설치본의 짧은 이름이에요.
Windows
| 위치 | 내용 |
|---|---|
%LOCALAPPDATA%\Maxiful | 앱: Maxiful.exe, gateway-launcher.exe(어시스턴트 명령을 각각 샌드박스에서 시작), uninstall.exe. |
%LOCALAPPDATA%\ai.maxiful.desktop | 앱 자체 데이터: WebView2 데이터, 로그(logs\Maxiful.log, logs\installer.log), Defender 요청 기록. |
%LOCALAPPDATA%\Lanoko | OpenClaw 런타임이 설치된 Node.js 24.21.0과 npm 캐시. 폴더 이름은 Maxiful의 이전 이름을 따름. |
%USERPROFILE%\.openclaw-<name> | 설치본 자체: 런타임 구성, 어시스턴트와 그 작업 공간 및 메모리, 설치본의 비밀 정보, 어시스턴트 전용 브라우저. |
%USERPROFILE%\.stomme | 설치본별 Maxiful 기록(애드온, 소유자의 결정 등). |
%USERPROFILE%\.lanoko-sandbox\<name> | 게이트웨이 샌드박스 경계를 설명한 일반 텍스트 파일. |
| 레지스트리 | HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\Maxiful(설치된 앱 항목)과 HKCU\Software\maxiful\Maxiful(설치 폴더). |
| 로그인 시 시작 | 게이트웨이용 예약된 작업으로, 런타임 자체의 작업(OpenClaw Gateway (<name>)) 또는 Maxiful 자체의 작업(ai.openclaw.gateway-<name>)이 있어요. Windows가 작업 등록을 거부하면 대신 사용자의 시작프로그램 폴더에 OpenClaw Gateway (<name>).vbs를 둬요. 런타임 자체의 예약된 작업이 게이트웨이를 실행하는 경우 Maxiful은 예약된 작업 Maxiful team keeper (<name>)도 추가하는데, 이 작업은 2분마다 팀 상태를 확인해요. 시작프로그램 폴더 스크립트를 쓰는 경우에는 이 작업이 없어요. 어느 쪽이든 사용자가 로그인하면 그 사용자 권한으로 게이트웨이를 시작하며, 아무도 로그인하기 전에는 시작하지 않아요. 런타임은 Windows에 S4U 로그온과 시작 시 트리거를 쓰는 작업을 요청하는데, Windows는 권한 상승된 설치에서만 이를 등록해요. Maxiful은 이 설치를 권한 상승 상태로 실행하지 않으므로 Windows가 요청을 거부하고, 런타임은 시작프로그램 폴더 스크립트를 쓰거나 이전 버전이 등록한 작업을 그대로 유지해요. 이 작업은 로그인 시 시작돼요. 컴퓨터의 작업은 schtasks /query /tn "OpenClaw Gateway (<name>)" /xml로 확인할 수 있어요. |
Windows의 프로세스
| 프로세스 | 설명 |
|---|---|
Maxiful.exe | 앱 본체. 서명되어 있음(아래 참고). 앱 창은 Microsoft의 msedgewebview2.exe에서 실행됨. |
node.exe | %LOCALAPPDATA%\Lanoko\node-v24.21.0에서 실행: OpenClaw 게이트웨이와 런타임 자체 명령. Windows 샌드박스 관련 수정을 넣은 Maxiful 자체 빌드 Node.js 24.21.0이며, 사용 전에 앱에 고정된 SHA-256으로 검증. |
gateway-launcher.exe | 앱 폴더에서 실행: 어시스턴트의 각 명령을 샌드박스 안에서 시작. |
chrome.exe | %USERPROFILE%\.openclaw-<name>\browser\chromium\chrome-win64에서 실행: 어시스턴트 전용 브라우저. Playwright 다운로드 서버에서 받은 Chrome for Testing 빌드이며 고정된 SHA-256으로 검증. 사용자 본인의 브라우저는 열지 않음. |
cmd.exe, wscript.exe | 게이트웨이 시작: gateway.cmd는 게이트웨이의 예약된 작업이 직접 실행하거나, 이전 버전의 작업이라면 설치 폴더의 gateway.vbs를 거쳐 실행해요. 또는 사용자의 시작프로그램 폴더에 있는 OpenClaw Gateway (<name>).vbs가 실행해요. |
어시스턴트가 실행하는 명령(셸, PowerShell, 스크립트)은 게이트웨이의 자식 프로세스로 실행되며, 기본적으로 어시스턴트마다 자체 샌드박스에서 실행돼요. 게이트웨이는 127.0.0.1의 18800번 이상 포트(첫 설치는 18800)에서 수신하고, Maxiful.exe는 추가 루프백 포트에서 수신해요. 테스트 PC에서 Maxiful의 어떤 프로세스도 다른 주소에서 수신하지 않았어요.
Mac
| 위치 | 내용 |
|---|---|
/Applications/Maxiful.app | 앱 본체. Mac의 모든 사용자가 하나의 사본을 함께 사용. |
~/Library/Application Support/Lanoko | OpenClaw 런타임이 설치된 Node.js 24.21.0, npm 캐시, 게이트웨이 작업 폴더. 폴더 이름에는 Maxiful의 이전 이름이 남아 있음. |
~/.openclaw-<name> | 설치 자체: 런타임 구성, 어시스턴트, 어시스턴트의 워크스페이스와 메모리, 설치의 비밀 정보, 어시스턴트 전용 브라우저. |
~/.stomme | 설치별 Maxiful 자체 기록(애드온, 소유자의 결정 사항 등). |
~/.lanoko-sandbox/<name> | 게이트웨이의 macOS 샌드박스 프로파일 gateway.sb. 게이트웨이는 이 프로파일 아래에서 시작됨. |
~/Library/LaunchAgents/ai.openclaw.<name>.plist | 게이트웨이의 LaunchAgent: 사용자가 로그인하면 그 사용자 권한으로 게이트웨이를 시작하고, 멈추면 다시 시작. |
~/Library/Logs/ai.maxiful.desktop/desktop.noindex | 앱 로그 Maxiful.log. |
~/Library/Logs/Lanoko/gateway.noindex | 게이트웨이 로그. |
| 키체인 | 사용자 키체인에 있는 게이트웨이의 기기 키 Maxiful Gateway Device Key. |
Mac의 프로세스
| 프로세스 | 설명 |
|---|---|
Maxiful | /Applications/Maxiful.app에서 실행되는 앱 본체. 서명 및 공증됨(Mac: Intune 및 Jamf Pro 참고). |
node | ~/Library/Application Support/Lanoko/node-v24.21.0/bin/node에서 실행: OpenClaw 게이트웨이와 런타임 자체 명령. launchd가 시작하며, 기본적으로 위 프로파일을 적용해 /usr/bin/sandbox-exec를 거쳐 실행됨. nodejs.org의 공식 macOS용 Node.js 24.21.0이며, 사용 전에 앱에 고정된 SHA-256으로 검증. |
Google Chrome for Testing | ~/.openclaw-<name>/browser/chromium에서 실행: 어시스턴트 전용 브라우저. Playwright 다운로드 서버에서 받은 Chrome for Testing 빌드이며 고정된 SHA-256으로 검증. 사용자 본인의 브라우저는 열지 않음. |
어시스턴트가 실행하는 명령은 게이트웨이의 자식 프로세스이며, 기본적으로 어시스턴트마다 자체 샌드박스에서 실행돼요. 게이트웨이는 Windows와 마찬가지로 127.0.0.1의 18800번 이상 포트에서 수신해요.
허용할 네트워크 호스트
모든 연결은 컴퓨터에서 바깥으로 HTTPS로 열려요(릴레이는 WSS도 사용해요). 저희 쪽에서 컴퓨터로 연결을 열 수는 없어요.
설정 및 일상 사용
| 호스트 | 용도 |
|---|---|
maxiful.ai | 로그인(회사 계정 로그인의 시작과 복귀 포함), 계정, 업데이트 피드, 애드온 스토어, 설정 진단. |
lanoko.ai | 설정 코드, 설정 시 모델 접근, 환영 이메일, 동료 멤버십. |
proxy.stomme.ai | 모든 클라우드 모델 호출과 더 많은 업무 앱에서 연결한 앱. |
stomme-model-proxy.stomme-ai.workers.dev | 모델 목록. |
or-key-worker.stomme-ai.workers.dev | 요금제 사용 한도. |
mc-cdn.lanoko.ai, mc-cdn.stomme.ai, mc-cdn.maxiful.ai | 애드온 인덱스와 애드온, Windows용 Maxiful Node.js 빌드, 로컬 메모리 검색 모델, 음성 모델. |
nodejs.org | 설정 시 Node.js. |
registry.npmjs.org | 설정 시, 그리고 업데이트에 새 런타임이 포함될 때 OpenClaw 런타임. |
cdn.playwright.dev | 설정 시 어시스턴트 브라우저. |
기능을 사용할 때만
| 호스트 | 용도 |
|---|---|
relay.maxiful.ai | 릴레이(WSS): 페어링된 휴대폰과 동료의 기기. |
relay.lanoko.ai | 이전 이름의 같은 릴레이. 2026년 10월 22일 이전에 페어링된 설치와 휴대폰용. |
ingress.lanoko.ai | Teams, Google Chat 등 웹후크로 메시지를 전달하는 채팅 플랫폼. |
teamtailor.maxiful.ai | Teamtailor 연결. |
openrouter.ai | 로컬 검색 인덱스를 실행할 수 없는 컴퓨터의 메모리 검색. |
github.com, huggingface.co | 저희 다운로드 서버가 응답하지 않을 때 로컬 메모리 검색 엔진과 모델의 대체 경로. github.com은 Google Workspace 연결에 쓰는 도구도 제공. |
clawhub.ai | 런타임의 플러그인 카탈로그. |
connect.composio.dev, backend.composio.dev | 통합 페이지의 선택형 Composio 카드에만 사용. |
go.microsoft.com | Windows에서 WebView2 Runtime이 없을 때만. |
| 연결된 서비스 | 사용자가 연결하는 각 서비스(Google, Microsoft 365, Slack 등)의 자체 주소. |
보안 도구에서 보이는 방식
Windows
서명자. 저희가 배포하는 모든 설치 프로그램과 이 프로그램이 설치하는 Maxiful.exe는 PolyTrader Ltd에 발급된 인증서로 서명되어 있어요(인증서 주체: CN=Polytrader LTD). PolyTrader Ltd는 Maxiful AB 이전에 Maxiful을 배포한 회사예요. 파일 서명은 Get-AuthenticodeSignature로 확인하고, 다운로드한 파일은 계정의 설치 페이지에 있는 체크섬과 비교하세요(방법은 도움말 참고).
서명되지 않은 구성 요소. 런타임의 node.exe와 어시스턴트의 chrome.exe에는 Authenticode 서명이 없어요. Maxiful은 사용 전에 각각을 고정된 SHA-256으로 검증해요. 이 파일들의 허용 목록은 경로 기준으로 만들어요.
허용 목록에 넣을 항목: 프로세스 %LOCALAPPDATA%\Maxiful\Maxiful.exe(서명됨)와 gateway-launcher.exe, %LOCALAPPDATA%\Lanoko\node-v24.21.0\node.exe, %USERPROFILE%\.openclaw-*\browser\chromium\chrome-win64\chrome.exe, 위의 Defender 폴더 네 개, 위의 네트워크 호스트.
Mac
서명자. Maxiful.app은 팀 467H9AXX55의 Developer ID로 서명되고 Apple의 공증을 받아, Gatekeeper가 별도 예외 없이 열어요. 허용 목록에서는 코드 요구 사항으로 지정할 수 있어요(Mac: Intune 및 Jamf Pro 참고). 서명은 codesign -dvv /Applications/Maxiful.app으로 확인하세요.
런타임 구성 요소. 게이트웨이의 node는 공식 macOS용 Node.js이고, 어시스턴트 브라우저는 Google의 Chrome for Testing이에요. 둘 다 Maxiful이 다운로드하고 사용 전에 고정된 SHA-256으로 검증해요. 이 파일들의 허용 목록은 경로 기준으로 만들어요.
허용 목록에 넣을 항목: /Applications/Maxiful.app(팀 467H9AXX55), ~/Library/Application Support/Lanoko/node-v24.21.0/bin/node, ~/.openclaw-*/browser/chromium 아래의 브라우저, 위의 네트워크 호스트.
공통
동작. 사용자별 Node.js 프로세스가 로그인 시 시작되어 아웃바운드 HTTPS 호출을 하고, 어시스턴트를 위해 명령을 실행하며, 시작할 때마다 플러그인 파일을 복사해요. 그래서 설치 폴더 아래에 많은 파일을 써요.
CrowdStrike. CrowdStrike는 Falcon for IT용 OpenClaw "Search & Removal" 콘텐츠 팩을 제공해요. 이 팩은 실행 중인 OpenClaw 프로세스, 전역 npm 설치, 일반 경로의 OpenClaw 바이너리, 서비스, 홈 폴더의 상태 및 구성 폴더를 찾아요. 제거 워크플로는 서비스와 프로세스를 중지하고, npm 패키지를 제거하고, 설치 및 구성 폴더를 삭제하며, 서비스 등록, 예약된 작업, launchd plist 등을 제거해요. Maxiful의 게이트웨이는 실행 중인 OpenClaw 프로세스이고 상태를 Windows에서는 %USERPROFILE%\.openclaw-<name>, Mac에서는 ~/.openclaw-<name>에 두므로, 이 팩이 찾아낼 수 있어요. Maxiful 컴퓨터에서 제거를 실행하면 팀이 멈추고 어시스턴트의 구성과 메모리가 삭제될 수 있어요. 검색 기능으로 Maxiful이 실행되는 곳을 파악하되, 조직에서 Maxiful을 쓰는 컴퓨터에는 제거를 적용하지 마세요.
허용 목록 적용 여부는 보안팀이 결정할 일이에요. 이 프로세스들은 어시스턴트를 위해 명령을 실행하며, 기본적으로 어시스턴트마다 샌드박스 안에서, 보안 페이지에 설명된 승인 절차를 거쳐 실행해요.
관리형 설정
Maxiful은 버전 0.9.60부터 Windows와 Mac에서 관리형 설정을 읽어요. 이전 버전은 읽지 않아요.
IT 부서는 Maxiful 설정 일부를 중앙에서 지정할 수 있어요. Windows에서는 그룹 정책이나 Intune으로, Mac에서는 Jamf, Intune 또는 다른 기기 관리 도구의 구성 프로파일로 지정해요. Maxiful은 설정을 사용할 때마다 읽어요. 소유자 스위치를 바꾸면 Maxiful을 다음에 시작할 때 어시스턴트에 반영되고, 그때까지 Maxiful 설정에 그 사실이 표시돼요. 조직에서 지정한 설정은 Maxiful 설정에 조직에서 설정함으로 표시되며 거기서 바꿀 수 없어요. 지정한 항목은 모두 접근 맨 위에 나열돼요. 정책이 없으면 Maxiful은 IT 부서가 관리하지 않는 컴퓨터에서와 똑같이 동작해요.
| 이름 | 값 | 설명 |
|---|---|---|
Workspace | 텍스트 | 컴퓨터의 Maxiful이 이 ID의 워크스페이스만 열어요. 워크스페이스 소유자는 Maxiful 설정의 접근 맨 위에서 이 워크스페이스의 ID로 ID를 확인할 수 있어요. 워크스페이스 멤버가 아닌 사람에게는 조직에서 이렇게 설정했다는 안내가 표시되고, 초대를 받아 워크스페이스에 참여해요. 그 사람의 개인 워크스페이스나 다른 워크스페이스는 그 컴퓨터에서 열리지 않아요. |
AutoUpdate | 0 또는 1 | 0: Maxiful이 업데이트를 확인, 다운로드, 설치하지 않고, 설정에 조직에서 업데이트를 설치한다고 표시돼요. 새 설치 프로그램은 직접 배포해야 해요(업데이트 참고). 1: 정책이 없을 때처럼 Maxiful이 스스로 업데이트해요. |
OwnerSwitches | 각각 0 또는 1 | 아래 소유자 스위치 중 하나를 이름으로 지정해요. 0은 끔, 1은 켬이며, 소유자의 선택과 관계없이 적용돼요. 지정하지 않은 스위치는 소유자가 계속 선택할 수 있어요. 값을 제거하면 소유자의 기존 선택으로, 소유자가 선택한 적이 없으면 Maxiful 기본 설정으로 돌아가요. 값을 지정할 때와 마찬가지로 Maxiful을 다음에 시작할 때 어시스턴트에 반영돼요. |
소유자 스위치
| 이름 | Maxiful의 스위치 | 위치 |
|---|---|---|
terminal | 이 컴퓨터에서 터미널 열기 | 접근(Mac 전용) |
private-network | 어시스턴트가 이 컴퓨터와 내 네트워크의 페이지를 열도록 허용 | 접근 |
pane-reach | 어시스턴트 창에서 코드 실행 및 Maxiful 외부 접근 허용 | 접근 |
claude-code-background | Claude Code가 오래 걸리는 명령을 백그라운드에서 계속 실행하도록 허용 | 접근 |
session-reach | 어시스턴트가 이 컴퓨터의 모든 대화를 살펴볼 수 있어요(지난 작업에서 배우도록) | 접근 |
model-costs | 모델 비용을 달러로 표시 | 고급 |
next-prompt | 다음 메시지 제안받기 | 고급 |
checkin-whole-conversation | 정기 확인 때 대화 전체 읽기 | 고급 |
voice-notes | 음성 메모를 글로 옮기기 | 음성 및 오디오 |
Maxiful은 숫자뿐 아니라 텍스트 0, 1, true, false도 0 또는 1로 읽어요. 읽을 수 없는 값, 예를 들어 0 또는 1 자리에 들어간 다른 텍스트, 다른 레지스트리 형식(REG_QWORD, REG_EXPAND_SZ, REG_BINARY), OwnerSwitches 아래의 알 수 없는 이름은 적용되지 않으며, Maxiful 설정의 조직에서 설정함 아래에 표시돼요. Windows에서는 HKLM과 HKCU 모두 정책 키와 하위 키 아래의 모든 값에 이 규칙이 적용돼요.
Windows
Maxiful은 HKLM\SOFTWARE\Policies\Maxiful을 읽은 다음 HKCU\SOFTWARE\Policies\Maxiful을 읽어요. 같은 값이 둘 다 있으면 HKLM의 값이 HKCU의 값보다 우선해요. Workspace는 REG_SZ, AutoUpdate는 REG_DWORD이고, 각 소유자 스위치는 OwnerSwitches 하위 키 아래에 표의 이름으로 된 REG_DWORD예요. 아래 ADMX 및 ADML 파일은 정확히 이 값들을 써요. 정책 정의 저장소에 maxiful.admx와 en-US\maxiful.adml로 저장하거나, Intune의 가져온 관리 템플릿(Imported Administrative templates)으로 추가하세요.
maxiful.admx
<?xml version="1.0" encoding="utf-8"?>
<policyDefinitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="1.0" schemaVersion="1.0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<policyNamespaces>
<target prefix="maxiful" namespace="Maxiful.Policies" />
</policyNamespaces>
<resources minRequiredRevision="1.0" />
<supportedOn>
<definitions>
<definition name="SUPPORTED_Maxiful" displayName="$(string.SUPPORTED_Maxiful)" />
</definitions>
</supportedOn>
<categories>
<category name="Maxiful" displayName="$(string.Maxiful)" />
<category name="OwnerSwitches" displayName="$(string.OwnerSwitches)">
<parentCategory ref="Maxiful" />
</category>
</categories>
<policies>
<policy name="Workspace" class="Both" displayName="$(string.Workspace)" explainText="$(string.Workspace_Explain)" presentation="$(presentation.Workspace)" key="SOFTWARE\Policies\Maxiful">
<parentCategory ref="Maxiful" />
<supportedOn ref="SUPPORTED_Maxiful" />
<elements>
<text id="Workspace" valueName="Workspace" maxLength="128" required="true" />
</elements>
</policy>
<policy name="AutoUpdate" class="Both" displayName="$(string.AutoUpdate)" explainText="$(string.AutoUpdate_Explain)" key="SOFTWARE\Policies\Maxiful" valueName="AutoUpdate">
<parentCategory ref="Maxiful" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_PrivateNetwork" class="Both" displayName="$(string.OwnerSwitch_PrivateNetwork)" explainText="$(string.OwnerSwitch_PrivateNetwork_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="private-network">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_PaneReach" class="Both" displayName="$(string.OwnerSwitch_PaneReach)" explainText="$(string.OwnerSwitch_PaneReach_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="pane-reach">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_ClaudeCodeBackground" class="Both" displayName="$(string.OwnerSwitch_ClaudeCodeBackground)" explainText="$(string.OwnerSwitch_ClaudeCodeBackground_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="claude-code-background">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_SessionReach" class="Both" displayName="$(string.OwnerSwitch_SessionReach)" explainText="$(string.OwnerSwitch_SessionReach_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="session-reach">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_ModelCosts" class="Both" displayName="$(string.OwnerSwitch_ModelCosts)" explainText="$(string.OwnerSwitch_ModelCosts_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="model-costs">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_NextPrompt" class="Both" displayName="$(string.OwnerSwitch_NextPrompt)" explainText="$(string.OwnerSwitch_NextPrompt_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="next-prompt">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_CheckinWholeConversation" class="Both" displayName="$(string.OwnerSwitch_CheckinWholeConversation)" explainText="$(string.OwnerSwitch_CheckinWholeConversation_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="checkin-whole-conversation">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_VoiceNotes" class="Both" displayName="$(string.OwnerSwitch_VoiceNotes)" explainText="$(string.OwnerSwitch_VoiceNotes_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="voice-notes">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
</policies>
</policyDefinitions>
en-US\maxiful.adml
<?xml version="1.0" encoding="utf-8"?>
<policyDefinitionResources xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="1.0" schemaVersion="1.0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<displayName>Maxiful</displayName>
<description>The settings an IT department sets for Maxiful.</description>
<resources>
<stringTable>
<string id="Maxiful">Maxiful</string>
<string id="OwnerSwitches">The owner's switches</string>
<string id="SUPPORTED_Maxiful">Maxiful for Windows</string>
<string id="Workspace">Open only this workspace</string>
<string id="Workspace_Explain">Maxiful on this computer opens only the workspace with this ID. The workspace's owner finds the ID in Maxiful's settings, under Access. A person who is not a member of the workspace is asked to join it by invitation, and no other workspace opens on this computer.</string>
<string id="AutoUpdate">Let Maxiful update itself</string>
<string id="AutoUpdate_Explain">Disabled: Maxiful does not look for, download or install updates, and you install each new version yourself. Enabled or not configured: Maxiful updates itself.</string>
<string id="OwnerSwitch_PrivateNetwork">Let assistants open pages on this computer and my network</string>
<string id="OwnerSwitch_PrivateNetwork_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Access.</string>
<string id="OwnerSwitch_PaneReach">Let assistants' panes run code and reach outside Maxiful</string>
<string id="OwnerSwitch_PaneReach_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Access.</string>
<string id="OwnerSwitch_ClaudeCodeBackground">Let Claude Code keep long commands running in the background</string>
<string id="OwnerSwitch_ClaudeCodeBackground_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Access.</string>
<string id="OwnerSwitch_SessionReach">Assistants can look through all conversations on this computer (so they learn from past work)</string>
<string id="OwnerSwitch_SessionReach_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Access.</string>
<string id="OwnerSwitch_ModelCosts">Show model costs in dollars</string>
<string id="OwnerSwitch_ModelCosts_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Advanced.</string>
<string id="OwnerSwitch_NextPrompt">Suggest my next message</string>
<string id="OwnerSwitch_NextPrompt_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Advanced.</string>
<string id="OwnerSwitch_CheckinWholeConversation">Check-ins read the whole conversation</string>
<string id="OwnerSwitch_CheckinWholeConversation_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Advanced.</string>
<string id="OwnerSwitch_VoiceNotes">Transcribe voice notes</string>
<string id="OwnerSwitch_VoiceNotes_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Voice and audio.</string>
</stringTable>
<presentationTable>
<presentation id="Workspace">
<textBox refId="Workspace">
<label>Workspace ID</label>
</textBox>
</presentation>
</presentationTable>
</resources>
</policyDefinitionResources>
Mac
Maxiful은 자체 도메인 ai.maxiful.desktop의 관리형 환경설정을 읽어요. 구성 프로파일이 이를 강제 설정으로 설치해요(Apple의 관리형 환경설정 페이로드 com.apple.ManagedClient.preferences). 프로파일이 지정한 값만 유효하며, defaults write 등 다른 방법으로 쓴 값은 읽지 않아요. Workspace는 문자열, AutoUpdate는 정수(또는 부울), OwnerSwitches는 표의 이름으로 된 사전이에요. 아래 예시 프로파일은 컴퓨터를 한 워크스페이스로 제한하고, 업데이트를 직접 관리하도록 하며, 터미널과 사설 네트워크 스위치를 끄고 모델 비용을 표시해요. 워크스페이스 ID와 식별자, UUID는 직접 사용하는 값으로 바꾸세요.
maxiful.mobileconfig
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadType</key><string>Configuration</string>
<key>PayloadVersion</key><integer>1</integer>
<key>PayloadIdentifier</key><string>com.example.maxiful</string>
<key>PayloadUUID</key><string>00000000-0000-0000-0000-000000000001</string>
<key>PayloadDisplayName</key><string>Maxiful</string>
<key>PayloadScope</key><string>System</string>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadType</key><string>com.apple.ManagedClient.preferences</string>
<key>PayloadVersion</key><integer>1</integer>
<key>PayloadIdentifier</key><string>com.example.maxiful.settings</string>
<key>PayloadUUID</key><string>00000000-0000-0000-0000-000000000002</string>
<key>PayloadDisplayName</key><string>Maxiful settings</string>
<key>PayloadContent</key>
<dict>
<key>ai.maxiful.desktop</key>
<dict>
<key>Forced</key>
<array>
<dict>
<key>mcx_preference_settings</key>
<dict>
<key>Workspace</key><string>YOUR-WORKSPACE-ID</string>
<key>AutoUpdate</key><integer>0</integer>
<key>OwnerSwitches</key>
<dict>
<key>terminal</key><false/>
<key>private-network</key><false/>
<key>model-costs</key><true/>
</dict>
</dict>
</dict>
</array>
</dict>
</dict>
</dict>
</array>
</dict>
</plist>
업데이트
Maxiful은 시작할 때와 6시간마다 maxiful.ai에서 새 버전을 확인해요. 사용자는 업데이트 후 다시 시작 또는 나중에를 선택해요. 새 Maxiful 버전에 새 OpenClaw 런타임이 포함될 수 있으며, 이 경우 Maxiful이 해당 사용자의 런타임을 npm으로 registry.npmjs.org에서 업데이트해요.
Windows나 Mac에서 새 버전을 모두 직접 설치하고 Maxiful이 업데이트를 확인하지 않게 하려면 AutoUpdate를 0으로 설정하세요(관리형 설정 참고). 그러면 Maxiful에 조직에서 업데이트를 설치한다고 표시돼요.
Windows
새 버전은 서명된 설치 프로그램으로, 실행 전에 앱에 내장된 키로 검증되며 업데이트는 설치 프로그램을 패시브 모드로 실행해요. 위에서처럼 /S로 새 설치 프로그램을 직접 배포할 수도 있어요.
Mac
새 버전은 서명된 앱 아카이브로, 사용 전에 앱에 내장된 키로 검증되며, 사용자 계정이 앱 사본을 변경할 수 있는 경우 그 자리에서 앱을 교체해요.
사용자가 변경할 수 없는 사본. /Applications/Maxiful.app이 시스템 소유(소유자 root)이고 사용자 계정이 변경할 수 없으면 Maxiful은 스스로 업데이트하지 않아요. 아무것도 다운로드하지 않고, 관리자 암호를 묻지 않으며, 업데이트 후 다시 시작을 표시하지 않아요. 대신 업데이트 표시 위치에 새 버전이 있으며 이 Mac의 업데이트는 조직에서 설치한다고 안내해요. 새 버전은 MDM으로 배포하세요. Intune에서는 디스크 이미지를 같은 앱에 업로드하고, Jamf Pro에서는 Composer로 패키지를 만들어 위와 같이 배포해요. 관리자 계정이 변경할 수 있는 사본은 일반 Mac에서처럼 그 계정에서 스스로 업데이트돼요.
Maxiful 제거하기
사용자가 직접 전부 삭제: Maxiful 설정에서 이 컴퓨터에서 Maxiful 삭제를 선택해요. 백그라운드 프로세스와 로그인할 때 이를 시작하는 항목(Windows에서는 예약된 작업, Mac에서는 LaunchAgent)을 중지하고, 설치의 데이터와 자격 증명을 삭제해요. Maxiful이 설치한 Node.js 런타임도 컴퓨터의 다른 설치가 사용하고 있지 않으면 제거해요. 그런 다음 Windows에서는 Maxiful이 종료될 때 제거 프로그램을 시작하고, Mac에서는 사용자 계정에 권한이 있으면 앱을 휴지통으로 옮겨요. 사용자의 문서는 건드리지 않아요.
Windows에서
자동으로 전부 삭제: %LOCALAPPDATA%\Maxiful\uninstall.exe /S /REMOVEALL을 실행하면 화면 앞에 아무도 없어도 해당 설치의 사용자에 대해 이 컴퓨터에서 Maxiful 삭제를 실행한 뒤 앱을 제거해요. 되돌릴 수 없어요. 무엇을 제거했는지, 제거하지 못한 항목이 있는지는 %LOCALAPPDATA%\ai.maxiful.desktop\logs의 removal-report.json에서 확인할 수 있어요.
/REMOVEALL 없이: 위의 Intune 절차에서 실행하는 %LOCALAPPDATA%\Maxiful\uninstall.exe /S는 앱, 바로 가기, 팀 유지 작업, Maxiful이 추가한 Defender 제외 항목을 제거해요(Windows가 이 항목들에 대해 확인 메시지를 다시 표시할 수 있어요). 어시스턴트의 백그라운드 프로세스도 중지하고 로그인할 때 이를 시작하는 항목을 제거하지만, 런타임과 설치의 데이터는 그대로 둬요. 실행 중인 항목이 남았는지는 앱의 다른 로그와 같은 위치에 있는 installer.log에서 확인할 수 있어요.
Mac에서
먼저 사용자마다 이 컴퓨터에서 Maxiful 삭제를 실행하세요. 앱만 제거하면 해당 사용자의 백그라운드 게이트웨이가 보관한 모든 데이터를 가진 채 계속 실행돼요. 그런 다음 MDM으로 /Applications/Maxiful.app을 제거하세요. 예를 들어 Intune의 Uninstall 할당을 사용할 수 있어요.