Microsoft Copilot Personalization for InfoSec Engineers

Transform Microsoft Copilot from a generic assistant into a specialized infosec engineering tool through strategic personalization. This runbook covers custom instructions, memory configuration, and prompt patterns that will significantly improve response quality.

Overview

Microsoft Copilot’s personalization features:

Feature Purpose

Custom Instructions

Persistent system-level context applied to every conversation

Saved Memories

Facts Copilot remembers about you across sessions

Response Style

Tone, verbosity, format preferences

Access: Copilot → Settings (gear icon) → Personalization

Custom Instructions: The Force Multiplier

Custom instructions are the most powerful personalization feature. They act as a persistent system prompt that shapes every response.

Accessing Custom Instructions

  1. Open Microsoft Copilot (Edge, Windows, or web)

  2. Click Settings (gear icon)

  3. Select Personalization

  4. Click Edit instructions under Custom Instructions

InfoSec Engineer Custom Instructions Template

Copy and paste this into your custom instructions:

# Role & Context
You are assisting a senior infrastructure security engineer specializing in:
- Network security (802.1X, NAC, firewall, segmentation)
- Identity and access management (Active Directory, RADIUS, certificates, PKI)
- Linux/Windows hybrid environments
- Automation (PowerShell, Python, Bash)
- Cisco ISE, pfSense, enterprise networking

# Technical Expectations
- Assume advanced knowledge. Skip basic explanations unless I ask.
- Provide production-ready commands, not toy examples.
- Always include verification steps after changes.
- Show exact file paths and line numbers when relevant.
- Use proper error handling in scripts.

# Command Style
- PowerShell: Use approved verbs, pipeline properly, handle errors
- Bash: Use set -euo pipefail, proper quoting, shellcheck-clean
- Always show before/after verification for configuration changes

# Security Focus
- Default to secure options (TLS 1.2+, strong ciphers, least privilege)
- Flag security implications of suggestions
- Never suggest disabling SSL verification or similar insecure shortcuts
- Consider audit logging and compliance implications

# Output Format
- Code blocks with language tags for syntax highlighting
- Tables for comparing options
- Numbered steps for procedures
- No unnecessary preamble - get to the point
- Include command output examples where helpful

# Tools & Environment
- Primary: PowerShell 7+, Windows Terminal, WSL2 (Arch)
- Network: Cisco ISE, pfSense, managed switches
- Auth: Active Directory, RADIUS, EAP-TLS, certificates
- Automation: Python, Ansible, netapi CLI

# What NOT to do
- Don't explain what a firewall is or basic concepts
- Don't suggest GUI-only solutions when CLI exists
- Don't provide incomplete commands missing error handling
- Don't use deprecated cmdlets or APIs

Custom Instructions: Advanced Variant

For even more specific tailoring, add domain-specific context:

# Continuation of base instructions...

# Network Environment Context
- Enterprise network with VLAN segmentation (Data: 10, Voice: 20, IoT: 30)
- 802.1X closed mode on all access ports
- Cisco ISE for NAC with AD integration
- pfSense edge firewall with Suricata IDS
- Certificate-based authentication preferred

# Common Tasks I Need Help With
1. ISE policy troubleshooting (MAB vs 802.1X, DACL application)
2. Certificate operations (Windows cert store, OpenSSL, PKI)
3. PowerShell automation for AD/ISE/network devices
4. Log analysis and correlation
5. Incident response procedures
6. Security hardening baselines

# Documentation Style
When I ask for documentation:
- Use AsciiDoc format (not Markdown)
- Include proper headings and structure
- Add code blocks with subs=attributes+ where needed
- No TOC attributes (handled by external system)

# Preferred Tools Reference
- Cert operations: PowerShell Cert: drive, certutil, openssl
- Network testing: Test-NetConnection, nmap, tcpdump
- AD queries: Get-AD*, dsquery, ldapsearch
- Log parsing: Select-String, awk, jq
- API testing: Invoke-RestMethod, curl, httpie

Saved Memories Configuration

Memories are facts Copilot learns about you. Strategically add memories for context that should persist but doesn’t fit in custom instructions.

Access Memories

  1. Copilot → Settings → Personalization

  2. View/edit under Saved memories

Strategic Memories to Add

Tell Copilot these facts during conversation (it will offer to save them):

# Professional Context
"I'm a senior infrastructure security engineer at a healthcare organization"
"I primarily work with Cisco ISE, Active Directory, and Linux systems"
"My team manages network access control and endpoint security"

# Technical Preferences
"I prefer PowerShell for Windows automation and Python for cross-platform"
"I use Neovim as my primary editor"
"I document everything in AsciiDoc format"
"I use Arch Linux in WSL2 at work"

# Environment Facts
"Our domain is inside.domusdigitalis.dev"
"We use EAP-TLS for 802.1X authentication"
"Our ISE deployment uses policy sets for different use cases"

# Workflow Preferences
"I prefer CLI solutions over GUI when available"
"I use heredoc-style commits for multi-line git messages"
"I verify commands before and after making changes"

How to Train Memories

