MSP StockroomFind a guide, template or tool…/
Field guides / Standards and documentation

ST-02 Field guide / Standards and documentation

Evaluate a community script or GPO change before the lab

A field technician finds a script advertised as a way to clean up Group Policy. The next step is not to run it with domain-admin rights. Decide what the proposed tool actually reads or changes, whether you may use its code, and how you would prove a harmless result in a lab.

10 min read / Updated Oct 2026

For Service desk & technicians, Tech lead, Cybersecurity, Automation & AI

On this page

This is a proposed evaluation method using Microsoft documentation retrieved October 7, 2026. No community script was downloaded for execution, no code was redistributed and no Windows domain or GPO was accessed. The lab inputs and outcomes below are fictional test targets, not observed results.

Who owns the evaluation

A technician records the candidate. A tech lead reads its code and dependencies; security checks privilege and baselines. The domain owner authorizes any later lab or change.

The deliverable is a candidate decision and report-only lab plan. Identify domain/GUID, selected settings and one known discrepancy. Exclude link edits, deletion, execution-policy changes and weakened security controls.

Use directories for discovery, not execution authority

Killer Tools is included at the owner's requested directory address, killertools.net. Our unauthenticated public fetch returned a JavaScript application shell with almost no visible text; the available browser could not start. We could not verify its individual script entries, licenses, policy references or executable behavior.[20] Treat it as an unverified directory reference, not a recommendation to run a command or a verified privacy claim.

When an approved browser displays a candidate, record its page, publisher, upstream revision and task. Never paste private configuration or credentials. Verify locality and license claims separately.

Use approved acquisition after provenance review. Never download-and-execute, pipe remote text into a shell or copy policies straight to production. This guide contains no Killer Tools code or redistribution permission.

Establish prerequisites and a meaningful task

Microsoft's GroupPolicy module is for Windows Server or Windows clients with RSAT, including GPMC and the Group Policy cmdlets. It includes GPO reports, resultant-policy reports, backups and restores.[17] Record the installed Windows, PowerShell and module versions in the future lab; documentation for another version is not compatibility evidence. The lab needs an authorized isolated Windows/domain environment, suitable test identities and an approved place for evidence. Do not acquire infrastructure or paid software to follow this guide.

The fictional task is to review one policy, LAB-PRINT-01, by its known lab-domain GUID. The expected report shows its selected printing configuration and flags a difference from the lab's approved printing standard. Another policy, LAB-SECURITY-01, is outside scope and protects the lab security baseline. There are two test machines: one inside the intended test OU and one outside it.

The report needs identity, timestamp, values, scope and a proposed discrepancy. Estate-wide compliance claims fail. This task edits no GPO.

Review provenance, licensing and bytes

Step 1: Name the author or publisher and locate a revisioned upstream source. Record the license and its application to the exact file and dependencies. No license found means use and redistribution remain unresolved, not automatically permitted. Check embedded notices, dependencies and whether the MSP's intended internal or client use is covered. Escalate ambiguity; do not remove attribution to make the file fit a template.

Step 2: Inspect every file without executing it. List network destinations, imported modules, external executables, required parameters, output paths and potential writes. Look for account changes, policy edits, deletion, encoded payloads, security exclusions and credential handling. Reject opaque or unexplained behavior. A report-only description cannot overrule a write found in the code.

Step 3: For an approved local candidate file, record a SHA-256 hash using the documented Get-FileHash inspection command. Microsoft's default is SHA256, and its examples compare computed hashes with publisher-provided values.[16] A recorded hash identifies the reviewed bytes; it does not prove the publisher is trustworthy. Compare against a separately trusted published value where available, not a checksum copied from the same untrusted download.

Step 4: On Windows, inspect signature information using Get-AuthenticodeSignature. Microsoft documents that it reports Authenticode information and is Windows-only.[15] Record status, signer, certificate context and whether the expected publisher matches. A valid signature is not proof that the behavior is safe; an unsigned internal script requires your organization's explicit exception review, not a blanket permission to bypass protections.

Step 5: Freeze the reviewed revision, dependencies and parameter plan. A later upstream update or one-line edit invalidates the byte-level review. Do not claim a SHA-256 value or signature status before actually inspecting the file.

Plan the isolated lab and recovery evidence

