Choose accounts with the least privilege, split jobs, set schedules and timeouts, and classify warnings in your monitoring.
Ports, permissions and common issues are described on the page of each scan
module. Accounts, splitting jobs, schedules, timeouts and warnings in monitoring
concern all scan modules alike.
Use a separate account per purpose, with exactly the rights the scan module
needs:
Scan module
What is enough
Active Directory
a domain user, as long as Active Directory has a standard configuration; domain administrator only for the configuration partition and BitLocker keys, or a delegation for these
Windows DHCP
local administrator on the DHCP servers
Nutanix
a user without a role—this results in view permission
VMware
role ReadOnly
Proxmox
read rights on the cluster, user with realm
Storage
role Browse
Cisco Meraki
API key with organization-wide read rights
Oracle Database
CREATE SESSION and SELECT ANY DICTIONARY
Microsoft SQL Server
without sysadmin, a restricted scan
Microsoft 365, Microsoft Intune
Global Administrator only to create the app; the app only reads
Linux
a user with sudo for exactly the commands from gensudo.sh, instead of root
Linux without root: Use sudo with the rule from gensudo.sh, or sign
in with a private key. The user needs a login shell.
The gateway’s service account:Active Directory, Windows (AD),
Windows DNS, Windows DHCP, DFS, Microsoft SQL Server and Hyper-V can
run without their own credentials under the gateway’s service account. That
account then needs the rights. If the gateway runs under the local system
account, it cannot reach shares; the folder for File Import must then be
local.
No MFA for service accounts that scan, such as with Veeam B&R. Where MFA
must stay, scan by script under the local system account.
User Account Control: A local administrator account other than the built-in
Administrator does not get full rights remotely. Use a domain account or set
LocalAccountTokenFilterPolicy—see
Scanning Windows.
Domain accounts are entered with the domain: DOMAIN\user or
user@domain.internal.
With the scan scripts that take -u and -p—Discovery-ActiveDirectory.exe,
Discovery-Nutanix.exe, Discovery-Proxmox.exe, Discovery-HPE.exe—the password
stands in plain text on the command line, and therefore in the scheduled task or
the calling script. Use a dedicated user with read rights only, and protect the
scheduled task or script from access by others. For Active Directory, use
integrated sign-in where possible and omit -u and -p.
If personal data from Active Directory does not belong in Docusnap365, call
Discovery-ActiveDirectory.exe with -noPersonalData.
Large Windows environments: From about 750 Windows systems, more than one
recurring Windows (AD) job can pay off—such as one for servers and domain
controllers and one for workstations, or one per site. In the Scan Scope step,
Restrict selection… narrows the systems, with a text filter and Servers
Only.
Sites and isolated networks: Set up a separate gateway per site or VLAN. The
local gateway scans the local network; ARP, and with it MAC addresses, is only
available within the gateway’s own subnet.
Isolated servers, such as backup servers: Install a gateway on the server
itself, or scan by script.
Scan script in addition to scanning through the gateway: In environments
from about 750 workstations, run Discovery-Windows.exe in parallel through
Group Policy or software distribution.
DFS is better scanned by script on the namespace servers. Scanning through
the gateway has limits there (double hop, replication status).
Windows as a recurring job, such as on weekdays. A recurring Windows job
almost always ends with errors because individual systems are switched off.
Review the errors per system regularly nonetheless.
Scan scripts on servers run weekly, such as on Sunday;
Discovery-Windows.exe on workstations weekly or more often.
Scan switches at peak times. Switches forget learned MAC addresses of
inactive devices; the port assignment is complete only while the devices are
running.
The File Import job runs after the scan scripts so that it finds fresh
results. It reads all result files in the folder.
The File Import job deletes the result files after reading them. To keep copies,
use the script’s -a parameter in the script’s output directory, not in the
import folder.
Results of scheduled jobs appear in the inventory only with the next data
refresh: every 24 hours in Pro, every 12 in Business, every 6 in Enterprise. A job
with Run Immediately transfers its result at once.
SNMP:Timeout (ms) applies per target and defaults to 2600. Cisco devices
sometimes respond late. If the scan does not find all devices, increase the
value.
Windows over slow links: Scanning one Windows system is limited to 10
minutes. If that is not enough over a slow link, place the gateway closer to the
systems or scan the system by script.
IP scan: An IP scan triggers warnings—through the volume of ICMP requests and
through deliberately invalid packets whose responses NMAP uses to detect the
operating system. The warnings do not indicate a scan error.
SNMP scan: An SNMP scan also triggers warnings, through the volume of
requests.
Flooding protection and intrusion protection can drop requests. If a whole
address range finds fewer systems than the individual addresses, this is usually
the cause. Set up an exception for the gateway.
SNMP devices: Allow the gateway’s machine in the access list of the SNMP
devices; otherwise they do not respond.
Npcap: The driver for the IP scan hooks into the network stack and can
conflict with Wireshark or PRTG. Where possible, do not install the gateway on a
domain controller or Exchange server.
Set the storage directory. The gateway places the scan scripts there and
replaces them as soon as a scan module brings a new version. Scheduled tasks that
start the scan script from this directory therefore always use the current
version.
Replace copies elsewhere manually after an update, such as in the OneDrive
folder or on Linux systems.
Run gensudo.sh again when the Linux script changes. The command list can
grow.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Docusnap365","description":"Official documentation for Docusnap365: scan your network, build your IT inventory, manage IT assets and costs, run your ISMS and connect AI tools via MCP and API.","colors":{"primary":"#0F7683","light":"#38BECF","dark":"#0F7683"},"logo":{"light":"https://mintcdn.com/docusnap/w7DSWRB4BRB49qQA/images/Docusnap_Logo.svg?fit=max\u0026auto=format\u0026n=w7DSWRB4BRB49qQA\u0026q=85\u0026s=30ba3056aa591cff3faf8c4addf943c0","dark":"https://mintcdn.com/docusnap/w7DSWRB4BRB49qQA/images/Docusnap_Logo_white.svg?fit=max\u0026auto=format\u0026n=w7DSWRB4BRB49qQA\u0026q=85\u0026s=9325dcb387db7939baab29338fddf607","href":"https://www.docusnap.com"},"favicon":"https://mintcdn.com/docusnap/8cT_v1WiPR-atVd2/favicon.svg?fit=max\u0026auto=format\u0026n=8cT_v1WiPR-atVd2\u0026q=85\u0026s=9bb2a8c996b466e0a76f375054191f52","footer":{"socials":{"website":"https://www.docusnap.com"}},"contextual":{"options":["chatgpt","claude","download-pdf"],"display":"header"},"styling":{"latex":false},"navigation":{"languages":[{"language":"de","navbar":{"links":[{"href":"https://docusnap365.com","label":"Anmelden"}],"primary":{"type":"button","label":"Kostenlos testen","href":"https://www.docusnap.com/de/trial?utm_source=docs\u0026utm_medium=navbar\u0026utm_campaign=trial"}},"href":"de/getting-started/overview"},{"language":"en","default":true,"navbar":{"links":[{"href":"https://docusnap365.com","label":"Sign In"}],"primary":{"type":"button","label":"Try for Free","href":"https://www.docusnap.com/en/trial?utm_source=docs\u0026utm_medium=navbar\u0026utm_campaign=trial"}},"href":"en/getting-started/overview"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"docusnap","hasAudioNarration":false,"actualSubdomain":"docusnap","customDomains":["www.docusnap.com"],"gitSource":{"type":"github","owner":"docusnap","repo":"ds365.customerdocs","deployBranch":"master","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ae2d902cfbb62297b6a7203","collectionId":"66940dc1-0a1e-4900-bf80-ed161863c25c","liveDeploymentHistoryId":"6ae2d902cfbb62297b6a7203","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae2d902cfbb62297b6a7203","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"de","tag":"Scannen","count":39},{"language":"en","tag":"Scanning","count":39},{"language":"de","tag":"Scan-Module","count":25},{"language":"en","tag":"Scan Modules","count":25},{"language":"de","tag":"Inventar","count":18},{"language":"en","tag":"Inventory","count":18},{"language":"de","tag":"Verwaltung","count":17},{"language":"en","tag":"Administration","count":17},{"language":"de","tag":"ISMS","count":14},{"language":"en","tag":"ISMS","count":14},{"language":"de","tag":"ITAM","count":12},{"language":"en","tag":"ITAM","count":12},{"language":"de","tag":"Tutorials","count":11},{"language":"de","tag":"Dokumentation","count":11},{"language":"en","tag":"Tutorials","count":11},{"language":"en","tag":"Documentation","count":11},{"language":"de","tag":"MCP \u0026 API","count":10},{"language":"de","tag":"Assets","count":10},{"language":"en","tag":"MCP \u0026 API","count":10},{"language":"en","tag":"Assets","count":10}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":false}},"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#topbar-cta-button a>span:first-child{background-color:#9f6d06!important;opacity:1!important}#topbar-cta-button a,#topbar-cta-button a span{color:#fff!important}#topbar-cta-button a svg{display:none!important}#topbar-cta-button a{padding-right:.75rem!important}#topbar-cta-button a:focus-visible span,#topbar-cta-button a:hover span{text-decoration:underline;text-underline-offset:2px}"}],"page":{"pagePath":"en/scan/best-practices","slug":"/en/scan/best-practices","pageMetadata":{"title":"Scanning Best Practices","sidebarTitle":"Best Practices","description":"Choose accounts with the least privilege, split jobs, set schedules and timeouts, and classify warnings in your monitoring.","source":"curated/scan/best-practices.md @ 857f573","href":"/en/scan/best-practices"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Choose accounts with the least privilege, split jobs, set schedules and timeouts, and classify warnings in your monitoring.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Table,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Ports, permissions and common issues are described on the page of each scan\nmodule. Accounts, splitting jobs, schedules, timeouts and warnings in monitoring\nconcern all scan modules alike.`}),`\n`,_jsx(Heading,{level:`2`,id:`accounts-and-permissions`,children:`Accounts and permissions`}),`\n`,_jsx(_components.p,{children:`Use a separate account per purpose, with exactly the rights the scan module\nneeds:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Scan module`}),_jsx(_components.th,{children:`What is enough`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.em,{children:`Active Directory`})}),_jsx(_components.td,{children:`a domain user, as long as Active Directory has a standard configuration; domain administrator only for the configuration partition and BitLocker keys, or a delegation for these`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.em,{children:`Windows DHCP`})}),_jsx(_components.td,{children:`local administrator on the DHCP servers`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.em,{children:`Nutanix`})}),_jsx(_components.td,{children:`a user without a role—this results in view permission`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.em,{children:`VMware`})}),_jsx(_components.td,{children:`role ReadOnly`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.em,{children:`Proxmox`})}),_jsx(_components.td,{children:`read rights on the cluster, user with realm`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.em,{children:`Storage`})}),_jsx(_components.td,{children:`role Browse`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.em,{children:`Cisco Meraki`})}),_jsx(_components.td,{children:`API key with organization-wide read rights`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.em,{children:`Oracle Database`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`CREATE SESSION`}),` and `,_jsx(_components.code,{children:`SELECT ANY DICTIONARY`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.em,{children:`Microsoft SQL Server`})}),_jsx(_components.td,{children:`without sysadmin, a restricted scan`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.em,{children:`Microsoft 365`}),`, `,_jsx(_components.em,{children:`Microsoft Intune`})]}),_jsx(_components.td,{children:`Global Administrator only to create the app; the app only reads`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.em,{children:`Linux`})}),_jsxs(_components.td,{children:[`a user with `,_jsx(_components.code,{children:`sudo`}),` for exactly the commands from `,_jsx(_components.code,{children:`gensudo.sh`}),`, instead of `,_jsx(_components.code,{children:`root`})]})]})]})]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Linux without `,_jsx(_components.code,{children:`root`}),`:`]}),` Use `,_jsx(_components.code,{children:`sudo`}),` with the rule from `,_jsx(_components.code,{children:`gensudo.sh`}),`, or sign\nin with a private key. The user needs a login shell.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`The gateway’s service account:`}),` `,_jsx(_components.em,{children:`Active Directory`}),`, `,_jsx(_components.em,{children:`Windows (AD)`}),`,\n`,_jsx(_components.em,{children:`Windows DNS`}),`, `,_jsx(_components.em,{children:`Windows DHCP`}),`, `,_jsx(_components.em,{children:`DFS`}),`, `,_jsx(_components.em,{children:`Microsoft SQL Server`}),` and `,_jsx(_components.em,{children:`Hyper-V`}),` can\nrun without their own credentials under the gateway’s service account. That\naccount then needs the rights. If the gateway runs under the local system\naccount, it cannot reach shares; the folder for `,_jsx(_components.em,{children:`File Import`}),` must then be\nlocal.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`No MFA for service accounts that scan`}),`, such as with `,_jsx(_components.em,{children:`Veeam B\u0026R`}),`. Where MFA\nmust stay, scan by script under the local system account.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`User Account Control:`}),` A local administrator account other than the built-in\nAdministrator does not get full rights remotely. Use a domain account or set\n`,_jsx(_components.code,{children:`LocalAccountTokenFilterPolicy`}),`—see\n`,_jsx(_components.a,{href:`/en/scan/windows#common-issues`,children:`Scanning Windows`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Domain accounts`}),` are entered with the domain: `,_jsx(_components.code,{children:`DOMAIN\\\\user`}),` or\n`,_jsx(_components.code,{children:`user@domain.internal`}),`.`]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`With the scan scripts that take `,_jsx(_components.code,{children:`-u`}),` and `,_jsx(_components.code,{children:`-p`}),`—`,_jsx(_components.code,{children:`Discovery-ActiveDirectory.exe`}),`,\n`,_jsx(_components.code,{children:`Discovery-Nutanix.exe`}),`, `,_jsx(_components.code,{children:`Discovery-Proxmox.exe`}),`, `,_jsx(_components.code,{children:`Discovery-HPE.exe`}),`—the password\nstands in plain text on the command line, and therefore in the scheduled task or\nthe calling script. Use a dedicated user with read rights only, and protect the\nscheduled task or script from access by others. For `,_jsx(_components.em,{children:`Active Directory`}),`, use\nintegrated sign-in where possible and omit `,_jsx(_components.code,{children:`-u`}),` and `,_jsx(_components.code,{children:`-p`}),`.`]})}),`\n`,_jsxs(_components.p,{children:[`If personal data from Active Directory does not belong in Docusnap365, call\n`,_jsx(_components.code,{children:`Discovery-ActiveDirectory.exe`}),` with `,_jsx(_components.code,{children:`-noPersonalData`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`splitting-jobs`,children:`Splitting jobs`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Large Windows environments:`}),` From about 750 Windows systems, more than one\nrecurring `,_jsx(_components.em,{children:`Windows (AD)`}),` job can pay off—such as one for servers and domain\ncontrollers and one for workstations, or one per site. In the `,_jsx(_components.em,{children:`Scan Scope`}),` step,\n`,_jsx(_components.em,{children:`Restrict selection…`}),` narrows the systems, with a text filter and `,_jsx(_components.em,{children:`Servers\nOnly`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Sites and isolated networks:`}),` Set up a separate gateway per site or VLAN. The\nlocal gateway scans the local network; ARP, and with it MAC addresses, is only\navailable within the gateway’s own subnet.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Isolated servers`}),`, such as backup servers: Install a gateway on the server\nitself, or scan by script.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Scan script in addition to scanning through the gateway:`}),` In environments\nfrom about 750 workstations, run `,_jsx(_components.code,{children:`Discovery-Windows.exe`}),` in parallel through\nGroup Policy or software distribution.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`DFS`}),` is better scanned by script on the namespace servers. Scanning through\nthe gateway has limits there (double hop, replication status).`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`schedules`,children:`Schedules`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Windows as a recurring job`}),`, such as on weekdays. A recurring Windows job\nalmost always ends with errors because individual systems are switched off.\nReview the errors per system regularly nonetheless.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Scan scripts on servers`}),` run weekly, such as on Sunday;\n`,_jsx(_components.code,{children:`Discovery-Windows.exe`}),` on workstations weekly or more often.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Scan switches at peak times.`}),` Switches forget learned MAC addresses of\ninactive devices; the port assignment is complete only while the devices are\nrunning.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`The File Import job`}),` runs after the scan scripts so that it finds fresh\nresults. It reads all result files in the folder.`]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`The File Import job deletes the result files after reading them. To keep copies,\nuse the script’s `,_jsx(_components.code,{children:`-a`}),` parameter in the script’s output directory, not in the\nimport folder.`]})}),`\n`,_jsxs(_components.p,{children:[`Results of scheduled jobs appear in the inventory only with the next data\nrefresh: every 24 hours in Pro, every 12 in Business, every 6 in Enterprise. A job\nwith `,_jsx(_components.em,{children:`Run Immediately`}),` transfers its result at once.`]}),`\n`,_jsx(Heading,{level:`2`,id:`timeouts`,children:`Timeouts`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`SNMP:`}),` `,_jsx(_components.em,{children:`Timeout (ms)`}),` applies per target and defaults to 2600. Cisco devices\nsometimes respond late. If the scan does not find all devices, increase the\nvalue.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Windows over slow links:`}),` Scanning one Windows system is limited to 10\nminutes. If that is not enough over a slow link, place the gateway closer to the\nsystems or scan the system by script.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`warnings-in-monitoring`,children:`Warnings in monitoring`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`IP scan:`}),` An IP scan triggers warnings—through the volume of ICMP requests and\nthrough deliberately invalid packets whose responses NMAP uses to detect the\noperating system. The warnings do not indicate a scan error.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`SNMP scan:`}),` An SNMP scan also triggers warnings, through the volume of\nrequests.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Flooding protection and intrusion protection`}),` can drop requests. If a whole\naddress range finds fewer systems than the individual addresses, this is usually\nthe cause. Set up an exception for the gateway.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`SNMP devices:`}),` Allow the gateway’s machine in the access list of the SNMP\ndevices; otherwise they do not respond.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Npcap:`}),` The driver for the IP scan hooks into the network stack and can\nconflict with Wireshark or PRTG. Where possible, do not install the gateway on a\ndomain controller or Exchange server.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`keeping-scan-scripts-current`,children:`Keeping scan scripts current`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Set the storage directory.`}),` The gateway places the scan scripts there and\nreplaces them as soon as a scan module brings a new version. Scheduled tasks that\nstart the scan script from this directory therefore always use the current\nversion.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Replace copies elsewhere`}),` manually after an update, such as in the OneDrive\nfolder or on Linux systems.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Run `,_jsx(_components.code,{children:`gensudo.sh`}),` again`]}),` when the Linux script changes. The command list can\ngrow.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`related`,children:`Related`}),`\n`,_jsxs(_components.p,{children:[`How to distribute scan scripts and read in their results is described in\n`,_jsx(_components.a,{href:`/en/scan/scan-by-script`,children:`Scanning by Script`}),`. Ports, permissions and common\nissues per scan module are covered in pages such as\n`,_jsx(_components.a,{href:`/en/scan/windows`,children:`Scanning Windows`}),`,\n`,_jsx(_components.a,{href:`/en/scan/active-directory`,children:`Scanning Active Directory`}),` and\n`,_jsx(_components.a,{href:`/en/scan/snmp`,children:`Scanning the Network over SNMP`}),`. The data refresh per edition is\ndescribed in `,_jsx(_components.a,{href:`/en/settings/editions`,children:`Editions and What They Include`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Scanning Best Practices","sidebarTitle":"Best Practices","description":"Choose accounts with the least privilege, split jobs, set schedules and timeouts, and classify warnings in your monitoring.","source":"curated/scan/best-practices.md @ 857f573","href":"/en/scan/best-practices"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Accounts and permissions","slug":"accounts-and-permissions","depth":2,"children":[]},{"title":"Splitting jobs","slug":"splitting-jobs","depth":2,"children":[]},{"title":"Schedules","slug":"schedules","depth":2,"children":[]},{"title":"Timeouts","slug":"timeouts","depth":2,"children":[]},{"title":"Warnings in monitoring","slug":"warnings-in-monitoring","depth":2,"children":[]},{"title":"Keeping scan scripts current","slug":"keeping-scan-scripts-current","depth":2,"children":[]},{"title":"Related","slug":"related","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"docusnap","siteName":"Docusnap365","title":"Scanning Best Practices - Docusnap365","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"de":{"href":"/de/scan/best-practices","matchLevel":1},"en":{"href":"/en/scan/best-practices","matchLevel":0}}},"lastModified":"2026-10-10T13:51:02.306Z","originalFileLocation":"en/scan/best-practices.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Choose accounts with the least privilege, split jobs, set schedules and timeouts, and classify warnings in your monitoring.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Docusnap365\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/docusnap/H7rYqvu3TO3yj0a1/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/docusnap/H7rYqvu3TO3yj0a1/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/docusnap/H7rYqvu3TO3yj0a1/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/docusnap/H7rYqvu3TO3yj0a1/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/docusnap/H7rYqvu3TO3yj0a1/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/docusnap/H7rYqvu3TO3yj0a1/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/docusnap/H7rYqvu3TO3yj0a1/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/docusnap/H7rYqvu3TO3yj0a1/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/docusnap/H7rYqvu3TO3yj0a1/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Scanning Best Practices - Docusnap365\">\u003cmeta data-mint-head property=\"og:description\" content=\"Choose accounts with the least privilege, split jobs, set schedules and timeouts, and classify warnings in your monitoring.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Docusnap365\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://www.docusnap.com/docs/en/scan/best-practices\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://docusnap.mintlify.app/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Scanning+Best+Practices\u0026amp;description=Choose+accounts+with+the+least+privilege%2C+split+jobs%2C+set+schedules+and+timeouts%2C+and+classify+warnings+in+your+monitoring.\u0026amp;theme=273043867ea3a68a882985a0\u0026amp;signature=9ae61fea3b78a113853983bcdd3f9977904487fb501c19a83f4381786c1f538d\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Scanning Best Practices - Docusnap365\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Choose accounts with the least privilege, split jobs, set schedules and timeouts, and classify warnings in your monitoring.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://docusnap.mintlify.app/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Scanning+Best+Practices\u0026amp;description=Choose+accounts+with+the+least+privilege%2C+split+jobs%2C+set+schedules+and+timeouts%2C+and+classify+warnings+in+your+monitoring.\u0026amp;theme=273043867ea3a68a882985a0\u0026amp;signature=9ae61fea3b78a113853983bcdd3f9977904487fb501c19a83f4381786c1f538d\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/docusnap/H7rYqvu3TO3yj0a1/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Docusnap365\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0F7683\">\u003clink data-mint-head rel=\"canonical\" href=\"https://www.docusnap.com/docs/en/scan/best-practices\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/en/scan/best-practices.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://www.docusnap.com/docs/en/scan/best-practices\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://www.docusnap.com/docs/de/scan/best-practices\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://www.docusnap.com/docs/en/scan/best-practices\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.docusnap.com/#organization\",\"name\":\"Docusnap365\",\"url\":\"https://www.docusnap.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/docusnap/w7DSWRB4BRB49qQA/images/Docusnap_Logo.svg?fit=max\u0026auto=format\u0026n=w7DSWRB4BRB49qQA\u0026q=85\u0026s=30ba3056aa591cff3faf8c4addf943c0\"}},{\"@type\":\"WebSite\",\"@id\":\"https://www.docusnap.com/docs#website\",\"name\":\"Docusnap365\",\"url\":\"https://www.docusnap.com/docs\",\"publisher\":{\"@id\":\"https://www.docusnap.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://www.docusnap.com/docs/en/scan/best-practices#webpage\",\"url\":\"https://www.docusnap.com/docs/en/scan/best-practices\",\"name\":\"Scanning Best Practices\",\"description\":\"Choose accounts with the least privilege, split jobs, set schedules and timeouts, and classify warnings in your monitoring.\",\"dateModified\":\"2026-10-10T13:51:02.306Z\",\"isPartOf\":{\"@id\":\"https://www.docusnap.com/docs#website\"}},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://www.docusnap.com/docs/en/scan/best-practices#article\",\"headline\":\"Scanning Best Practices\",\"name\":\"Scanning Best Practices\",\"description\":\"Choose accounts with the least privilege, split jobs, set schedules and timeouts, and classify warnings in your monitoring.\",\"url\":\"https://www.docusnap.com/docs/en/scan/best-practices\",\"mainEntityOfPage\":{\"@id\":\"https://www.docusnap.com/docs/en/scan/best-practices#webpage\"},\"dateModified\":\"2026-10-10T13:51:02.306Z\",\"publisher\":{\"@id\":\"https://www.docusnap.com/#organization\"},\"isPartOf\":{\"@id\":\"https://www.docusnap.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Docusnap365\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Docusnap365","nav":{"global":null,"languages":[{"language":"de","navbar":{"links":[{"href":"https://docusnap365.com","label":"Anmelden"}],"primary":{"type":"button","label":"Kostenlos testen","href":"https://www.docusnap.com/de/trial?utm_source=docs\u0026utm_medium=navbar\u0026utm_campaign=trial"}},"pages":[{"title":"de","href":"/de/scan/best-practices"}]},{"language":"en","default":true,"navbar":{"links":[{"href":"https://docusnap365.com","label":"Sign In"}],"primary":{"type":"button","label":"Try for Free","href":"https://www.docusnap.com/en/trial?utm_source=docs\u0026utm_medium=navbar\u0026utm_campaign=trial"}},"tabs":[{"tab":"Getting Started","pages":[{"title":"Getting Started","href":"/en/getting-started/overview"}]},{"tab":"Scanning","pages":[{"title":"Scanning Fundamentals","sidebarTitle":"Overview","description":"How the gateway, scan modules, jobs and credentials work together, and what happens to the results of a scan.","href":"/en/scan/understanding-scanning"},{"title":"Scanning Best Practices","sidebarTitle":"Best Practices","href":"/en/scan/best-practices"},{"group":"Tutorials","pages":[{"title":"Your First Scan","sidebarTitle":"Your First Scan","description":"From an empty subscription to a typed inventory: install the gateway, create credentials, scan Active Directory and Windows, type unknown systems.","href":"/en/scan/tutorial-first-scan"},{"title":"Storing Credentials Locally","sidebarTitle":"Storing Credentials Locally","href":"/en/scan/tutorial-credentials"}]},{"group":"Docusnap Enterprise Gateway","pages":[{"title":"Installing and Registering the Gateway","sidebarTitle":"Install","href":"/en/scan/gateway-install"},{"title":"Setting the Storage Directory","sidebarTitle":"Storage Directory","href":"/en/scan/gateway-storage-directory"},{"title":"Managing Gateways","sidebarTitle":"Manage","href":"/en/scan/gateway"},{"title":"Reviewing and Exporting Logs","sidebarTitle":"Logs","href":"/en/scan/gateway-logs"}]},{"group":"Jobs","pages":[{"title":"Creating a Scan Job","sidebarTitle":"Create","href":"/en/scan/create-inventory"},{"title":"Managing Jobs","sidebarTitle":"Manage","href":"/en/scan/manage-jobs"},{"title":"Assigning Unknown Systems","sidebarTitle":"Unknown Systems","href":"/en/scan/unknown-systems"}]},{"group":"Without Network Access","pages":[{"title":"Scanning by Script","sidebarTitle":"Scanning by Script","href":"/en/scan/scan-by-script"},{"title":"Reading In Result Files via File Import","sidebarTitle":"File Import","href":"/en/scan/file-import"}]},{"group":"Scan Modules","pages":[{"title":"Scan Modules—Overview","sidebarTitle":"Overview","href":"/en/scan/scan-modules"},{"group":"Systems","pages":[{"title":"Scanning Windows","sidebarTitle":"Windows","href":"/en/scan/windows"},{"title":"Scanning Linux","sidebarTitle":"Linux","href":"/en/scan/linux"},{"title":"Scanning macOS","sidebarTitle":"macOS","href":"/en/scan/macos"},{"title":"Scanning Active Directory","sidebarTitle":"Active Directory","href":"/en/scan/active-directory"},{"title":"Scanning Windows DNS","sidebarTitle":"Windows DNS","href":"/en/scan/dns"},{"title":"Scanning Windows DHCP","sidebarTitle":"Windows DHCP","href":"/en/scan/dhcp"},{"title":"Scanning DFS","sidebarTitle":"DFS","href":"/en/scan/dfs"},{"title":"Scanning IP-Hosts","sidebarTitle":"IP-Hosts","href":"/en/scan/ip-hosts"}]},{"group":"Network","pages":[{"title":"Scanning IP Phones","sidebarTitle":"IP Phones","href":"/en/scan/ip-phones"},{"title":"Scanning the Network over SNMP","sidebarTitle":"SNMP","href":"/en/scan/snmp"},{"title":"Scanning Cisco Meraki","sidebarTitle":"Cisco Meraki","href":"/en/scan/cisco-meraki"}]},{"group":"Other","pages":[{"title":"Scanning Veeam B\u0026R","sidebarTitle":"Veeam B\u0026R","href":"/en/scan/veeam"},{"title":"Scanning Microsoft SQL Server","sidebarTitle":"Microsoft SQL Server","href":"/en/scan/sql-server"},{"title":"Scanning MySQL Server","sidebarTitle":"MySQL Server","href":"/en/scan/mysql"},{"title":"Scanning Oracle Database","sidebarTitle":"Oracle Database","href":"/en/scan/oracle"}]},{"group":"Virtualization","pages":[{"title":"Scanning VMware","sidebarTitle":"VMware","href":"/en/scan/vmware"},{"title":"Scanning Hyper-V","sidebarTitle":"Hyper-V","href":"/en/scan/hyper-v"},{"title":"Scanning Nutanix","sidebarTitle":"Nutanix","href":"/en/scan/nutanix"},{"title":"Scanning Proxmox","sidebarTitle":"Proxmox","href":"/en/scan/proxmox"},{"title":"Scanning Xen","sidebarTitle":"Xen","href":"/en/scan/xen"}]},{"group":"Storage","pages":[{"title":"Scanning Storage","sidebarTitle":"Storage","href":"/en/scan/storage"}]},{"group":"Cloud","pages":[{"title":"Scanning Microsoft 365","sidebarTitle":"Microsoft 365","href":"/en/scan/microsoft-365"},{"title":"Scanning Microsoft Intune","sidebarTitle":"Microsoft Intune","href":"/en/scan/microsoft-intune"}]},{"group":"Analysis","pages":[{"title":"Scanning NTFS Security","sidebarTitle":"NTFS Security","href":"/en/scan/ntfs-analysis"}]}]},{"title":"Scan Reference","sidebarTitle":"Scan Reference","href":"/en/scan/reference"}]},{"tab":"Inventory","pages":[{"title":"Inventory","href":"/en/assets/overview"}]},{"tab":"ITAM","pages":[{"title":"ITAM","href":"/en/itam/understanding-itam"}]},{"tab":"ISMS","pages":[{"title":"ISMS","href":"/en/isms/understanding-isms"}]},{"tab":"Documentation","pages":[{"title":"Documentation","href":"/en/documents/overview"}]},{"tab":"Analysis","pages":[{"title":"Analysis","href":"/en/analysis/overview"}]},{"tab":"AI Assistant","pages":[{"title":"AI Assistant","href":"/en/assistant/overview"}]},{"tab":"Administration","pages":[{"title":"Administration","href":"/en/settings/subscription"}]},{"tab":"MCP \u0026 API","pages":[{"title":"MCP \u0026 API","href":"/en/api/mcp"}]},{"tab":"What's new","pages":[{"title":"What's new","href":"/en/changelog"}]}]}]},"title":"Scanning Best Practices - Docusnap365","buildId":"dpl_DGmhKsAzJdVqypJzon18vViniWRY","deploymentId":"dpl_DGmhKsAzJdVqypJzon18vViniWRY","dynamics":[],"chunks":[]}