-->

ABOUT US

Our development agency is committed to providing you the best service.

OUR TEAM

The awesome people behind our brand ... and their life motto.

  • Kumar Atul Jaiswal

    Ethical Hacker

    Hacking is a Speed of Innovation And Technology with Romance.

  • Kumar Atul Jaiswal

    CEO Of Hacking Truth

    Loopholes are every major Security,Just need to Understand it well.

  • Kumar Atul Jaiswal

    Web Developer

    Techonology is the best way to Change Everything, like Mindset Goal.

OUR SKILLS

We pride ourselves with strong, flexible and top notch skills.

Marketing

Development 90%
Design 80%
Marketing 70%

Websites

Development 90%
Design 80%
Marketing 70%

PR

Development 90%
Design 80%
Marketing 70%

ACHIEVEMENTS

We help our clients integrate, analyze, and use their data to improve their business.

150

GREAT PROJECTS

300

HAPPY CLIENTS

650

COFFEES DRUNK

1568

FACEBOOK LIKES

STRATEGY & CREATIVITY

Phasellus iaculis dolor nec urna nullam. Vivamus mattis blandit porttitor nullam.

PORTFOLIO

We pride ourselves on bringing a fresh perspective and effective marketing to each project.

  • switch-trunking lab in Cisco Packet Tracer

     

    switch-trunking lab in Cisco Packet Tracer



    We can recreate this exact switch-trunking lab in Cisco Packet Tracer. The key concept is:

    Access ports connect end devices to one VLAN. Trunk port carries multiple VLANs between switches.

    One small correction in the image: the SW2 configuration appears to show vlan 18 and vlan 38, but based on the topology it should be VLAN 10, 20, and 30.


    why a company needs trunking.


    Let's forget Packet Tracer for a moment and look at an actual corporate office.

    Imagine your Cubic office

    Suppose an office has 200 employees and one switch has 48 ports.
    The company doesn't want every device to be in the same network.

    They may create:

    • VLAN 10 → Employees
    • VLAN 20 → IT/Servers
    • VLAN 30 → Guest Wi-Fi
    • VLAN 40 → CCTV
    • VLAN 50 → Voice/IP Phones


    So physically you might have:


    switch-trunking lab in Cisco Packet Tracer


    Now comes the important question:



    Why do we need a TRUNK?


    Imagine SW1 and SW2 are on different floors.

    https://www.kumaratuljaiswal.in/2026/05/router-switch-integration-in-cisco.html




    But users on both floors need access to the same VLANs.

    For example:

     
    SW1                          SW2
    
    Employee VLAN 10 ─────────── VLAN 10
    IT VLAN 20      ─────────── VLAN 20
    Guest VLAN 30   ─────────── VLAN 30
    Voice VLAN 40   ─────────── VLAN 40
    



    Do we need four physical cables?


    SW1 ================= SW2   VLAN 10
    
    SW1 ================= SW2   VLAN 20
    
    SW1 ================= SW2   VLAN 30
    
    SW1 ================= SW2   VLAN 40
    
    
    



    That would be inefficient.

    Instead, we use one trunk link:


    switch-trunking lab in Cisco Packet Tracer

    That's the main reason for trunking.

    1. Create the topology


    In Packet Tracer, add:

    2 × 2960 switches
    4 × PCs


    Arrange them:  

     

     

    switch-trunking lab in Cisco Packet Tracer

     More precisely:

     

    switch-trunking lab in Cisco Packet Tracer


    Connections

     


         
     Device	   Port	               Device	     Port	Type
      PC1	   FastEthernet0	SW1	     Fa0/1	Copper Straight-Through
      PC2	   FastEthernet0	SW1	     Fa0/2	Copper Straight-Through
      SW1	   Fa0/24	        SW2          Fa0/24	Copper Cross-Over*
      PC3	   FastEthernet0	SW2	     Fa0/1	Copper Straight-Through
      PC4	   FastEthernet0	SW2	     Fa0/2	Copper Straight-Through
    
    
                             www.kumaratuljaiswal.in
    
    

     

    2. Create VLANs on SW1


    Click SW1 → CLI. 

     

    enable
    configure terminal
    
    vlan 10
    name VLAN10
    exit
    
    vlan 20
    name VLAN20
    exit
    
    vlan 30
    name VLAN30
    exit
    

     

    So SW1 now has:

    • VLAN 10
    • VLAN 20
    • VLAN 30 

     

    3. Configure PC1 port as VLAN 10


    PC1 is connected to SW1 Fa0/1.


    This means:

    interface fa0/1
    switchport mode access
    switchport access vlan 10
    exit
    
      

      PC1
       |
      Fa0/1
       |
      VLAN 10 

       

      4. Configure PC2 port as VLAN 20


      interface fa0/2
      switchport mode access
      switchport access vlan 20
      exit
      



      Now:

      PC1 → VLAN 10
      PC2 → VLAN 20 

       

      5. Configure SW1-to-SW2 as a trunk


      This is the most important part.

      On SW1: 

      interface fa0/24
      switchport mode trunk
      switchport trunk allowed vlan 10,20
      exit
      
      


      Notice:

      allowed vlan 10,20

      We are not allowing VLAN 30.

      Therefore:

      • VLAN 10 → Allowed
      • VLAN 20 → Allowed
      • VLAN 30 → Blocked 

       

       

      6. Configure SW2


      Go to SW2 → CLI.

      Create the same VLANs:
       

      enable
      configure terminal
      
      vlan 10
      name VLAN10
      exit
      
      vlan 20
      name VLAN20
      exit
      
      vlan 30
      name VLAN30
      exit
      

       


      7. Configure PC3 as VLAN 10


      PC3 is connected to SW2 Fa0/1:
       

      interface fa0/1
      switchport mode access
      switchport access vlan 10
      exit
      
      

       

      8. Configure PC4 as VLAN 20

      interface fa0/2
      switchport mode access
      switchport access vlan 20
      exit
      

       

      9. Configure SW2 trunk 

      interface fa0/24
      switchport mode trunk
      switchport trunk allowed vlan 10,20
      exit
      

       

      Now both sides of the trunk agree: 

      SW1 Fa0/24
            ||
            ||  802.1Q TRUNK
            ||
      SW2 Fa0/24


      Allowed VLANs:
      10
      20

      VLAN 30:
      NOT ALLOWED 

       



      10. Configure PC IP addresses


      Go to each PC:


      PC → Desktop → IP Configuration


      PC1

      • IP Address: 192.168.10.10
      • Subnet Mask: 255.255.255.0


      PC2

      • IP Address: 192.168.20.10
      • Subnet Mask: 255.255.255.0


      PC3

      • IP Address: 192.168.10.20
      • Subnet Mask: 255.255.255.0


      PC4

      • IP Address: 192.168.20.20
      • Subnet Mask: 255.255.255.0


      You don't need a default gateway for this particular lab because we're only testing Layer-2 communication within the same VLAN.


      11. Test the important part


      From PC1:

      • ping 192.168.10.20

      Expected:

      • Reply from 192.168.10.20


      Why? 

       

      PC1
      VLAN 10
         ↓
      SW1
         ↓
      TRUNK
         ↓
      SW2
         ↓
      VLAN 10
         ↓
      PC3
      

       

      So PC1 → PC3 should work.

      Now from PC2:

      ping 192.168.20.20

      Expected:

      Reply from 192.168.20.20

      Because both are VLAN 20. 

       

      12. Test between different VLANs


      From PC1:

      ping 192.168.20.20

      This should fail.

      Why?

      PC1 → VLAN 10
                   X
               VLAN 20

      A Layer-2 switch does not route between VLAN 10 and VLAN 20. You would need a router or Layer-3 switch for inter-VLAN routing.


      13. Verify the VLANs


      On SW1:

      • show vlan brief


      You should see something similar to:

      VLAN Name       Status    Ports
      
      10   VLAN10     active    Fa0/1
      20   VLAN20     active    Fa0/2
      30   VLAN30     active
      

         

        On SW2:

        • show vlan brief


        You should see

        10   VLAN10     active    Fa0/1
        20   VLAN20     active    Fa0/2
        30   VLAN30     active  
          

         

        14. Verify the trunk


        On either switch:

        • show interfaces trunk


        You should see Fa0/24 as a trunk.

        Most importantly, the allowed VLAN list should contain:

        10,20

        and not 30.

        You can also check:

        • show interfaces fa0/24 switchport


        Look for:

        Administrative Mode: trunk
        Operational Mode: trunk

        and the allowed VLANs. 

         

        The three tests you should remember for your System Engineer interview

         

          
        | Test          | Expected                              |
        | ------------- | ------------------------------------- |
        | PC1 → PC3     | ✅ Works — same VLAN 10                |
        | PC2 → PC4     | ✅ Works — same VLAN 20                |
        | PC1 → PC2/PC4 | ❌ Fails — different VLANs, no routing |
        
          


        And the important interview explanation is:

        “I configured Fa0/1 and Fa0/2 as access ports for VLAN 10 and VLAN 20. I configured the inter-switch Fa0/24 link as an 802.1Q trunk and restricted the allowed VLANs to 10 and 20. VLAN 30 exists on the switches but is not permitted across the trunk.” 

         

        Disclaimer


        All tutorials are for informational and educational purposes only and have been made using our own routers, servers, websites and other vulnerable free resources. we do not contain any illegal activity. We believe that ethical hacking, information security and cyber security should be familiar subjects to anyone using digital information and computers. Hacking Truth is against misuse of the information and we strongly suggest against it. Please regard the word hacking as ethical hacking or penetration testing every time this word is used. We do not promote, encourage, support or excite any illegal activity or hacking.


      • DNS troubleshooting in PowerShell

         

        DNS troubleshooting in PowerShell

        DNS troubleshooting in PowerShell


        DNS means domain name server or system you can say that so with the help of DNS in your system whenever you will browse anything like google.com so it will resolver by dns first. It is used for translates human-readable web addresses (like google.com) into computer-readable IP addresses. Anyone around the world can use it as a free alternative to their internet service provider's default DNS server.

        The IP address 8.8.8.8 is a public Google Public DNS resolver operated by Google LLC.



        DNS troubleshooting with PowerShell


        1. Check which DNS server your computer is using

        • Get-DnsClientServerAddress


        This shows the DNS servers configured on each network adapter.


        For example:

          
        InterfaceAlias   ServerAddresses
        --------------   ---------------
        Wi-Fi            {192.168.1.1}
          


        If you're on an AD lab, you would typically expect the client/member server to use the Domain Controller's IP as its DNS server.


        2. Check DNS configuration for a specific adapter

        • Get-DnsClientServerAddress -InterfaceAlias "Wi-Fi"


        For Ethernet:

        • Get-DnsClientServerAddress -InterfaceAlias "Ethernet"



        DNS troubleshooting in PowerShell

         

        3. Test whether DNS can resolve a hostname


        This is one of the most useful commands for IT Support:

        • Resolve-DnsName google.com


        You should get information such as:


        Name        Type   IPAddress
        ----        ----   ---------
        google.com  A      xxx.xxx.xxx.xxx



        For your AD lab, test your domain:

        • Resolve-DnsName test.com


        or your Domain Controller:

        • Resolve-DnsName dc01.test.com


        DNS troubleshooting in PowerShell

        4. Test DNS using a specific DNS server


        This is very useful for troubleshooting.

        • Resolve-DnsName google.com -Server 8.8.8.8


        You're saying:

        • "Ask DNS server 8.8.8.8 to resolve this name."


        You can compare it with your configured DNS server:

        • Resolve-DnsName google.com -Server 192.168.1.1


        This helps determine whether the problem is with the DNS server or your local configuration.

         

        DNS troubleshooting in PowerShell

         

         5. Check DNS cache

        • Get-DnsClientCache


        This displays DNS records currently cached by the Windows DNS client.


        To clear the cache:

        • Clear-DnsClientCache


        This is useful when troubleshooting situations where an old DNS record is being returned.

         

         

        DNS troubleshooting in PowerShell

         

         6. Check whether a DNS server is reachable


        You can test connectivity:

        • Test-NetConnection 8.8.8.8 -Port 53



        For your AD DNS server:

        Test-NetConnection 192.168.1.10 -Port 53


        Look for:

        • TcpTestSucceeded : True



        Important: DNS normally uses UDP 53, while Test-NetConnection -Port 53 tests TCP connectivity. So this is a connectivity check, not a complete DNS functionality test.

         

         

        DNS troubleshooting in PowerShell


         7. Check the DNS client service


        Windows has a DNS Client service.

        • Get-Service -Name Dnscache


        Example:


        Status   Name       DisplayName
        ------   ----       -----------
        Running  Dnscache   DNS Client


        If necessary:

        Restart-Service -Name Dnscache

        Be careful with restarting services on production machines.

         

         

        DNS troubleshooting in PowerShell

         

         A real IT Support troubleshooting scenario


        Suppose a user says:

        "I can connect to Wi-Fi, but I can't open websites."

        Don't immediately assume it's an internet problem.


        You could troubleshoot:



        Step 1
        — Check IP configuration

        • Get-NetIPConfiguration

        Step 2 — Check configured DNS

        • Get-DnsClientServerAddress

        Step 3 — Test DNS resolution

        • Resolve-DnsName google.com

        Step 4 — Test another DNS server

        • Resolve-DnsName google.com -Server 8.8.8.8

        Step 5 — Check DNS cache

        • Get-DnsClientCache

        Step 6 — Clear DNS cache if appropriate

        • Clear-DnsClientCache


        Then test again:

        Resolve-DnsName google.com
        For your Active Directory lab

        This is particularly important for your System Engineer preparation.

        Your lab should look roughly like:

         

        DNS troubleshooting in PowerShell

        On the Windows 10 client:

        • Get-DnsClientServerAddress


        Check that the DNS server points to your Domain Controller's IP, not an external DNS server such as 8.8.8.8.


        Then:

        • Resolve-DnsName yourdomain.local


        And:

        • Resolve-DnsName dc01.yourdomain.local



        This is a much better lab exercise for your GitHub documentation because it demonstrates the relationship between DNS + Active Directory + Windows client troubleshooting, rather than simply showing individual commands.

        Commands:

         

        • Get-DnsClientServerAddress
        • Get-DnsClientCache
        • Resolve-DnsName
        • Test-NetConnection
        • Get-NetIPConfiguration
        • Get-Service -Name Dnscache
        • Clear-DnsClientCache

         

         

         

         

      • Design the complete IT-Support-Troubleshooting repository structure in github

         

        Design the complete IT-Support-Troubleshooting repository structure in github

         

        For IT Support Technical Engineer role and your target System Engineer role, I would make this repository a serious IT Support / Desktop Support / L1-L2 Troubleshooting Knowledge Base, not just a collection of random notes.

        Repository name:

        IT-Support-Troubleshooting

        The goal is that a recruiter can open it and immediately see:

        Incident → Symptoms → Diagnosis → Commands → Root Cause → Resolution → Verification

         

        1. Complete repository structure 

         

        IT-Support-Troubleshooting/
        │
        ├── README.md
        ├── CONTRIBUTING.md
        ├── LICENSE
        │
        ├── 01-Hardware/
        │   ├── README.md
        │   ├── laptop-not-powering-on.md
        │   ├── desktop-not-powering-on.md
        │   └── no-display.md
        │
        ├── 02-Windows-OS/
        │   ├── README.md
        │   ├── windows-slow-performance.md
        │   ├── windows-not-booting.md
        │   └── windows-freezing.md
        │
        ├── 03-Networking/
        │   ├── README.md
        │   ├── no-network-connectivity.md
        │   └── test-netconnection.md
        │
        ├── 04-Active-Directory/
        │   ├── README.md
        │   ├── domain-login-failure.md
        │   ├── account-lockout.md
        │   ├── password-expired.md
        │   └── password-reset.md
        │
        ├── 05-Microsoft-365/
        │   ├── README.md
        │   ├── outlook-not-opening.md
        │   ├── outlook-not-syncing.md
        │
        ├── 06-Outlook/
        │   ├── README.md
        │
        ├── 07-Remote-Access/
        │   ├── README.md
        │   ├── rdp-not-working.md
        │   ├── rdp-authentication-failure.md
        │   └── remote-access-dns-issue.md
        │
        ├── 08-Printers/
        │   ├── README.md
        │   ├── printer-offline.md
        │   ├── printer-not-detected.md
        │   └── slow-printing.md
        │
        ├── 09-File-Share-Permissions/
        │   ├── README.md
        │   ├── network-share-not-accessible.md
        │   └── file-server-connectivity.md
        │
        ├── 10-Applications/
        │   ├── README.md
        │   ├── application-not-opening.md
        │   ├── missing-dll-error.md
        │   ├── application-permission-issue.md
        │   └── compatibility-issues.md
        │
        ├── 11-User-Account/
        │   ├── README.md
        │   ├── password-reset.md
        │   ├── account-lockout.md
        │   ├── account-disabled.md
        │   ├── account-expired.md
        │   ├── profile-issue.md
        │   ├── permission-request.md
        │   ├── access-request.md
        │   └── new-user-setup.md
        │
        ├── 12-Security/
        │   ├── README.md
        │   ├── malware-suspected.md
        │   └── security-incident-escalation.md
        │
        ├── 13-Software-Installation/
        │   ├── README.md
        │   ├── software-installation-failure.md
        │   └── software-license-issue.md
        │
        ├── 14-Performance/
        │   ├── README.md
        │   ├── high-cpu.md
        │   ├── disk-space-low.md
        │   └── system-resource-analysis.md
        │
        ├── 15-Services/
        │   ├── README.md
        │   ├── windows-service-stopped.md
        │   ├── service-not-starting.md
        │   └── service-account-permission.md
        │
        ├── 16-PowerShell/
        │   ├── README.md
        │   ├── basic-system-check.md
        │   └── remote-computer-check.md
        │
        ├── 17-Command-Line/
        │   ├── README.md
        │   ├── ipconfig.md
        │   ├── dism.md
        │   └── gpupdate.md
        │
        ├── 18-ITSM/
        │   ├── README.md
        │   ├── incident-management.md
        │   ├── service-request.md
        │   └── knowledge-base.md
        │
        ├── 19-Troubleshooting-Methodology/
        │   ├── README.md
        │   ├── troubleshooting-framework.md
        │   ├── l1-troubleshooting.md
        │   └── escalation-guidelines.md
        │
        └── 20-Interview-Scenarios/
            ├── README.md
            ├── windows-scenarios.md
            └── system-engineer-scenarios.md
        

         

        That's a large structure, but you should not create every file immediately. Create folders progressively as you learn and document them.


        2. The most important part — your README


        Your root README.md should act as the homepage.

        I would structure it like this: 

         

        # IT Support Troubleshooting
        
        A practical IT Support and System Administration troubleshooting knowledge base
        covering Windows, networking, Active Directory, Microsoft 365, PowerShell,
        remote access, hardware, applications, security, and ITSM.
        
        ## 🎯 Purpose
        
        This repository documents practical troubleshooting procedures, diagnostic
        commands, root-cause analysis, and resolutions commonly encountered in
        IT Support and System Administration environments.
        
        ## 🧑‍💻 Career Focus
        
        - IT Support Technical Engineer
        - Desktop Support Engineer
        - System Engineer
        - Windows Administrator
        - Infrastructure Support Engineer
        
        ## 📚 Categories
        
        | Category | Topics |
        |---|---|
        | Hardware | Laptop, desktop, storage, peripherals |
        | Windows | OS, boot, updates, BSOD, performance |
        | Networking | TCP/IP, DNS, DHCP, connectivity |
        | Active Directory | Users, groups, GPO, domain issues |
        | Microsoft 365 | Outlook, Teams, OneDrive, licensing |
        | Remote Access | RDP, VPN |
        | Printers | Local and network printers |
        | File Shares | SMB, NTFS, permissions |
        | Applications | Installation, crashes, compatibility |
        | Security | Malware, phishing, endpoint issues |
        | PowerShell | Administration and diagnostics |
        | ITSM | Incidents, requests, escalation, SLA |
        
        ## 🔧 Troubleshooting Approach
        
        My standard troubleshooting workflow:
        
        1. Understand the problem
        2. Identify symptoms
        3. Gather information
        4. Check basic connectivity
        5. Reproduce the issue
        6. Form possible causes
        7. Perform diagnostics
        8. Identify root cause
        9. Apply resolution
        10. Verify the fix
        11. Document the incident
        12. Identify preventive actions
        
        ## 🖥️ Environment
        
        Examples and labs are performed using:
        
        - Windows 10/11
        - Windows Server
        - Active Directory
        - Microsoft 365
        - Cisco Packet Tracer
        - PowerShell
        - VMware
        - Linux
        - Docker
        
        ## ⚠️ Disclaimer
        
        All examples are based on lab environments or generic scenarios.
        
        No confidential employer information, credentials, internal hostnames,
        IP addresses, tickets, or proprietary data are included.
        
        ## 🚀 Future Learning
        
        - Azure
        - Linux Administration
        - Docker
        - Automation
        - Security
        - SecDevOps
        

         


        One change I'd make to your original idea

        Don't call the repository simply a "Troubleshooting Notes" repository.

        Call it:

        IT Support Troubleshooting Knowledge Base

        And make the content demonstrate:

        diagnosis + commands + reasoning + root cause + resolution + verification.

        That distinction matters.

        A recruiter seeing 100 copied troubleshooting articles isn't particularly impressive.


        A recruiter seeing:

        "Here is the problem, here is how I isolated the fault, here are the commands I used, here is the root cause, here is how I verified the resolution."

        is much more valuable.


        Our first milestone


        I'd target:
         

        IT-Support-Troubleshooting
        │
        ├── 30 documented troubleshooting scenarios
        ├── 20+ PowerShell/CLI commands
        ├── 10 interview scenarios
        ├── 5 troubleshooting workflows
        ├── 5 lab-based scenarios
        └── 1 professional README
        

         

        For now, we will create only the folder/file structure — no troubleshooting content.

        Since you are on Windows, I recommend creating the repository on GitHub first, then using Git + PowerShell to generate the complete structure in one shot. This is much faster and cleaner than manually creating 150+ files in the GitHub website.



        Step 1 — Create the GitHub repository


        Go to your GitHub profile:

        GitHub

        Click:

        Repositories → New

        Use: 

         


         

        Why no README/license right now?


        Because we're going to create them locally along with the entire structure.

        Click:

        Create repository

        Your repository will be:

        https://github.com/whoiskumaratul/IT-Support-Troubleshooting

         


        Step 2 — Clone it to your computer



        Open PowerShell.

        First check Git:

        git --version

        If you get something like:

        git version 2.x.x

        you're ready.


        Go somewhere you keep your projects, for example:

        cd C:\Users\$env:kumaratuljaiswal\Documents


        Then clone:

        git clone https://github.com/whoiskumaratul/IT-Support-Troubleshooting.git

        Enter the repository:

        cd IT-Support-Troubleshooting


        Check:

        dir (dir or windows and pwd for linux)


        You should now be inside:

        ...\Documents\IT-Support-Troubleshooting 

         

        Step 3 — Create the root files


        Run:

        • New-Item README.md -ItemType File
        • New-Item CONTRIBUTING.md -ItemType File
        • New-Item LICENSE -ItemType File


        Don't put content in them yet.

        Your repository now looks like:

         

        IT-Support-Troubleshooting/
        │
        ├── README.md
        ├── CONTRIBUTING.md
        └── LICENSE 
        

         

         

        Design the complete IT-Support-Troubleshooting repository structure in github

         

         In windows powershell, the  - a- - - string represents file attribute, where each position corresponds to a specific flag, and the a specifcially stands for the archive attribute.

         When a letter is visible that attributes is turned on. When there is a dash ( - ) that specific attribute is turned off.

         
        Here is what each of the five slots represents from left to right:

         

        a (Archive): The file is marked for backup. Windows automatically checks this box whenever a file is created or modified, signaling to backup programs that this file has changed and needs to be saved.
        
        r (Read-only): The file is locked against changes (currently off).
        
        h (Hidden): The file is hidden from normal view (currently off).
        
        s (System): The file is a critical operating system file (currently off).
        
        l (Reparse point/ Link): The file is a symbolic link or shortcut to another location (currently off).
        
        
        Because your files show - a---, it simply means they are standard, non- hidden files that are ready to be backed up by the operating system. 
         

        Full tutorial of Git and Github 

         

         Full tutorial of Git and Github 

         

        Click Here 

         

         

        Step 4 — Create all the folders


        You can create the 20 main categories with one PowerShell command:

         

        $folders = @(
            "01-Hardware",
            "02-Windows-OS",
            "03-Networking",
            "04-Active-Directory",
            "05-Microsoft-365",
            "06-Outlook",
            "07-Remote-Access",
            "08-Printers",
            "09-File-Share-Permissions",
            "10-Applications",
            "11-User-Account",
            "12-Security",
            "13-Software-Installation",
            "14-Performance",
            "15-Services",
            "16-PowerShell",
            "17-Command-Line",
            "18-ITSM",
            "19-Troubleshooting-Methodology",
            "20-Interview-Scenarios"
        )
        
        foreach ($folder in $folders) {
            New-Item $folder -ItemType Directory -Force
        }
        

         

         

        Directly run this command into powershell 

         Now:

          

        IT-Support-Troubleshooting/
        │
        ├── README.md
        ├── CONTRIBUTING.md
        ├── LICENSE
        │
        ├── 01-Hardware/
        ├── 02-Windows-OS/
        ├── 03-Networking/
        ├── 04-Active-Directory/
        ├── 05-Microsoft-365/
        ├── 06-Outlook/
        ├── 07-Remote-Access/
        ├── 08-Printers/
        ├── 09-File-Share-Permissions/
        ├── 10-Applications/
        ├── 11-User-Account/
        ├── 12-Security/
        ├── 13-Software-Installation/
        ├── 14-Performance/
        ├── 15-Services/
        ├── 16-PowerShell/
        ├── 17-Command-Line/
        ├── 18-ITSM/
        ├── 19-Troubleshooting-Methodology/
        └── 20-Interview-Scenarios/
        

         

         

        Design the complete IT-Support-Troubleshooting repository structure in github
         

         

        d - directory  

         

        Step 5 — Create README inside every category


        Run:

        Get-ChildItem -Directory | ForEach-Object {
            New-Item "$($_.FullName)\README.md" -ItemType File -Force
        }

        Now every category has:

          01-Hardware/
        └── README.md
        
        02-Windows-OS/
        └── README.md
        
        03-Networking/
        └── README.md
        ....
          

        Again, these files are intentionally empty for now.  

         

        Step 6 — Create the troubleshooting files


        Now we can create all the empty .md files.

        Hardware

          

        $files = @{
            "01-Hardware" = @(
                "laptop-not-powering-on.md"
                "desktop-not-powering-on.md"
                "docking-station-issues.md"
            )
        
            "02-Windows-OS" = @(
                "windows-slow-performance.md"
                "windows-not-booting.md"
                "environment-variables.md"
            )
        
            "03-Networking" = @(
                "no-network-connectivity.md"
        
                "test-netconnection.md"
            )
        
            "04-Active-Directory" = @(
                "domain-login-failure.md"
                "account-lockout.md"
                "active-directory-replication-basics.md"
            )
        
            "05-Microsoft-365" = @(
                "outlook-not-opening.md"
                "outlook-not-syncing.md"
                "m365-service-health-check.md"
            )
        
            "06-Outlook" = @(
                "profile-creation.md"
                "profile-corruption.md"
                "ost-file-issues.md"
                "outlook-connectivity.md"
            )
        
            "07-Remote-Access" = @(
                "rdp-not-working.md"
                "rdp-authentication-failure.md"
                "remote-access-dns-issue.md"
            )
        
            "08-Printers" = @(
                "printer-offline.md"
                "printer-not-detected.md"
                "slow-printing.md"
            )
        
            "09-File-Share-Permissions" = @(
                "network-share-not-accessible.md"
                "access-denied.md"
                "file-server-connectivity.md"
            )
        
            "10-Applications" = @(
                "application-not-opening.md"
                "application-crashing.md"
                "application-freezing.md"
                "compatibility-issues.md"
            )
        
            "11-User-Account" = @(
                "password-reset.md"
                "new-user-setup.md"
            )
        
            "12-Security" = @(
                "malware-suspected.md"
                "phishing-email.md"
                "security-incident-escalation.md"
            )
        
            "13-Software-Installation" = @(
                "software-installation-failure.md"
                "software-uninstallation.md"
                "software-license-issue.md"
            )
        
            "14-Performance" = @(
                "high-cpu.md"
                "high-memory.md"
                "system-resource-analysis.md"
            )
        
            "15-Services" = @(
                "windows-service-stopped.md"
                "service-not-starting.md"
                "service-startup-type.md"
                "service-dependency.md"
                "service-account-permission.md"
            )
        
            "16-PowerShell" = @(
                "basic-system-check.md"
                "service-check.md"
                "remote-computer-check.md"
            )
        
            "17-Command-Line" = @(
                "ipconfig.md"
                "ping.md"
                "gpupdate.md"
            )
        
            "18-ITSM" = @(
                "incident-management.md"
                "service-request.md"
                "knowledge-base.md"
            )
        
            "19-Troubleshooting-Methodology" = @(
                "troubleshooting-framework.md"
                "escalation-guidelines.md"
            )
        
            "20-Interview-Scenarios" = @(
                "windows-scenarios.md"
                "networking-scenarios.md"
                "system-engineer-scenarios.md"
            )
        }
        
        foreach ($folder in $files.Keys) {
            foreach ($file in $files[$folder]) {
                New-Item "$folder\$file" -ItemType File -Force | Out-Null
            }
        }
        

         

         

        Important: this only creates the files. It does not put troubleshooting content inside them.


        Step 7 — Verify the structure


        Run:

        tree /F 

         

        IT-Support-Troubleshooting
        │   CONTRIBUTING.md
        │   LICENSE
        │   README.md
        │
        ├───01-Hardware
        │       README.md
        │       blue-screen-bsod.md
        │       desktop-not-powering-on.md
        │       ...
        │
        ├───02-Windows-OS
        │       README.md
        │       windows-not-booting.md
        │       ...
        │
        ├───03-Networking
        │       README.md
        │       dns-resolution-failure.md
        │       ...
        │
        ├───04-Active-Directory
        │       README.md
        │       account-lockout.md
        │       ...
        │
        ...
        └───20-Interview-Scenarios
                README.md
                windows-scenarios.md
                ...
        

         

         

        Step 8 — Check Git status


        Run:

        git status

        You should see many new files.

        Then:

        git add .

        Check:

        git status

        You'll see the files staged for commit.

         

         

         

        Design the complete IT-Support-Troubleshooting repository structure in github


        Design the complete IT-Support-Troubleshooting repository structure in github


        Step 9 — Make your first commit


        Use a meaningful commit:

        git commit -m "chore: create IT support troubleshooting knowledge base structure"

        Then push:

        git push origin main

        If Git asks you to authenticate, complete the GitHub authentication process.





        Design the complete IT-Support-Troubleshooting repository structure in github


        Step 10 — Check GitHub 

        Open:

        Your IT-Support-Troubleshooting repository

        You should now see:



        📁 01-Hardware
        📁 02-Windows-OS
        📁 03-Networking
        📁 04-Active-Directory
        📁 05-Microsoft-365
        📁 06-Outlook
        📁 07-Remote-Access
        📁 08-Printers
        📁 09-File-Share-Permissions
        📁 10-Applications
        📁 11-User-Account
        📁 12-Security
        📁 13-Software-Installation
        📁 14-Performance
        📁 15-Services
        📁 16-PowerShell
        📁 17-Command-Line
        📁 18-ITSM
        📁 19-Troubleshooting-Methodology
        📁 20-Interview-Scenarios
        
        📄 README.md
        📄 CONTRIBUTING.md
        📄 LICENSE
        




        Design the complete IT-Support-Troubleshooting repository structure in github



        One important GitHub detail


        Git itself doesn't track empty directories. That's why we're creating README.md inside every category. Without a file, an empty folder won't appear in GitHub.

        So this:

        01-Hardware/

        would disappear if completely empty.

        But this:

        01-Hardware/
        └── README.md

        will be tracked.


        NOTE - .md (Markdown) files are very widely supported, and for your GitHub repository, .md is actually the correct choice.




      • PowerShell for Windows Server Administration: Commands, Help, Modules & Practical Guide

         

        PowerShell for Windows Server Administration

         

        PowerShell for Windows Server Administration: Commands, Help, Modules & Practical Guide


        If you are preparing for a System Engineer, Infrastructure Engineer, Systems Administrator, or Windows Server Administrator role, PowerShell is one of the most useful skills you can learn.

        Windows administrators traditionally perform many tasks through graphical tools such as Server Manager, Computer Management, Active Directory Users and Computers, Event Viewer, and Control Panel. However, PowerShell provides a powerful command-line environment that allows administrators to automate repetitive tasks, manage servers, retrieve system information, troubleshoot problems, and work with Microsoft technologies.

        In this article, I will cover the fundamentals of PowerShell for Windows Server Administration, including the PowerShell versions, basic commands, help system, modules, profiles, functions, and some practical commands that I tested during my learning.

        What Is PowerShell?


        PowerShell is Microsoft's command-line shell and scripting language designed for system administration and automation.

        Unlike traditional Command Prompt, PowerShell works with objects rather than only text.

        For example: 

        • Get-Process


        This command retrieves running processes from the computer.

        You can then use other PowerShell commands to filter, sort, export, or manipulate that information.
        This object-based approach makes PowerShell extremely useful for Windows administration.



        Why Should a System Engineer Learn PowerShell?


        PowerShell is particularly useful for system engineers and administrators because many administrative tasks can be automated.


        Some common tasks include:

        • Managing Windows servers
        • Managing users and groups
        • Working with Active Directory
        • Managing services
        • Checking running processes
        • Managing disks
        • Checking system information
        • Managing Windows features
        • Working with networking
        • Troubleshooting Windows
        • Managing Microsoft 365
        • Managing Azure resources
        • Automating repetitive administrative tasks


        Instead of manually performing the same task through a GUI hundreds of times, PowerShell can often complete the task with a command or script.


        Alternative Job Titles for System Engineer


        When searching for IT infrastructure jobs, don't search only for System Engineer.
        Organizations may use different job titles for similar infrastructure responsibilities.

        1. Infrastructure Engineer


        An Infrastructure Engineer generally works with:

        • Servers
        • Networking
        • Storage
        • Virtualization
        • Cloud infrastructure
        • Enterprise hardware


        2. Systems Administrator


        A Systems Administrator is responsible for the day-to-day administration of systems.

        Typical responsibilities include:


        • User management
        • Server maintenance
        • Software installation
        • Troubleshooting
        • Backup management
        • Security configuration


        3. Site Reliability Engineer — SRE


        An SRE focuses heavily on reliability, availability, monitoring, automation, and software-based infrastructure management.

        SRE roles generally require stronger knowledge of:

        • Linux
        • Cloud
        • Programming/scripting
        • CI/CD
        • Monitoring
        • Automation


        4. DevOps Engineer


        A DevOps Engineer works between development and operations.

        Common technologies include:

        • Git
        • CI/CD
        • Docker
        • Kubernetes
        • Cloud platforms
        • Infrastructure as Code
        • PowerShell/Bash/Python


        5. Platform Engineer


        Platform Engineers build and maintain internal platforms and infrastructure used by development teams.

         

        Checking the PowerShell Version


        The first command I recommend running when learning PowerShell is:

        $PSVersionTable

         

         


         



        This displays information about the currently installed PowerShell environment.

        You can see information such as:

        • PowerShell version
        • Edition
        • Operating system
        • Compatible versions
        • Platform information


        For example:

        • $PSVersionTable


        The important property for beginners is:

        • PSVersion


        This tells you which version of PowerShell you are currently using.


        PowerShell 5.1 vs PowerShell 7


        There are two important PowerShell versions you will encounter.

        Windows PowerShell 5.1

        Windows PowerShell 5.1 is the traditional Windows PowerShell version that comes with Windows.

        You can normally launch it using:

        • powershell.exe
        • PowerShell 7


        PowerShell 7 is the newer, cross-platform version of PowerShell.

        You can launch it using:

        • pwsh


        PowerShell 7 can run on:

        • Windows
        • Linux
        • macOS


        However, when working with Windows Server administration, you should understand that PowerShell 5.1 and PowerShell 7 are not identical.

        Some older Windows administration modules were designed specifically around Windows PowerShell 5.1.


        Installing PowerShell 7 with Winget



        If PowerShell 7 is not installed, you can search for it using Windows Package Manager:

        • winget search Microsoft.PowerShell

         

        PowerShell for Windows Server Administration: Commands, Help, Modules & Practical Guide

         

         


        Then install it using:

        • winget install --id Microsoft.Powershell --source winget


         

        PowerShell for Windows Server Administration: Commands, Help, Modules & Practical Guide

          

        After installation, you can launch PowerShell 7 with:

        • pwsh


         

        PowerShell for Windows Server Administration

         

         

        You can then verify the version:

        • $PSVersionTable


        Tip: When following older Windows Server administration tutorials, always check whether the instructor is using Windows PowerShell 5.1 or PowerShell 7.


        How to Find PowerShell Commands

        • PowerShell contains thousands of commands and cmdlets.
        • Trying to memorize all of them is unnecessary.
        • Instead, learn how to find commands.


        The most useful command is:

        • Get-Command


        It displays commands available in your current PowerShell environment.

        For example:

        • Get-Command


        If the output is long, you can pipe it to:

        • Get-Command | more

         

        PowerShell for Windows Server Administration 

         This allows you to view the results page by page.

         

        Understanding PowerShell Verb-Noun Naming


        PowerShell commands generally follow a Verb-Noun naming convention.

        Examples:

        • Get-Process
        • Get-Service
        • Get-Disk
        • Get-Date
        • Set-Date
        • New-Item
        • Remove-Item
        • Start-Service
        • Stop-Service


        This naming convention makes PowerShell commands easier to understand.

        For example:

        • Get + Process

        means:

        Get information about processes.

        Similarly:

        • Get + Service

        means:

        Get information about services.

        Learning common PowerShell verbs makes discovering commands much easier.

         

        Getting Help in PowerShell


        One of the most important skills for PowerShell administration is knowing how to use its built-in help system.

        You don't need to remember every parameter of every command.

        Instead, use:

        • Get-Help


        For example:

        • Get-Help Get-Process

         

        PowerShell for Windows Server Administration

          

        This provides information about the Get-Process cmdlet.

        You can also use:

        • help Get-Process


        PowerShell also supports searching for commands based on partial names.

        For example:

        • Get-Help Set-A*


        This can help you discover commands beginning with Set-A.



        Updating PowerShell Help


        PowerShell includes downloadable help documentation.

        To download the latest help files, use:

        • Update-Help


        This updates the help content available to PowerShell.

        You may need to run PowerShell with appropriate privileges depending on your environment.

        After updating the help files, you can use:

        • Get-Help Get-Process

        This is an excellent habit when learning a new cmdlet.

        Practical Example: Get-Date

        Let's look at a simple PowerShell command.

        • Get-Date


        This displays the current date and time.

        You can also control how the output is displayed.

        For example:

        • Get-Date -Format "HH:mm:ss"


        This displays the current time in:

        Hours:Minutes:Seconds

        For example:

        • 01:36:25


        The -Format parameter allows you to specify the desired date/time format.

        Saving PowerShell Output to a File

        PowerShell can redirect command output to a file.

        For example:

        • Get-Date -Format "HH:mm:ss" | Out-File C:\data\time.txt


        Here we are using the pipeline:

        • Get-Date → Out-File


        The result is written to:

        • C:\data\time.txt


        This concept becomes extremely important when creating administration scripts and reports.

        Understanding the PowerShell Pipeline

        The pipeline is one of the most powerful features of PowerShell.

        The pipe symbol is:

        |

        It sends the output of one command to another command.

        For example:

        • Get-Process | more

         

        PowerShell for Windows Server Administration

         

         


        The output from Get-Process is passed to more.

        Another example:

        • Get-Date -Format "HH:mm:ss" | Out-File C:\data\time.txt


        The output from Get-Date is passed to Out-File.

        As you progress into PowerShell administration, you will use pipelines extensively.



        Checking PowerShell History


        PowerShell keeps a history of commands executed during the current session.

        Use:

        • Get-History


        This displays previously executed commands.

        This is useful when:

        • You forgot a command you just executed
        • You want to repeat a command
        • You are troubleshooting
        • You are documenting your administration work


        For example:

        • Get-History


        can show the commands that you recently ran.



        Checking Disk Information


        PowerShell also provides cmdlets for managing and inspecting hardware resources.

        For example:

        • Get-Disk


        This displays information about disks connected to the system.

        Depending on your system, you may see information such as:

        • Disk number
        • Disk size
        • Operational status
        • Partition style
        • Provisioning type


        For Windows Server administration, disk management is an important area because administrators frequently work with storage, partitions, volumes, and file systems.



        What Is a PowerShell Module?


        A PowerShell module is a package that can contain:

        • Cmdlets
        • Functions
        • Variables
        • Aliases
        • Other PowerShell resources


        Modules extend PowerShell's capabilities.

        For example, Windows administrators may use modules for:

        • Active Directory
        • Hyper-V
        • Microsoft 365
        • Azure
        • Networking
        • Windows administration


        To see modules available in your environment, you can use:

        • Get-Module -ListAvailable


        To see modules currently loaded into the session:

        • Get-Module


        Important clarification


        A common beginner mistake is confusing Get-Module with "adding a module."

        Get-Module gets information about modules.

        To load a module into the current session, you typically use:

        • Import-Module ModuleName


        For example:

        Import-Module ActiveDirectory



        PowerShell for Windows Server Administration


        What Is a PowerShell Profile?


        A PowerShell profile is a script that runs when PowerShell starts.

        It can be used to store personal configuration and customizations.

        For example, you could configure your PowerShell environment so that certain functions or aliases are automatically available whenever you start a new session.

        This gives you an important advantage:

        Your settings and customizations can be loaded automatically in future PowerShell sessions.

        You can check whether a profile exists using:

        • Test-Path $PROFILE


        You can view the profile path using:

        • $PROFILE

         

        What Is a PowerShell Function?


        A function is a reusable block of PowerShell code.

        Functions are particularly useful when you repeatedly perform the same operation.

        For example:

        function Get-MyComputerInfo {
            Get-ComputerInfo
        }

        After creating the function, you can run:

        • Get-MyComputerInfo


        Instead of repeatedly typing a complicated sequence of commands, you can create a function and call it using a short name.

        Think of a function as:

        A reusable shortcut for a set of PowerShell commands.

        Functions become extremely useful as you start writing administration scripts.


        PowerShell Knowledge Check


        During my learning, I also reviewed some basic PowerShell questions.

        1. What cmdlet is used to get information about modules?

        • Get-Module


        2. What command downloads the latest PowerShell help files?

        • Update-Help


        3. What is an advantage of adding a PowerShell profile?

        • A profile allows you to save configurations, functions, aliases, and other customizations so they can be loaded automatically in future sessions.


        4. What is the default Windows PowerShell version commonly associated with Windows Server?

        • Windows PowerShell 5.1 is the built-in Windows PowerShell version on modern Windows Server releases, although newer PowerShell versions can also be installed separately.


        5. What is a PowerShell function?

        • A function is a reusable block of PowerShell code that can simplify repetitive or complicated operations.

         

        PowerShell Commands I Practiced


        Here is a quick summary of the commands covered in this learning session:

         

        PowerShell for Windows Server Administration

         

        My Practical PowerShell Learning


        The commands covered in this article are not just theoretical concepts. I practiced them directly in a Windows environment to understand how PowerShell behaves and how administrators can use it for everyday system administration.

        Some of the commands I practiced included:

        $PSVersionTable
        
        Get-Command | more
        
        Get-Help Get-Process
        
        Update-Help
        
        Get-Date -Format "HH:mm:ss"
        
        Get-Date -Format "HH:mm:ss" | Out-File C:\data\time.txt
        
        Get-History
        
        Get-Disk
        

         

        These basic commands form a good foundation before moving into more advanced Windows Server administration. 

         

         

        What's Next in My PowerShell Learning?

        After understanding the fundamentals, the next step is to move from basic commands into real Windows Server administration.

        The areas I plan to explore include:

        Windows Server

        • Server management
        • Windows services
        • Event Viewer
        • Windows Features
        • Server roles
        • Storage management


        Active Directory

        • Users
        • Groups
        • Organizational Units
        • Password policies
        • User management
        • Group Policy


        Networking

        • IP configuration
        • DNS
        • DHCP
        • Network adapters
        • Firewall
        • Connectivity troubleshooting


        Automation

        • PowerShell scripts
        • Functions
        • Variables
        • Loops
        • Conditional statements
        • Error handling
        • Scheduled tasks


        Advanced Administration

        • Remote Server Administration
        • PowerShell Remoting
        • Windows Server automation
        • Microsoft 365 administration
        • Azure administration


        Conclusion


        PowerShell is an essential technology for anyone interested in Windows Server Administration, System Engineering, Infrastructure Engineering, or IT Operations.

        The most important lesson for beginners is that you don't need to memorize thousands of commands. Instead, learn how to discover commands, read documentation, understand parameters, use the pipeline, and build reusable functions.

        Commands such as:

        • Get-Command
        • Get-Help
        • Get-Module
        • Get-Process
        • Get-Service
        • Get-Disk


        can become your everyday tools as a Windows administrator.

        The next step is to take these fundamentals into a practical Windows Server lab and start managing users, groups, services, Active Directory, DNS, DHCP, storage, networking, and Group Policy using PowerShell.

        That is where PowerShell starts becoming a real System Engineer skill, rather than simply another command-line tool. 

         

         

         

      • WHAT WE DO

        We've been developing corporate tailored services for clients for 30 years.

        CONTACT US

        For enquiries you can contact us in several different ways. Contact details are below.

        Hacking Truth.in

        • Street :Road Street 00
        • Person :Person
        • Phone :+045 123 755 755
        • Country :POLAND
        • Email :contact@heaven.com

        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.