Build Your IT Support Portfolio on GitHub
Document real Windows troubleshooting scenarios in a GitHub portfolio.
Introduction
30 Second Summary
When you apply for an IT support job, hiring managers want proof that you can actually troubleshoot. A portfolio of real diagnostic work is what sets your application apart from hundreds of others.
In this project, you will run real network diagnostics and system health checks using built-in Windows tools. Then you will document everything in a public GitHub repository that you can link directly on your resume.
What You'll Build
A public GitHub repository called it-support-portfolio containing documented troubleshooting scenarios that prove you can diagnose real IT issues using Windows diagnostic tools.
By the end of this project, you'll have:
- A GitHub repository with a professional README that positions your troubleshooting work for job applications.
- A network diagnostics report documenting your findings from ipconfig, ping, tracert, and nslookup.
- System performance and health reports using Task Manager, Event Viewer, sfc, and DISM with documented results.
- Secret Mission: Write a complete troubleshooting runbook for a "User Cannot Connect to the Internet" scenario that a Tier 1 help desk technician could follow step by step.
Are there any prerequisites?
You need a Windows 10 or 11 PC and a free GitHub account. You will install Git for Windows in Step 1.
Install Git and Create Your Portfolio Repository
Every piece of troubleshooting work you do in this project needs somewhere that hiring managers can actually see it. Git is a version control tool that tracks changes to your files. GitHub is the online platform where your portfolio will live.
In this step, you'll install Git for Windows, connect it to your GitHub identity, and create the repository that will hold all your troubleshooting documentation.
In this step, get ready to:
- Install Git for Windows and verify it works.
- Configure Git with your name and email.
- Create and clone your it-support-portfolio repository from GitHub.
Download and install Git for Windows
Git lets you save snapshots of your work and push them to GitHub so anyone can see your portfolio. Before you can use it, you need to install it on your PC.
- Open your browser and go to git-scm.com/install/windows.
- Click the Click here to download link to download the standalone installer.
- Once the download finishes, open the installer file.
- The installer shows several screens with configuration options. Click Next on each screen to accept the default settings.
- Click Install on the final screen.
- Click Finish when the installation completes.
What is Git?
Git is a version control tool that tracks every change you make to your files. Each time you save a snapshot (called a commit), Git records exactly what changed and when.
GitHub is the online platform where you publish those commits so other people can see your work. Together, Git and GitHub give you a public, trackable record of everything you build.
Now let's confirm that Git installed correctly.
- Press the Windows key to open your search bar.
- Type Command Prompt and press Enter to open it.
- Verify Git installed correctly by running this command:
git --version
✔️ I see a version number
You should see something like git version 2.54.0.windows.1. The exact number may differ slightly, and that is fine. Git is installed and ready to go.
ⓧ Command not found
If Command Prompt does not recognise the git command, try these fixes.
- Close Command Prompt completely and reopen it. The installer updates your system path, but Command Prompt only reads the path when it first opens.
- If it still does not work, rerun the installer from git-scm.com/install/windows and make sure you accept all the default settings. The defaults include adding Git to your system path.
Still stuck? Help me troubleshoot why git --version is not working in Command Prompt on Windows.
Configure Git and create your repository
Git needs to know who you are so that every commit is tagged with your name and email. You also need a repository on GitHub to store your portfolio files.
- Set your Git identity by running these two commands in Command Prompt:
git config --global user.name "[[YOURNAME=\"Your Name\"]]"
git config --global user.email "[[GITHUB_EMAIL=\"your GitHub email address\"]]"
What do these commands do?
- user.name sets the name that appears on every commit you make. Use your real name or the name you want on your portfolio.
- user.email should match the email address on your GitHub account. This links your local commits to your GitHub profile.
- --global means this configuration applies to all Git projects on your PC, not just one folder.
- Verify your name was saved by running:
git config --global user.name
You should see your name printed back in the output.
Now let's create the GitHub repository where all your portfolio files will live.
- Open your browser and go to github.com. Sign in to your account.
- Click the + icon in the top right corner of the page.
- Select New repository.
- In the Repository name field, enter it-support-portfolio.
- Make sure Public is selected (not Private).
- Check the box for Add a README file.
- Click Create repository.
GitHub redirects you to your new repository page. You should see a README.md file listed with your repository name as a heading.
Why set the repository to Public?
A Public repository is visible to anyone on the internet. This is exactly what you want for a portfolio. When you put your GitHub link on your resume, hiring managers can click through and see your documented troubleshooting work without needing special access.
Clone your repository to your PC
Your repository currently only exists on GitHub's servers. Cloning creates a local copy on your PC that stays connected to the GitHub version.
- On your repository page on GitHub, click the green Code button.
- Make sure HTTPS is selected in the dropdown.
- Click the copy icon next to the URL to copy it to your clipboard.
- Switch back to Command Prompt. Navigate to your Documents folder and clone the repository by running these commands:
cd Documents
git clone [[YOUR_REPO_URL=\"https://github.com/your-username/it-support-portfolio.git\"]]
What does git clone do?
git clone downloads the entire repository from GitHub to your PC. It creates a new folder with the repository name and sets up the connection between your local copy and the GitHub version automatically.
You should see Git download the repository files. It will say something like Cloning into 'it-support-portfolio'... followed by a success message.
- Confirm the folder was created by running:
dir
You should see it-support-portfolio listed as a folder in the output.
- Enter the project folder by running:
cd it-support-portfolio
Seeing an error when you clone?
- If you see repository not found, double-check that the URL matches your GitHub username exactly. Usernames are case-sensitive.
- If Git asks you to sign in, a browser window should pop up asking you to authorise Git to access your GitHub account. Click Authorize to continue.
- If you see The system cannot find the path specified, make sure you ran cd Documents first. Your Documents folder must exist before you can navigate into it.
Help me troubleshoot a git clone error on Windows.
You now have a local copy of your GitHub repository on your PC, connected and ready to go. Next up, you'll run your first real network diagnostics and push the results to your portfolio.
Run Network Diagnostics and Document Your Findings
Your Git setup is complete and your portfolio repository is live on GitHub. Now it's time to fill it with actual troubleshooting work.
When a user reports "the internet isn't working," there are four commands every help desk technician runs first. In this step, you'll run those same commands on your own PC and document your findings in a professional Markdown report.
In this step, get ready to:
- Run four essential network diagnostic commands in Command Prompt.
- Create a Markdown report documenting your findings from each command.
- Push your report to GitHub as your first portfolio artifact.
Open Command Prompt as Administrator
The network diagnostic commands work in a regular Command Prompt, but you'll need Administrator access for the system repair tools in a later step. Opening as Administrator now gets you in the right habit.
- Press the Windows key to open your search bar.
- Type Command Prompt.
- Click Run as administrator on the right side of the search results.
- If a User Account Control prompt appears, click Yes to allow it.
You should see a Command Prompt window with the title bar showing Administrator: Command Prompt.
Run the four network diagnostic commands
You'll now run each command one at a time and observe the output. Keep this window open because you'll reference the results when you write your report.
- Check your network adapter settings by running this command:
ipconfig /all
What should I see?
A large block of text appears showing every network adapter on your PC. Look for the adapter you're actually using (Wi-Fi or Ethernet). Under that adapter, find these key values:
- IPv4 Address (your PC's address on the local network, like 192.168.1.105).
- Default Gateway (your router's address, like 192.168.1.1).
- DNS Servers (the server that translates domain names to IP addresses).
- DHCP Enabled (Yes means your router assigned your IP automatically).
Write down or take note of these values. You'll need them for your report.
- Test your internet connectivity by running this command:
ping google.com
What should I see?
Four lines starting with "Reply from" followed by a summary. The summary shows how many packets were sent, received, and lost. It also shows the average response time in milliseconds.
If all 4 packets return with 0 lost, your internet connection is working. Note the average response time for your report.
- Trace the route your data takes to reach Google by running this command:
tracert google.com
This command takes a while
The tracert command maps every network hop between your PC and Google. This can take 30 seconds to a few minutes. Do not close the window.
Each numbered line is a "hop" through a different router or server. The first hop is usually your local router. Note the total number of hops and whether any lines show timeouts (marked with asterisks).
- Test your DNS resolution by running this command:
nslookup google.com
What does this command do?
DNS translates human-readable domain names (like google.com) into IP addresses that computers use. The nslookup command confirms this translation is working correctly.
You should see the DNS server your PC used and the IP address it resolved for google.com. Note both values for your report.
Seeing 'Request timed out' or 'could not find host'?
- Make sure you are connected to the internet. Check your Wi-Fi icon in the taskbar or confirm your Ethernet cable is plugged in.
- If ping fails but you can browse websites, your network may be blocking ICMP packets. Document this finding in your report instead.
- If all commands fail, try disconnecting and reconnecting to your Wi-Fi network, then run the commands again.
Still stuck? Ask for help.
Create your network diagnostics report
Now that you've seen the output from all four commands, it's time to document your findings. Professional help desk work isn't just about running commands. It's about recording what you found so others can follow your work.
- Open Notepad by pressing the Windows key, typing Notepad, and pressing Enter.
- Copy the following header and overview into Notepad:
# Network Diagnostics Report
**Date**: [[REPORT_DATE="today's date, e.g., 2026-05-04"]]
**Environment**: [[YOUR_ENVIRONMENT="your Windows version and network type, e.g., Windows 11, Home Network"]]
## Overview
This report documents network diagnostic commands used to verify connectivity and identify potential issues on a Windows workstation. These are the first commands a help desk technician runs when a user reports network problems.
## 1. ipconfig /all
**What it does**: Displays all network adapter configurations including IP address, subnet mask, default gateway, DNS servers, and DHCP status.
**Command**:
```
ipconfig /all
```
**Key Findings**:
- **Adapter**: [[YOUR_ADAPTER="Your adapter name, e.g., Wi-Fi or Ethernet"]]
- **IPv4 Address**: [[YOUR_IPV4="Your IP, e.g., 192.168.1.105"]]
- **Subnet Mask**: [[YOUR_SUBNET="e.g., 255.255.255.0"]]
- **Default Gateway**: [[YOUR_GATEWAY="e.g., 192.168.1.1"]]
- **DNS Servers**: [[YOUR_DNS="e.g., 192.168.1.1 or 8.8.8.8"]]
- **DHCP Enabled**: [[YOUR_DHCP="Yes or No"]]
**What this tells me**: The workstation has a valid IP address in the local network range, confirming it received an address from the DHCP server (the router). The default gateway is reachable, which means local network connectivity should be working.
What does this code do?
The # and ## symbols create headings in Markdown. The **text** syntax makes text bold. The - at the start of a line creates a bullet point.
Replace every highlighted placeholder with the actual values from your ipconfig /all output. These are YOUR findings from YOUR PC.
- Now add the remaining three command sections below what you already have:
## 2. ping google.com
**What it does**: Sends four ICMP echo request packets to google.com to test internet connectivity and measure response time.
**Command**:
```
ping google.com
```
**Key Findings**:
- **Packets Sent/Received/Lost**: [[YOUR_PACKETS="e.g., 4/4/0"]]
- **Average Response Time**: [[YOUR_PING_TIME="e.g., 25ms"]]
**What this tells me**: All packets returned successfully with low latency, confirming the workstation can reach the internet and DNS is resolving domain names correctly.
## 3. tracert google.com
**What it does**: Traces the route packets take from your PC to google.com, showing every network hop along the way.
**Command**:
```
tracert google.com
```
**Key Findings**:
- **Total Hops**: [[YOUR_HOPS="e.g., 12"]]
- **First Hop**: [[YOUR_FIRST_HOP="e.g., 192.168.1.1 - local router"]]
- **Notable Hops**: [[YOUR_NOTABLE_HOPS="e.g., ISP gateway at hop 2-3"]]
**What this tells me**: The route to Google completes successfully. The first hop is the local gateway, confirming local network connectivity. No timeouts or excessive latency at any hop, indicating a healthy network path.
## 4. nslookup google.com
**What it does**: Queries the configured DNS server to resolve a domain name to an IP address.
**Command**:
```
nslookup google.com
```
**Key Findings**:
- **DNS Server Used**: [[YOUR_DNS_SERVER="e.g., 192.168.1.1 or your ISP DNS"]]
- **Resolved Address**: [[YOUR_RESOLVED_IP="e.g., 142.250.x.x"]]
**What this tells me**: DNS resolution is working correctly. The domain name google.com resolves to a valid IP address, confirming the DNS server is reachable and responding.
## Summary
All four diagnostic commands returned healthy results. This workstation has valid network configuration, internet connectivity, a working route to external servers, and functioning DNS resolution. If a user reported connectivity issues on this machine, these results would confirm the local configuration is not the problem, and investigation should move to the specific application or service the user is trying to reach.
What does this section cover?
- The ping section documents whether your packets reached Google and how fast.
- The tracert section maps the network path your data traveled.
- The nslookup section proves that DNS is translating domain names to IP addresses.
- The Summary ties everything together with an overall assessment of the workstation's network health.
Replace every highlighted placeholder with your actual command output. If your results were different from the template (for example, some packets were lost), update the "What this tells me" paragraph to match what you actually observed.
- Save the file in Notepad by pressing Ctrl+S.
- In the Save dialog, navigate to your Documents\it-support-portfolio folder.
- Change the Save as type dropdown from Text Documents (*.txt) to All Files (*.*).
- Type network-diagnostics.md as the file name and click Save.
Why change Save as type?
By default, Notepad saves files with a .txt extension. Choosing All Files lets you save with the .md extension, which GitHub recognizes as Markdown and renders with proper formatting.
- Confirm the file exists by running this in your Administrator Command Prompt:
dir Documents\it-support-portfolio\network-diagnostics.md
You should see the file listed with today's date and a file size greater than 0 bytes.
File not found?
- Check that you saved to the correct folder. Open File Explorer and navigate to Documents\it-support-portfolio to see if the file is there.
- If you see network-diagnostics.md.txt instead, you forgot to change the Save as type. Delete that file, go back to Notepad, and save again with All Files (*.*) selected.
Need a hand? Ask for help.
✔️ Awesome, I've got everything!
Make sure you've replaced all the placeholder values with your actual findings before moving on.
ⓧ I'd like to double check the full code
Here is the full network-diagnostics.md file. Make sure your file matches this structure, with your own values replacing the placeholders.
# Network Diagnostics Report
**Date**: [[REPORT_DATE="today's date, e.g., 2026-05-04"]]
**Environment**: [[YOUR_ENVIRONMENT="your Windows version and network type, e.g., Windows 11, Home Network"]]
## Overview
This report documents network diagnostic commands used to verify connectivity and identify potential issues on a Windows workstation. These are the first commands a help desk technician runs when a user reports network problems.
## 1. ipconfig /all
**What it does**: Displays all network adapter configurations including IP address, subnet mask, default gateway, DNS servers, and DHCP status.
**Command**:
```
ipconfig /all
```
**Key Findings**:
- **Adapter**: [[YOUR_ADAPTER="Your adapter name, e.g., Wi-Fi or Ethernet"]]
- **IPv4 Address**: [[YOUR_IPV4="Your IP, e.g., 192.168.1.105"]]
- **Subnet Mask**: [[YOUR_SUBNET="e.g., 255.255.255.0"]]
- **Default Gateway**: [[YOUR_GATEWAY="e.g., 192.168.1.1"]]
- **DNS Servers**: [[YOUR_DNS="e.g., 192.168.1.1 or 8.8.8.8"]]
- **DHCP Enabled**: [[YOUR_DHCP="Yes or No"]]
**What this tells me**: The workstation has a valid IP address in the local network range, confirming it received an address from the DHCP server (the router). The default gateway is reachable, which means local network connectivity should be working.
## 2. ping google.com
**What it does**: Sends four ICMP echo request packets to google.com to test internet connectivity and measure response time.
**Command**:
```
ping google.com
```
**Key Findings**:
- **Packets Sent/Received/Lost**: [[YOUR_PACKETS="e.g., 4/4/0"]]
- **Average Response Time**: [[YOUR_PING_TIME="e.g., 25ms"]]
**What this tells me**: All packets returned successfully with low latency, confirming the workstation can reach the internet and DNS is resolving domain names correctly.
## 3. tracert google.com
**What it does**: Traces the route packets take from your PC to google.com, showing every network hop along the way.
**Command**:
```
tracert google.com
```
**Key Findings**:
- **Total Hops**: [[YOUR_HOPS="e.g., 12"]]
- **First Hop**: [[YOUR_FIRST_HOP="e.g., 192.168.1.1 - local router"]]
- **Notable Hops**: [[YOUR_NOTABLE_HOPS="e.g., ISP gateway at hop 2-3"]]
**What this tells me**: The route to Google completes successfully. The first hop is the local gateway, confirming local network connectivity. No timeouts or excessive latency at any hop, indicating a healthy network path.
## 4. nslookup google.com
**What it does**: Queries the configured DNS server to resolve a domain name to an IP address.
**Command**:
```
nslookup google.com
```
**Key Findings**:
- **DNS Server Used**: [[YOUR_DNS_SERVER="e.g., 192.168.1.1 or your ISP DNS"]]
- **Resolved Address**: [[YOUR_RESOLVED_IP="e.g., 142.250.x.x"]]
**What this tells me**: DNS resolution is working correctly. The domain name google.com resolves to a valid IP address, confirming the DNS server is reachable and responding.
## Summary
All four diagnostic commands returned healthy results. This workstation has valid network configuration, internet connectivity, a working route to external servers, and functioning DNS resolution. If a user reported connectivity issues on this machine, these results would confirm the local configuration is not the problem, and investigation should move to the specific application or service the user is trying to reach.
Push your report to GitHub
Your report is saved locally, but it's not on GitHub yet. You need to push it so hiring managers can see your work when they visit your portfolio link.
- Navigate to your portfolio folder in the Administrator Command Prompt by running this command:
cd %USERPROFILE%\Documents\it-support-portfolio
- Stage your new file for commit by running:
git add network-diagnostics.md
- Commit the file with a descriptive message by running:
git commit -m "Add network diagnostics report"
- Push the commit to GitHub by running:
git push
What is this git workflow?
Every time you want to save your work to GitHub, you follow three steps. git add selects which files to include. git commit creates a snapshot with a message describing what changed. git push uploads that snapshot to GitHub.
You'll repeat this workflow for every file you add to your portfolio. By the end of this project, it will feel automatic.
- Open your browser and go to your GitHub repository.
- Refresh the page. You should see network-diagnostics.md listed alongside your README.md file.
- Click on network-diagnostics.md to see how GitHub renders your Markdown with proper headings, bold text, and bullet points.
Push failed or file not showing up?
- If you see fatal: not a git repository, make sure you navigated to the it-support-portfolio folder before running the git commands.
- If GitHub asks for authentication, it may open a browser window for you to sign in. Follow the prompts to authorize.
- If you see nothing to commit, working tree clean, your file may not be saved in the correct folder. Run dir to check that network-diagnostics.md appears in the current folder.
Still having trouble? Ask for help.
You just published your first piece of portfolio documentation. Next up, you'll investigate your system's performance using Task Manager and Event Viewer.
Investigate System Performance with Task Manager and Event Viewer
Your network diagnostics report is live on GitHub. That covers the networking side of help desk troubleshooting. Now it's time to tackle the other half of the picture: system performance.
When a user says "my computer is running slow," help desk technicians reach for two built-in Windows tools. Task Manager shows what your system is doing right now. Event Viewer shows what went wrong in the past.
In this step, get ready to:
- Explore system resources and startup programs in Task Manager.
- Review system and application logs in Event Viewer.
- Document your findings in system-performance.md and push to GitHub.
Open Task Manager and explore system resources
Task Manager is the first tool a help desk technician opens when someone reports a slow computer. It gives you a real-time view of what your PC is doing right now.
- Press Ctrl+Shift+Esc to open Task Manager.
- If Task Manager opens in a small, compact view, click More details at the bottom to expand it.
- Click the Processes tab at the top.
- Look at which programs are using the most CPU and Memory. Note the top 3 resource-consuming processes.
- Click the Performance tab.
- Note your current CPU, Memory, Disk, and Network usage levels shown in the sidebar.
- Click the Startup apps tab.
- Look at which programs launch when your PC boots. Note any programs with a Startup impact of High.
What do these tabs tell you?
The Processes tab shows every running program and how much CPU, memory, disk, and network each one is consuming. This tells you exactly what is making a PC slow.
The Performance tab shows overall system health at a glance. If CPU or memory is stuck near 100%, that's your bottleneck.
The Startup apps tab shows which programs auto-launch at boot. Too many high-impact startup programs slow down login times. You can right-click and select Disable to stop non-essential ones from launching.
Open Event Viewer and review system logs
Task Manager shows you the present. Event Viewer shows you the past. It records every warning, error, crash, and driver failure that Windows encounters.
- Press Win+R to open the Run dialog.
- Type eventvwr.msc and press Enter.
- In the left panel, expand Windows Logs.
- Click System.
- Look for entries with a yellow triangle icon (Warning) or a red circle icon (Error). Click on one to see its details in the panel below.
- Note the Source, Event ID, and Description from the details panel. You will document these later.
- Now click Application under Windows Logs in the left panel.
- Look for Warning or Error entries here too. Note 2-3 interesting entries total across both System and Application logs.
What is Event Viewer used for?
Event Viewer is how help desk technicians diagnose crashes, driver failures, and application errors. The System log records hardware and driver events. The Application log records software crashes and application-level errors.
Every entry has an Event ID (a number that identifies the specific type of event) and a Source (the Windows component or application that generated the entry). These two fields are what you search for when troubleshooting.
No warnings or errors?
If your Event Viewer has no warnings or errors, that is a healthy sign. Document that your logs are clean and explain why that is a positive finding. Every PC is different, and clean logs are still worth documenting.
Document your findings and push to GitHub
You have explored both tools and gathered real data from your own PC. Now you will write it up as a structured Markdown report, just like the network diagnostics report you created in the previous step.
- Press the Windows key to open your search bar.
- Type Notepad and press Enter to open it.
- Paste the following template into Notepad to start your Task Manager documentation:
# System Performance Investigation
**Date**: 2026-05-04
**Environment**: Windows 11
## Overview
This report documents a system performance investigation using Task Manager and Event Viewer. These tools are used by help desk technicians when a user reports their computer is running slow, freezing, or crashing.
## Task Manager Analysis
### Top Resource-Consuming Processes
| Process Name | CPU Usage | Memory Usage |
|---|---|---|
| [e.g., Google Chrome] | [e.g., 12%] | [e.g., 1,200 MB] |
| [e.g., Microsoft Teams] | [e.g., 5%] | [e.g., 450 MB] |
| [e.g., Windows Explorer] | [e.g., 2%] | [e.g., 150 MB] |
### Overall System Resources
- **CPU Usage**: [e.g., 25%]
- **Memory Usage**: [e.g., 8.2 GB / 16 GB (51%)]
- **Disk Usage**: [e.g., 5%]
- **Network Usage**: [e.g., 2 Mbps]
### Startup Impact Analysis
| Program | Status | Startup Impact |
|---|---|---|
| [e.g., Microsoft Teams] | Enabled | High |
| [e.g., Spotify] | Enabled | Medium |
| [e.g., OneDrive] | Enabled | Low |
**Recommendation**: Programs with "High" startup impact that are not essential should be disabled to improve boot time. Right-click the program and select "Disable" to prevent it from launching at startup.
What should I replace in this template?
Every value inside square brackets (like [e.g., Google Chrome]) is a placeholder. Replace each one with the actual values you saw in Task Manager on your own PC.
For the process table, use the top 3 processes you noted from the Processes tab. For the system resources, use the numbers from the Performance tab. For the startup table, use the entries from the Startup apps tab.
If you are on Windows 10 instead of Windows 11, change the Environment line to say Windows 10. Also update the date to today's date if it is different.
- Below the Task Manager section in the same Notepad file, paste the following Event Viewer template:
## Event Viewer Analysis
### Event 1
- **Log**: System
- **Level**: [Warning/Error]
- **Source**: [e.g., Disk]
- **Event ID**: [e.g., 153]
- **Description**: [e.g., "The IO operation at logical block address was retried."]
- **What this means**: [e.g., The disk had a temporary read/write issue. A single occurrence is usually not concerning, but repeated entries could indicate a failing drive.]
### Event 2
- **Log**: Application
- **Level**: [Warning/Error]
- **Source**: [e.g., Application Error]
- **Event ID**: [e.g., 1000]
- **Description**: [e.g., "Faulting application name: someapp.exe"]
- **What this means**: [e.g., An application crashed. The Event ID 1000 indicates a general application fault. Check if the application needs updating or reinstalling.]
### Event 3
- **Log**: System
- **Level**: [Warning/Error]
- **Source**: [e.g., Service Control Manager]
- **Event ID**: [e.g., 7034]
- **Description**: [e.g., "A service terminated unexpectedly."]
- **What this means**: [e.g., A Windows service crashed and was restarted. If this happens repeatedly for the same service, it may need troubleshooting.]
## Summary
The system is currently performing within normal parameters. Task Manager shows no processes consuming excessive CPU or memory. Event Viewer contains some warnings that are typical of normal Windows operation. No critical errors were found that require immediate action.
What should I replace in the Event Viewer section?
Replace every placeholder with the actual entries you found in Event Viewer. Use the Source, Event ID, and Description from the entries you noted earlier.
For the "What this means" field, write a plain-English explanation of what the entry indicates. This is the most important part. It shows you can interpret log data, not just read it.
✔️ Awesome, I've got everything!
Great. Make sure you have replaced all the placeholder values in square brackets with your own findings before saving.
ⓧ I'd like to double check the full code
Here is the full structure of system-performance.md for comparison. Your actual values will differ from the examples shown.
# System Performance Investigation
**Date**: 2026-05-04
**Environment**: Windows 11
## Overview
This report documents a system performance investigation using Task Manager and Event Viewer. These tools are used by help desk technicians when a user reports their computer is running slow, freezing, or crashing.
## Task Manager Analysis
### Top Resource-Consuming Processes
| Process Name | CPU Usage | Memory Usage |
|---|---|---|
| [e.g., Google Chrome] | [e.g., 12%] | [e.g., 1,200 MB] |
| [e.g., Microsoft Teams] | [e.g., 5%] | [e.g., 450 MB] |
| [e.g., Windows Explorer] | [e.g., 2%] | [e.g., 150 MB] |
### Overall System Resources
- **CPU Usage**: [e.g., 25%]
- **Memory Usage**: [e.g., 8.2 GB / 16 GB (51%)]
- **Disk Usage**: [e.g., 5%]
- **Network Usage**: [e.g., 2 Mbps]
### Startup Impact Analysis
| Program | Status | Startup Impact |
|---|---|---|
| [e.g., Microsoft Teams] | Enabled | High |
| [e.g., Spotify] | Enabled | Medium |
| [e.g., OneDrive] | Enabled | Low |
**Recommendation**: Programs with "High" startup impact that are not essential should be disabled to improve boot time. Right-click the program and select "Disable" to prevent it from launching at startup.
## Event Viewer Analysis
### Event 1
- **Log**: System
- **Level**: [Warning/Error]
- **Source**: [e.g., Disk]
- **Event ID**: [e.g., 153]
- **Description**: [e.g., "The IO operation at logical block address was retried."]
- **What this means**: [e.g., The disk had a temporary read/write issue. A single occurrence is usually not concerning, but repeated entries could indicate a failing drive.]
### Event 2
- **Log**: Application
- **Level**: [Warning/Error]
- **Source**: [e.g., Application Error]
- **Event ID**: [e.g., 1000]
- **Description**: [e.g., "Faulting application name: someapp.exe"]
- **What this means**: [e.g., An application crashed. The Event ID 1000 indicates a general application fault. Check if the application needs updating or reinstalling.]
### Event 3
- **Log**: System
- **Level**: [Warning/Error]
- **Source**: [e.g., Service Control Manager]
- **Event ID**: [e.g., 7034]
- **Description**: [e.g., "A service terminated unexpectedly."]
- **What this means**: [e.g., A Windows service crashed and was restarted. If this happens repeatedly for the same service, it may need troubleshooting.]
## Summary
The system is currently performing within normal parameters. Task Manager shows no processes consuming excessive CPU or memory. Event Viewer contains some warnings that are typical of normal Windows operation. No critical errors were found that require immediate action.
- In Notepad, click File, then Save As.
- Navigate to your it-support-portfolio folder inside Documents.
- Change the Save as type dropdown to All Files (*.*).
- In the File name field, type system-performance.md.
- Click Save.
Why change Save as type?
Notepad defaults to saving files as .txt. By switching to All Files (*.*), you can save with the .md extension. Without this change, the file would be saved as system-performance.md.txt instead.
- Confirm the file exists by opening Command Prompt and running:
ls
You should see system-performance.md listed alongside network-diagnostics.md and README.md.
Don't see system-performance.md?
If you see system-performance.md.txt instead, you saved without changing the Save as type dropdown. Delete the file, reopen Notepad, and save again with All Files (*.*) selected.
Make sure your Command Prompt is inside the it-support-portfolio folder. If you are not sure, run cd Documents\it-support-portfolio to navigate there.
Still stuck? Help me find my system-performance.md file.
- Push your new report to GitHub by running these commands:
git add system-performance.md
git commit -m "Add system performance investigation"
git push
What do these commands do?
- git add system-performance.md stages the new file, telling Git to include it in the next commit.
- git commit -m "..." saves a snapshot of your changes with a descriptive message.
- git push uploads the commit to your GitHub repository so it is visible online.
- Open your GitHub repository in your browser.
- You should see system-performance.md listed alongside network-diagnostics.md. Click on it to confirm your documentation renders correctly.
Seeing an authentication error on git push?
If Git asks for a username and password, GitHub no longer accepts passwords for command-line access. You need a Personal Access Token instead. Go to GitHub Settings, then Developer settings, then Personal access tokens to generate one. Use the token as your password when prompted.
If you already pushed in the previous step without issues, this step should work the same way. Help me fix a git push authentication error.
You now have two documented investigations in your portfolio. Next up, you will use command-line repair tools to check the health of your Windows installation itself.
Check System Health with Command-Line Repair Tools
Your system performance investigation is documented and live on GitHub. Now it's time to go deeper and check the health of Windows itself.
When a user reports crashes or features that stop working, the problem might be corrupted system files. You'll use two command-line repair tools to verify your system's integrity and document the results.
In this step, get ready to:
- Run DISM health checks on the Windows component store.
- Scan system files with SFC.
- Document and push your findings to GitHub.
Run DISM health checks
DISM (Deployment Image Servicing and Management) checks the Windows component store for corruption. The component store is where Windows keeps clean copies of system files. If these copies are damaged, Windows can't repair itself properly.
Both DISM and SFC require Administrator privileges. You'll need to open a new elevated Command Prompt for these commands.
- Press the Windows key to open your search bar.
- Type Command Prompt.
- Click Run as administrator on the right side of the search results.
- Click Yes when the User Account Control prompt appears.
Why a new Command Prompt?
Your original Command Prompt window from the previous steps is still open in your portfolio folder. Keep it open. You'll use it again later for the Git commands.
This new elevated Command Prompt has Administrator privileges, which DISM and SFC require to scan and modify system files.
The elevated Command Prompt opens in C:\Windows\System32 by default. That's fine. DISM and SFC work from any directory.
- Run a quick health check on the Windows component store by running this command:
DISM.exe /Online /Cleanup-image /CheckHealth
What does this command do?
CheckHealth quickly checks if the Windows component store has any corruption flags. It completes in a few seconds. You should see a message like "No component store corruption detected" or "The component store is repairable."
- Note the result message. You'll include it in your documentation later.
- Run a deeper scan of the component store by running this command:
DISM.exe /Online /Cleanup-image /ScanHealth
What does this command do?
ScanHealth performs a deeper integrity scan of the component store. This one takes longer, sometimes a few minutes. Do not close the window while it runs.
If corruption were found, the next step would be running DISM.exe /Online /Cleanup-image /RestoreHealth to repair it. You won't need to run that command today unless DISM reports an issue.
- Wait for the scan to complete. You should see a message like "No component store corruption detected. The operation completed successfully."
- Note the result message.
ScanHealth seems stuck?
ScanHealth can take 5 to 10 minutes on some systems. The progress percentage may pause at 20% or 40% for a while. This is normal. Do not close the window.
Help me troubleshoot a DISM ScanHealth command that seems stuck.
Run System File Checker
SFC (System File Checker) scans all protected Windows system files and replaces any corrupted files with cached copies. Microsoft recommends running DISM first because DISM provides the clean source files that SFC needs for repairs.
- In the same elevated Command Prompt, run the system file scan by running this command:
sfc /scannow
What does this command do?
SFC scans every protected system file on your PC and compares each one against its expected version. If a file is corrupted or missing, SFC replaces it with a clean copy from the component store (the same store DISM just verified).
- Do not close the Command Prompt window until the scan reaches 100%.
When the scan finishes, you'll see one of three possible messages:
- "Windows Resource Protection did not find any integrity violations" means all system files are intact.
- "Windows Resource Protection found corrupt files and successfully repaired them" means SFC found and fixed issues.
- "Windows Resource Protection found corrupt files but was unable to fix some of them" means manual repair is needed.
- Note which message you see. You'll document it in the next substep.
Why run DISM before SFC?
DISM verifies the component store, which is the source of clean files SFC uses for repairs. If the component store itself is corrupted and you run SFC first, SFC has nothing to repair with. This is the official Microsoft-recommended order.
Seeing "access denied" errors?
Make sure you opened Command Prompt using Run as administrator. A regular Command Prompt does not have the permissions to run SFC or DISM. Close this window and open a new elevated one.
Help me fix access denied errors when running SFC or DISM.
Document your findings and push to GitHub
You've now run the complete Windows repair workflow. Time to document your findings so this becomes another portfolio piece on GitHub.
- Switch back to your original Command Prompt window (the one that's still in your it-support-portfolio folder).
- Create and open system-health-check.md in Notepad by running this command:
notepad system-health-check.md
- Click Yes when Notepad asks if you want to create a new file.
- Paste the following Markdown template into the file:
# System Health Check Report
**Date**: 2026-05-04
**Environment**: Windows 11
## Overview
This report documents a Windows system integrity check using DISM (Deployment Image Servicing and Management) and SFC (System File Checker). This is the standard Microsoft-recommended workflow for verifying and repairing Windows system files. Help desk technicians use this when users experience system errors, crashes, or Windows features not working correctly.
## Step 1: DISM CheckHealth
**What it does**: Quickly checks if the Windows component store has any corruption flags.
**Command**:
```
DISM.exe /Online /Cleanup-image /CheckHealth
```
**Result**: [e.g., "No component store corruption detected."]
## Step 2: DISM ScanHealth
**What it does**: Performs a deeper scan of the Windows component store to verify integrity.
**Command**:
```
DISM.exe /Online /Cleanup-image /ScanHealth
```
**Result**: [e.g., "No component store corruption detected. The operation completed successfully."]
**What this means**: The Windows image is healthy. DISM uses Windows Update as its source to check for issues. If corruption were found, the next step would be running `DISM.exe /Online /Cleanup-image /RestoreHealth` to repair it.
## Step 3: System File Checker (SFC)
**What it does**: Scans all protected Windows system files and replaces any corrupted files with cached copies from the component store.
**Command**:
```
sfc /scannow
```
**Result**: [e.g., "Windows Resource Protection did not find any integrity violations."]
**What this means**: All protected system files are intact and match their expected versions. If SFC had found and repaired files, the message would read "Windows Resource Protection found corrupt files and successfully repaired them."
## Repair Workflow Summary
The correct order for Windows system repair is:
1. Run **DISM** first (it provides the clean source files SFC needs)
2. Run **SFC** second (it uses those source files to replace any corrupted system files)
3. If SFC reports it could not fix some files, reboot and run SFC again
4. If issues persist, run SFC in Safe Mode
## Summary
This system passed all integrity checks. Both DISM and SFC confirmed that Windows system files are intact and uncorrupted. No repairs were needed.
What should I customise?
Replace the placeholder values in square brackets (like [e.g., "No component store corruption detected."]) with the actual result messages you saw on your screen.
Update the Date field to today's date. If your Environment is Windows 10, change that too. The Summary section should reflect your actual results.
- Replace each placeholder with your actual DISM and SFC results.
- Update the Summary section to match your findings. If SFC found and repaired files, note that instead of the default "passed all integrity checks" text.
- Save the file in Notepad by pressing Ctrl+S.
- Close Notepad.
- Push your new file to GitHub by running these commands:
git add system-health-check.md
git commit -m "Add system health check report"
git push
What do these commands do?
This is the same three-step Git workflow you used in previous steps.
- git add stages the new file for commit.
- git commit -m saves a snapshot of your changes with a descriptive message.
- git push uploads your commit to GitHub.
- Open your GitHub repository in your browser.
- Refresh the page. You should see system-health-check.md listed alongside your existing network-diagnostics.md and system-performance.md files.
- Click on system-health-check.md to verify your content renders correctly with headings and formatting.
File not appearing on GitHub?
Make sure you ran all three commands (git add, git commit, git push) from the Command Prompt window that is inside your it-support-portfolio folder. The elevated Command Prompt opens in a different directory and won't find your file.
Help me troubleshoot pushing my system-health-check.md file to GitHub.
✔️ Awesome, I've got everything!
Great. Double check you've saved your file and that it's visible on GitHub.
ⓧ I'd like to double check the full code
Here's the full template for system-health-check.md. Compare your file's structure against this. Your actual result values will differ.
# System Health Check Report
**Date**: 2026-05-04
**Environment**: Windows 11
## Overview
This report documents a Windows system integrity check using DISM (Deployment Image Servicing and Management) and SFC (System File Checker). This is the standard Microsoft-recommended workflow for verifying and repairing Windows system files. Help desk technicians use this when users experience system errors, crashes, or Windows features not working correctly.
## Step 1: DISM CheckHealth
**What it does**: Quickly checks if the Windows component store has any corruption flags.
**Command**:
```
DISM.exe /Online /Cleanup-image /CheckHealth
```
**Result**: [e.g., "No component store corruption detected."]
## Step 2: DISM ScanHealth
**What it does**: Performs a deeper scan of the Windows component store to verify integrity.
**Command**:
```
DISM.exe /Online /Cleanup-image /ScanHealth
```
**Result**: [e.g., "No component store corruption detected. The operation completed successfully."]
**What this means**: The Windows image is healthy. DISM uses Windows Update as its source to check for issues. If corruption were found, the next step would be running `DISM.exe /Online /Cleanup-image /RestoreHealth` to repair it.
## Step 3: System File Checker (SFC)
**What it does**: Scans all protected Windows system files and replaces any corrupted files with cached copies from the component store.
**Command**:
```
sfc /scannow
```
**Result**: [e.g., "Windows Resource Protection did not find any integrity violations."]
**What this means**: All protected system files are intact and match their expected versions. If SFC had found and repaired files, the message would read "Windows Resource Protection found corrupt files and successfully repaired them."
## Repair Workflow Summary
The correct order for Windows system repair is:
1. Run **DISM** first (it provides the clean source files SFC needs)
2. Run **SFC** second (it uses those source files to replace any corrupted system files)
3. If SFC reports it could not fix some files, reboot and run SFC again
4. If issues persist, run SFC in Safe Mode
## Summary
This system passed all integrity checks. Both DISM and SFC confirmed that Windows system files are intact and uncorrupted. No repairs were needed.
You've now completed the standard Windows repair workflow and documented it. Next up, you'll create a professional README that ties all your documentation together into a polished portfolio page.
Create a Professional Portfolio README
Your system health check is documented and pushed to GitHub. Right now though, anyone who visits your repository sees a default README with just the repo name.
In this step, you will replace that default README with a professional introduction. It will list your skills, describe each report, and link directly to your documentation files.
In this step, get ready to:
- Write a professional introduction with a Skills Demonstrated section.
- Add a Projects section with links to each of your reports.
- Push the updated README and see it display on your GitHub repository page.
Open your README and write the introduction
Your README.md file is the landing page of your GitHub repository. Hiring managers see it first when they click your portfolio link.
- Open the README.md file inside your it-support-portfolio folder with Notepad.
- Select all the default text and delete it.
- Copy and paste the following Markdown into the empty file:
# IT Support Portfolio
**IT Support Portfolio** - Hands-on troubleshooting documentation demonstrating Windows diagnostics, networking fundamentals, and system administration skills.
## About
This portfolio contains documented IT troubleshooting scenarios completed using built-in Windows tools. Each scenario follows a structured help desk methodology: identify the problem, gather information, diagnose, resolve, and document.
## Skills Demonstrated
- **Operating Systems**: Windows 10/11 administration and troubleshooting
- **Networking**: ipconfig, ping, tracert, nslookup, DNS resolution, DHCP
- **System Tools**: Task Manager, Event Viewer, Resource Monitor
- **Repair Tools**: DISM (Deployment Image Servicing and Management), SFC (System File Checker)
- **Documentation**: Markdown, Git/GitHub, structured troubleshooting logs
- **Methodology**: Structured troubleshooting, root cause analysis, clear documentation
What does this content do?
The # heading and bold summary line give visitors a one-sentence understanding of what your portfolio is. The About section explains your methodology.
The Skills Demonstrated section lists every tool and concept you used across all three reports. This maps directly to the skills SA help desk employers list in their job postings.
Do not save yet. You will add more content below this in the next substep.
Add the Projects and Contact sections
The Projects section is where you link to each of your three reports. In Markdown, you can create a clickable link using the pattern [Link Text](filename.md). Because your reports are in the same folder as the README, these relative links work automatically on GitHub.
- Place your cursor at the very end of the Skills Demonstrated content in Notepad.
- Press Enter twice to create a blank line, then paste the following content below:
## Projects
### [Network Diagnostics Report](network-diagnostics.md)
Diagnosed network configuration using ipconfig, ping, tracert, and nslookup. Documented IP addressing, subnet mask, default gateway, DNS servers, DHCP status, connectivity testing, route tracing, and DNS resolution.
### [System Performance Investigation](system-performance.md)
Investigated system performance using Task Manager and Event Viewer. Identified top resource-consuming processes, startup impact analysis, and analyzed system and application event logs for warnings and errors.
### [System Health Check](system-health-check.md)
Performed Windows system integrity verification using DISM and System File Checker (SFC). Documented the standard Microsoft-recommended repair workflow and results.
## Contact
- **Name**: Your Name
- **Email**: your-email@example.com
- **LinkedIn**: linkedin.com/in/your-profile
What do these sections do?
Each project heading uses the [text](file.md) syntax to create a clickable link. When someone visits your GitHub repo, they can click directly through to each report without searching through the file list.
The Contact section makes it easy for a hiring manager to reach you after reading your work.
- Replace Your Name, your-email@example.com, and linkedin.com/in/your-profile in the Contact section with your real details.
- Save the file by pressing Ctrl+S in Notepad.
Your README.md now has six sections: a title, About, Skills Demonstrated, Projects with links, and Contact.
File looks wrong in Notepad?
If the Markdown symbols (#, **, -) look messy in Notepad, that is normal. Notepad shows raw text. GitHub renders the Markdown into formatted headings, bold text, and bullet points when you push it.
If all your text appears on a single line, make sure you have blank lines between each section heading and its content.
My README content looks wrong in Notepad. How do I fix it?
Push your README to GitHub
Your README is saved locally. Now push it to GitHub so the world can see it.
- Make sure your Command Prompt is still inside the it-support-portfolio folder.
- Stage, commit, and push your updated README by running these commands one at a time:
git add README.md
git commit -m "Add professional portfolio README"
git push
What do these commands do?
- git add README.md stages the file, telling Git you want to include it in the next commit.
- git commit -m "..." saves a snapshot of your changes with a descriptive message.
- git push uploads that snapshot to your GitHub repository so it is live on the internet.
- Open your browser and go to your GitHub repository page.
- Refresh the page if you already have it open.
Your README now displays automatically on the main page of your repository. You should see your formatted title, the About section, Skills Demonstrated list, clickable project links, and your contact details.
Why does the README display automatically?
GitHub looks for a file named README.md in the root of your repository and renders it as the landing page. This is why the README is so important for portfolios. It is the first thing anyone sees.
- Click each of the three project links in your README to confirm they open the correct report files.
Links not working or push failed?
If a project link shows a 404 error, check that the filename in your link matches the actual file name exactly. network-diagnostics.md is case-sensitive and must match the file in your repository.
If git push failed, make sure you are inside the it-support-portfolio folder by running cd to check your current directory.
My README links are broken or my push failed. How do I fix this?
✔️ Awesome, I've got everything!
Great. Double check you have saved README.md and that all three project links work on your GitHub page.
ⓧ I'd like to double check the full code
Here is the complete README.md file. Compare it with yours in Notepad to spot any differences.
# IT Support Portfolio
**IT Support Portfolio** - Hands-on troubleshooting documentation demonstrating Windows diagnostics, networking fundamentals, and system administration skills.
## About
This portfolio contains documented IT troubleshooting scenarios completed using built-in Windows tools. Each scenario follows a structured help desk methodology: identify the problem, gather information, diagnose, resolve, and document.
## Skills Demonstrated
- **Operating Systems**: Windows 10/11 administration and troubleshooting
- **Networking**: ipconfig, ping, tracert, nslookup, DNS resolution, DHCP
- **System Tools**: Task Manager, Event Viewer, Resource Monitor
- **Repair Tools**: DISM (Deployment Image Servicing and Management), SFC (System File Checker)
- **Documentation**: Markdown, Git/GitHub, structured troubleshooting logs
- **Methodology**: Structured troubleshooting, root cause analysis, clear documentation
## Projects
### [Network Diagnostics Report](network-diagnostics.md)
Diagnosed network configuration using ipconfig, ping, tracert, and nslookup. Documented IP addressing, subnet mask, default gateway, DNS servers, DHCP status, connectivity testing, route tracing, and DNS resolution.
### [System Performance Investigation](system-performance.md)
Investigated system performance using Task Manager and Event Viewer. Identified top resource-consuming processes, startup impact analysis, and analyzed system and application event logs for warnings and errors.
### [System Health Check](system-health-check.md)
Performed Windows system integrity verification using DISM and System File Checker (SFC). Documented the standard Microsoft-recommended repair workflow and results.
## Contact
- **Name**: Your Name
- **Email**: your-email@example.com
- **LinkedIn**: linkedin.com/in/your-profile
Secret mission
Write a 'User Cannot Connect to the Internet' Troubleshooting Runbook
Ready to go beyond documenting your own system? In this mission, you will write a complete troubleshooting runbook for the single most common help desk ticket: a user who cannot connect to the internet. This is the kind of structured documentation that shows employers you think like a technician.
Clean Up Your Resources
Clean Up Your Resources
This project runs entirely locally on your Windows PC with a free GitHub account, so there are no ongoing costs. Decide whether to keep your resources as they are, pause them to come back later, or delete them entirely.
Resources you used:
- Git for Windows (installed software on your PC).
- GitHub repository (it-support-portfolio, public, on your GitHub account).
- Local project folder (it-support-portfolio in your Documents folder, containing README.md, network-diagnostics.md, system-performance.md, and system-health-check.md).
- Git global configuration (your name and email set via git config --global).
Keep everything running
No action needed. Choose this if you are still actively building your portfolio or plan to add more projects soon.
- Your GitHub repository stays public and accessible at your repository URL.
- Your local folder and files remain on your PC.
- Git for Windows stays installed and ready for future projects.
- There are no ongoing costs for any of these resources.
Pause - I'll come back to this later
Free up local disk space while keeping your GitHub repository intact online. You can re-clone the repository whenever you are ready to continue.
- Your GitHub repository stays live. All your files are safely stored there.
- Delete the local it-support-portfolio folder from your PC if you want to free up space.
- Keep Git for Windows installed so you do not need to reinstall it later.
- When you are ready to continue, run git clone again with your repository URL to get a fresh local copy.
Delete - I don't want to use this again
Remove all project resources from your PC and GitHub. Only do this if you are sure you will not need this portfolio again.
- Delete the local it-support-portfolio folder from your PC.
- On GitHub, go to your it-support-portfolio repository.
- Click Settings in the top navigation bar.
- Scroll to the bottom of the page to the Danger Zone section.
- Click Delete this repository and follow the confirmation prompts.
- To uninstall Git for Windows, press the Windows key, type Add or remove programs, and press Enter.
- Search for Git, click the three dots next to it, and select Uninstall.
- To remove your Git global configuration, open Command Prompt and run:
git config --global --unset user.name
git config --global --unset user.email
Nice Work!
Nice Work!
You now have a live, public IT support portfolio on GitHub that proves you can do the work of a help desk technician. Every file in your repository is real documentation based on your own system, not copied boilerplate.
You learned how to:
- Set up Git and GitHub from scratch and practiced the core version control workflow: clone, add, commit, push.
- Diagnosed network configuration using ipconfig, ping, tracert, and nslookup and documented your findings in structured Markdown reports.
- Investigated system performance and health using Task Manager, Event Viewer, DISM, and SFC, the standard Windows repair workflow.
- Secret Mission: Wrote a complete troubleshooting runbook for the most common help desk ticket, showing you can think and document like a professional technician.
Your GitHub link is ready to go on your resume under a "Technical Projects" section.
Ready to quiz yourself?