Start with ordinary read permissions to the single lab GPO and a restricted report destination. If the candidate requests elevation for a report, require an explanation and test the narrowest permissions first. Never use domain admin as a troubleshooting shortcut. Customer/domain mappings, output folders and identities must remain separate; a report should not be sent to a shared customer folder by default.

Capture a baseline policy report and the two machines' resultant-policy evidence with the appropriate documented reporting facilities.[17] Keep the security policy unchanged. If evaluating a separate proposed GPO edit later, back up the exact target GPO first. Microsoft's Backup-GPO requires the GPO and backup directory to exist and supports GUID identification; display names are not guaranteed unique.[18] Use explicit domain and identity references rather than relying on the session's default domain.

A GPO backup is not a complete domain rollback plan. Record links, link order, inheritance, security filtering, relevant WMI filters and local or preference-side effects separately. A removed link or a changed endpoint setting may need its own recovery. Prove the restore route in the lab before approving changes; a written backup path is not a restore test. The reporting-only candidate should need no policy restore, but still needs a pause and manual-report fallback.

Test before any production decision

The following are proposed lab tests. No row is claimed as passed.

CaseRequired observationPass condition
Known target and discrepancyReport matches manually checked target fieldsAll required values correct; one known finding
Wrong domain or GPOClear error; no fallback to a different targetZero wrong-domain output
Insufficient read rightsVisible access failureZero elevation or security-setting change
Second runSame facts at unchanged baselineZero duplicated external actions
Outside-OU machineRemains outside any proposed policy scopeZero unintended setting changes
Missing dependency or blocked networkStops with actionable failureZero remote download or bypass
Recovery for separately approved editRestored policy and resultant state match baselineAll tested target fields recovered; security baseline unchanged

Observe actual filesystem, network and policy effects in the authorized lab, not merely the script's final success message. Require zero unauthorized writes and zero weakened security controls. If the tool suggests disabling Defender, logging, firewall protections or a baseline to get the test passing, reject that workaround and escalate.

Decide, maintain and assess effort

Reject the candidate if provenance, license, privilege, scope or recovery remains unresolved. For an ordinary report failure, use the native manual reporting route and record the exception. For unexpected writes, isolate the lab, preserve evidence and notify the security reviewer. Production use requires a separate authorized change record; this review is not that authorization.

Recheck hashes/dependencies after revisions and compatibility after platform or standard changes. Name a maintenance and retirement owner.

Compare manual inventory with acquisition review, lab setup, operation, checking, exceptions and upkeep. Credit distinct accurate reports, not policies touched. Keep zero or negative savings; reporting does not establish compliance.

The working discipline

Automate before you hire

Review provenance, licensing, bytes and privilege before a report-only lab. Keep security baselines intact and production changes separately authorized; include acquisition review, lab testing and maintenance in effort.

Review the sequence →

Worksheet / Usable takeaway

Script and GPO candidate review worksheet

  • Candidate: [exact URL / publisher / upstream repository / revision / intended read or change / discovery date / directory-only status].
  • Rights: [license / notices / dependencies / permitted internal or client use / redistribution excluded / unresolved question / reviewer].
  • Byte review: [local file reference / SHA-256 / trusted comparison source / signature status / signer context / checked platform / no uninspected revision].
  • Behavior: [parameters / modules / executables / network destinations / outputs / potential writes / credential handling / security-baseline impact].
  • Environment: [authorized lab / domain reference / target GUID / Windows and module versions / narrow identity / excluded customers and policies / scope].
  • Baseline and recovery: [GPO report / resultant-policy evidence / backup ID if changing / links and filters / side effects / restore proof / pause owner / manual fallback].
  • Tests: [case / expected output and zero-change checks / actual / evidence / pass, fail or not run / exception owner].
  • Decision: [accept report-only, revise or reject / unresolved rights or risks / separate production authority / no baseline weakening].
  • Maintenance and value: [revision triggers / compatibility check / owner / baseline effort / review and lab effort / upkeep / net observed effort / retirement trigger].

Sources

Get-AuthenticodeSignature (Microsoft.PowerShell.Security) - PowerShell | Microsoft Learn

Get-FileHash (Microsoft.PowerShell.Utility) - PowerShell | Microsoft Learn

GroupPolicy Module | Microsoft Learn

Backup-GPO (GroupPolicy) | Microsoft Learn

Killer Tools: public application shell; entries unverified

Source notes: Oct 2026. See method and evidence notes.

Search the stockroom

↑ ↓ to choose · Enter to open · Esc to close

Open the full search page →