During normal conversation, explicitly state facts:

User: "Remember that I always want PowerShell examples to include
      -ErrorAction Stop and proper try/catch blocks"

Copilot: [Offers to save this as a memory]

User: "Yes, save that"

Response Style Configuration

Setting Recommended Value

Response length

Detailed (for technical work)

Response style

Professional

Conversation style

More Precise (reduces hallucination)

Prompt Patterns for InfoSec Work

Even with personalization, prompt structure matters. Use these patterns:

Pattern 1: Verification-First Changes

I need to modify [thing]. Show me:
1. Command to verify current state
2. Command to make the change
3. Command to verify the change worked
4. Rollback command if it fails

Pattern 2: Security-Aware Automation

Write a PowerShell script that [does X].
Requirements:
- Handle errors properly with try/catch
- Log all actions to Windows Event Log
- Use secure credential handling (no plaintext)
- Include -WhatIf support for testing

Pattern 3: Troubleshooting Context

ISE authentication failing for endpoint MAC [X].
Symptoms:
- [specific behavior]
Logs show:
```
[paste relevant log entries]
```
What should I check?

Pattern 4: Documentation Generation

Create AsciiDoc documentation for [procedure].
Include:
- Prerequisites checklist
- Step-by-step commands with verification
- Troubleshooting section
- Rollback procedure
Format: production runbook, not tutorial

Pattern 5: Code Review

Review this [PowerShell/Python/Bash] script for:
1. Security issues
2. Error handling gaps
3. Performance concerns
4. Best practice violations

```
[paste code]
```

CLI/API Access

PowerShell: Copilot in Windows Terminal

Windows Terminal can integrate with Copilot for inline suggestions:

# Check if Copilot integration is available
Get-Command -Module Microsoft.PowerShell.Copilot -ErrorAction SilentlyContinue

# If available, get inline suggestions
# Requires Windows 11 and Copilot enabled

WSL: Browser-Based Access

No native CLI for Copilot in WSL, but you can:

# Open Copilot in default Windows browser from WSL
wslview "https://copilot.microsoft.com"

# Or create an alias
echo 'alias copilot="wslview https://copilot.microsoft.com"' >> ~/.zshrc

Edge DevTools Access

For programmatic interaction (advanced):

// In Edge DevTools console on copilot.microsoft.com
// Can observe network requests for API patterns
// Note: No official API - for research only

Microsoft Graph API (Enterprise)

If your organization has Microsoft 365 Copilot (paid):

# Enterprise Copilot has Graph API integration
# Requires appropriate licensing and permissions
# Check with your M365 admin for availability

Keyboard Shortcuts

Shortcut Action

Win + C

Open Copilot (Windows 11)

Ctrl + Shift + .

Open Copilot in Edge

Alt + Enter

Submit multi-line prompt (in some contexts)

Ctrl + Shift + C

Copy code block from response

Power User Tips

1. Context Window Management

Copilot has limited context. For long conversations:

"Let's start fresh. Here's the context for this task:
[provide focused context]
Now help me with [specific task]"

2. Iterative Refinement

First attempt: "Write a script to do X"
Refinement: "Good start. Now add error handling and logging"
Refinement: "Add support for -WhatIf and -Verbose"
Refinement: "Make it accept pipeline input"

3. Output Format Control

"Respond with ONLY the PowerShell code. No explanation."

"Format as a markdown table"

"Respond in AsciiDoc format with proper code blocks"

4. Fact Checking Mode

"Before answering, tell me if you're uncertain about any part.
I need accurate information, not confident-sounding guesses."

5. Multi-Step Procedures

"We're going to do this in steps. After each step, wait for me
to confirm it worked before proceeding. Step 1 is..."

Competitive Edge: What Your Colleagues Might Miss

Underutilized Features

  1. Persistent Instructions - Most people use Copilot without customization

  2. Memory Training - Actively teaching Copilot your preferences

  3. Structured Prompts - Using templates instead of ad-hoc questions

  4. Verification Pattern - Always asking for before/after commands

  5. Security Framing - Explicitly requesting secure defaults

Workflow Integration

# Instead of asking general questions:
"How do I check Windows services?"

# Ask with operational context:
"I need to verify the SSH agent service is running and set to auto-start.
Show me: current state check, how to fix if wrong, verification after."

Documentation Acceleration

"I just completed this procedure:
1. [paste your commands]

Convert this into a proper runbook with:
- Prerequisites
- Verification steps
- Error handling
- Rollback procedure

Format: AsciiDoc"

Troubleshooting

Custom Instructions Not Applying

  1. Clear browser cache/cookies

  2. Sign out and back into Microsoft account

  3. Check Settings → Personalization to verify instructions saved

  4. Test with explicit: "What custom instructions do you have for me?"

Memories Not Persisting

  1. Ensure you’re signed into the same Microsoft account

  2. Check if your organization has disabled memory features

  3. Verify privacy settings allow memory storage

Response Quality Degraded

  1. Start a new conversation (context pollution)

  2. Rephrase with more specific requirements

  3. Explicitly reference your custom instructions