-->

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.

  • 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. 

     

     

     

  • Mastering PowerShell Commands: A Practical Guide to Get, Set, New, Invoke, Start, Add, Copy, Clear & More

     

    Mastering PowerShell Commands: A Practical Guide to Get, Set, New, Invoke, Start, Add, Copy, Clear & More

     

    A Practical Guide to Get, Set, New, Invoke, Start, Add, Copy, Clear & More

     
    There are PowerShell verb names used to make cmdlets predictable. PowerShell provides many standard verbs such as Get, Set, New, Find, Search, Read, Invoke, Start, Add, Clear, Close, Copy, and Enter. Each verb represents a different type of operation. For example, Get is generally used to retrieve information, Set modifies an existing configuration, New creates a new object, Start begins a service or process, and Copy creates a copy of an existing file or resource. Understanding these verbs helps administrators predict what a command is likely to do. 

     

    1. Get - retrieve information


    This is probably the most important PowerShell verb.

    Get-Service

    Get a particular service:
    Get-Service -Name Spooler


     

    Mastering PowerShell Commands: A Practical Guide to Get, Set, New, Invoke, Start, Add, Copy, Clear & More


    Get processes:
    Get-Process

    Get local users:
    Get-LocalUser


    Mastering PowerShell Commands: A Practical Guide to Get, Set, New, Invoke, Start, Add, Copy, Clear & More


    Think:

    Get = Show me information.

     

    2. Set — change something


    For example:

    Set-Service -Name Spooler -StartupType Automatic

    You're changing the startup type of the Spooler service.

    You'll see something like:

      
    Name     State    StartMode
    ----     -----    ---------
    Spooler  Running  Auto
      

     

    • Name → service name
    • State → whether it's currently Running or Stopped
    • StartMode → how Windows starts it (Auto, Manual, Disabled)

     

    Even you check by GUI -> win + r -> services.msc -> Find Print Spooler or Spooler -> right click on this service ->  Properties

     

    Mastering PowerShell Commands: A Practical Guide to Get, Set, New, Invoke, Start, Add, Copy, Clear & More

     


    Think:

    Set = Change existing information.


    3. New — create something


    Create a folder:

    New-Item -Path C:\Data\Test -ItemType Directory

    Create a file:

    New-Item -Path C:\Data\Test.txt -ItemType File


    In Active Directory:

    New-ADUser -Name "John Smith" -SamAccountName jsmith


    Think:

    New = Create something that doesn't exist yet. 

     

    4. Find — find a resource


    A good PowerShell example is:

    Find-Module -Name Pester

    This searches the PowerShell Gallery for the module.


    Mastering PowerShell Commands: A Practical Guide to Get, Set, New, Invoke, Start, Add, Copy, Clear & More

    Another example:

    Find-Command -Name Get-ADUser

    This helps find which module provides a command.

    Think:

    Find = Locate a PowerShell resource. 

     

    5. Search — search data/resources


    For Active Directory:

    Search-ADAccount -LockedOut

    This searches AD for locked-out accounts.

    Another useful example:

    Search-ADAccount -PasswordExpired

    Think:

    Search = Search for specific conditions/data.

    Important: Find and Search aren't interchangeable. The exact availability of these verbs depends on the installed module/cmdlets. 

     

    6. Read — read input/data



    A common example is:

    Read-Host "Enter your username"

    It waits for the administrator to enter something.

    For example:

    $name = Read-Host "Enter your name"

    Then:

    $name

    Think:

    Read = Receive/read information. 

     

     7. Invoke — execute something


    This is extremely important for System Administrators.

    For example, execute a command on a remote server:

    Invoke-Command -ComputerName SERVER01 -ScriptBlock {
        Get-Service
    }


    PowerShell connects to SERVER01 and executes:

    Get-Service

    You can also invoke a command locally:

    Invoke-Command -ScriptBlock {
        Get-ComputerInfo
    }


    Think:

    Invoke = Execute something.

     

    8. Start — start something


    Start a Windows service:

    Start-Service -Name Spooler

    Start a process:

    Start-Process notepad.exe

    Think:

    Start = Start an operation/process/service. 

     

     9. Add — add something


    Add a user to a local group:

    Add-LocalGroupMember -Group "Administrators" -Member "Atul"

    For Active Directory:

    Add-ADGroupMember -Identity "IT-Users" -Members tom

    Think:

    Add = Add an object/member to something.

     

    10. Clear — clear contents


    Clear a text file without deleting the file:

    Clear-Content C:\Data\log.txt

    The file remains, but its contents are removed.

    Clear the PowerShell screen:

    Clear-Host

    Usually you'll see:

    cls

    which is an alias for Clear-Host.

    Think:

    Clear = Remove existing contents without necessarily deleting the object. 

     

     11. Close — close something


    For example, with SMB:

    Close-SmbSession -SessionId 5

    This closes a particular SMB session.

    Think:

    Close = Close an existing connection/session/resource.


    12. Copy — copy something


    Copy a file:

    Copy-Item C:\Data\report.txt C:\Backup\

    Copy a folder:

    Copy-Item C:\Data C:\Backup -Recurse

    Think:

    Copy = Create a copy somewhere else.

     


    For Currently Logged-in User

     

    Get-CimInstance Win32_LoggedOnUser 

     

     13. Enter — enter a session


    This one is particularly important for Windows administration.

    Enter-PSSession -ComputerName SERVER01

    You'll enter an interactive PowerShell session on SERVER01.

    Your prompt may change to something like:

    [SERVER01]: PS C:\Users\Administrator>

    Now:

    Get-Service

    runs on SERVER01, not your local computer.

    To leave:

    Exit-PSSession

    Think:

    Enter = Enter an interactive session/environment.

     

    The pattern you should remember


    PowerShell cmdlets generally follow: 

    VERB - Noun

    For Example:
     

    Get       - Service
    Set       - Service
    Start     - Service
    Stop      - Service
    
    Get       - Process
    Stop      - Process
    Start     - Process
    
    Get       - LocalUser
    New       - LocalUser
    Set       - LocalUser
    Remove    - LocalUser
    

     

    This makes PowerShell much easier to learn.

    Instead of memorizing hundreds of commands individually, understand the verb + noun pattern. 

     


    💡 Why PowerShell?


    For a Windows Administrator, PowerShell isn't just about knowing commands. It's about using automation and scripting to troubleshoot systems, manage users and services, collect information, and perform repetitive administrative tasks efficiently. 

     


  • 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.