-->

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.

Showing posts with label system engineer. Show all posts
Showing posts with label system engineer. Show all posts
  • 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. 

     

     

     

  • Auto Temp File Cleaner in Batch Scripting

     

    Auto Temp File Cleaner in Batch Scripting



    Auto Temp File Cleaner in Batch Scripting | Delete Temporary Files Automatically


    Over time, Windows stores temporary files that can consume disk space and sometimes affect system performance. While these files are generally safe to remove, deleting them manually can be time-consuming.

    With Batch Scripting, you can automate this task using just a few commands. In this tutorial, we'll create a simple Auto Temp File Cleaner that deletes files from the current user's temporary folder.



    Batch Script

      
    @echo off
    
    echo Cleaning Temp folder...
    
    del /q /f /s "%temp%\*.*"
    
    echo.
    
    echo Temp folder cleaned successfully.
    
    pause
      



    How the Script Works


    Step 1: Turn Off Command Display

    @echo off

    This hides the commands while the script is running, making the output cleaner.



    Step 2: Display a Message

    echo Cleaning Temp folder...

    This lets the user know that the cleanup process has started.



    Step 3: Delete Temporary Files

    del /q /f /s "%temp%\*.*"

    Let's understand each option:







    Step 4: Display Completion Message

    echo Temp folder cleaned successfully.

    This confirms that the script has finished.


    Step 5: Pause the Window

    pause

    Keeps the Command Prompt window open until a key is pressed.



    Sample Output


    Cleaning Temp folder...

    Temp folder cleaned successfully.

    Press any key to continue . . .



    Why Use an Auto Temp File Cleaner?


    Cleaning temporary files can help you:

    • Free up disk space
    • Remove unnecessary temporary files
    • Keep your system organized
    • Save time by automating repetitive tasks
    • Real-World Uses


    System Engineers and IT Support Engineers often use similar scripts to:

    • Clean temporary files during troubleshooting
    • Prepare computers before software installation
    • Perform regular maintenance
    • Include cleanup as part of larger automation scripts
    • Things to Remember
    • Some temporary files may still be in use by Windows or running applications and cannot be deleted immediately.
    • Running the script as an administrator may allow additional files to be removed.
    • This script targets the current user's Temp folder only.



    Interview Questions


    What does %temp% represent?
    • It is an environment variable that points to the current user's temporary folder.

    What does the del command do?
    • It deletes files from a specified location.

    What is the purpose of the /q option?
    • It deletes files without asking for confirmation.
    Why is /f used?

    It forces the deletion of read-only files.

    Why is Batch Scripting useful for system maintenance?
    • It automates repetitive administrative tasks, saving time and reducing manual effort.


    Conclusion


    An Auto Temp File Cleaner is one of the simplest and most practical Batch Scripting projects for beginners. It demonstrates how a few commands can automate a common Windows maintenance task. As you continue learning Batch Scripting, projects like this will help you build automation skills that are valuable for IT Support, System Administration, and future System Engineer roles.




  • How to Fix "A Trust Relationship Between This Workstation and the Primary Domain Failed" in Windows

     

    A Trust Relationship Between This Workstation and the Primary Domain Failed

     

     

    How to Fix "A Trust Relationship Between This Workstation and the Primary Domain Failed" in Windows (Complete Guide)


    Fix Trust Relationship Failed Error in Windows Domain

    Learn how to fix "A Trust Relationship Between This Workstation and the Primary Domain Failed" using PowerShell, Active Directory, and domain rejoin methods.


    This issue prevents domain users from logging into their computers even though their passwords are correct.

    The good news is that the problem is usually not related to the user's password. Instead, it happens because the computer itself can no longer authenticate with the domain controller. 

     

    In this guide, you'll learn:


    • What this error means
    • Why it happens
    • What a secure channel is
    • How computer passwords work in Active Directory
    • Multiple ways to fix the problem
    • Best practices to prevent it in the future



    What Does This Error Mean?


    When a Windows computer is joined to an Active Directory domain, it creates a computer account inside Active Directory.

    That computer account behaves much like a user account.

    Instead of logging in with a username and password, the computer authenticates itself using a secret machine password, also called the computer account password.

    When Windows starts, the workstation silently proves its identity to the Domain Controller using this password.

    If both passwords match, authentication succeeds.

     

     

    If they don't match, Windows displays:

     

    A Trust Relationship Between This Workstation and the Primary Domain Failed


    Understanding the Computer's Local Secure Channel Password


    Many people confuse this with the user's Windows password.

    They are completely different.





    Think of it like this:

    Your user password identifies you.
    The computer password identifies the PC.

    The error occurs because the computer's identity cannot be verified anymore.




    What Is a Secure Channel?


    A Secure Channel is an encrypted communication path between a domain-joined computer and the Domain Controller.

    This secure channel allows Windows to perform tasks such as:

    • User authentication
    • Kerberos ticket requests
    • Group Policy processing
    • Password changes
    • Active Directory communication


    The secure channel depends on the machine account password.

    If that password becomes invalid, the secure channel breaks.



    How Windows Automatically Changes the Computer Password



    One interesting fact many administrators don't know is that Windows automatically changes the computer account password.

    By default:

    • Password changes every 30 days
    • Managed by the Netlogon service
    • The process happens automatically
    • Users never notice it


    The process is simple:

    1. Windows generates a new random machine password.
    2. The password is stored locally.
    3. The workstation contacts the Domain Controller.
    4. Active Directory updates the computer account password.
    5. Secure communication continues normally.


    No administrator intervention is required.


    Why Does the Trust Relationship Fail?


    There are several common reasons.


    1. Computer Stayed Offline Too Long


    This is the most common cause.

    Example:

    A company laptop is stored for several months.

    During this period:

    • Active Directory expects newer machine passwords.
    • The laptop still has the old password.
    • Authentication fails.


    Result:

    Trust relationship failed.


    Why Does the Trust Relationship Fail?


    There are several common reasons.


    1. Computer Stayed Offline Too Long

     
    This is the most common cause.

    Example:

    A company laptop is stored for several months.

    During this period:

    • Active Directory expects newer machine passwords.
    • The laptop still has the old password.
    • Authentication fails.


    Result:

    Trust relationship failed.


    4. Active Directory Restore


    Restoring a Domain Controller from an older backup may restore an outdated computer password.

    The workstation has the newer password.

    Again, the passwords no longer match.



    5. Virtual Machine Snapshot Rollback


    This is common in virtual environments.

    If a VM is reverted to an old snapshot, it also restores an old machine password.
    The Domain Controller still expects the newer one.



    Symptoms


    You may notice:

    • Trust relationship error during login
    • Unable to log in using domain credentials
    • Local Administrator login still works
    • Group Policy not updating
    • Authentication failures
    • Domain resources inaccessible
    • How to Verify the Problem


    Login using a local administrator account.

    Open PowerShell as Administrator and Run.

    • Test-ComputerSecureChannel



    Example output:

    • False


    This indicates the secure channel is broken.


     


    Method 1 – Repair Using PowerShell (Recommended)


    This is the fastest solution.

    Open PowerShell as Administrator.


    Run:

    • Test-ComputerSecureChannel -Repair -Credential DOMAIN\DomainAdminUser -Verbose



    Example:

    • Test-ComputerSecureChannel -Repair -Credential CONTOSO\AdminUser -Verbose


    If successful, PowerShell returns:

    • True



    Restart the computer.

    The trust relationship should now be restored.


    Method 2 – Reset the Computer Account


    On the Domain Controller:

    • Open Active Directory Users and Computers (ADUC).
    • Locate the computer object.
    • Right-click the computer.
    • Select Reset Account.
    • Confirm the action.


    Now return to the workstation.

    Repair the secure channel or rejoin the domain.



    Method 3 – Remove and Rejoin the Domain


    If PowerShell repair doesn't work:

    Open:
    System Properties


    Go to:
    Computer Name


    Click:
    Change


    Choose:
    Workgroup

    Restart the computer.


    Then:
    Join the domain again.
    Restart once more.


    This creates a new secure relationship with Active Directory.


    Method 4 – Using Netdom


    If RSAT tools are installed:

    • netdom resetpwd /server:DomainController /userd:Domain\AdminUser /passwordd:*


    Restart afterward.



    How the Authentication Process Works





    Best Practices to Prevent This Error



    Keep laptops online regularly
    Long periods without connecting to the domain can increase the chance of machine password synchronization issues.


    Avoid deleting computer accounts
    Delete computer accounts only when the device has been permanently decommissioned.


    Don't restore old VM snapshots
    Rolling back a virtual machine may also roll back its machine password.


    Verify before resetting
    Before resetting a computer account, confirm that the issue is actually related to the secure channel.


    Use PowerShell First
    Instead of immediately removing and rejoining the domain, try repairing the secure channel. It is faster and preserves the existing computer account relationship.



    Frequently Asked Questions (FAQ)


    Does this error mean the user's password is wrong?
    No.

    The user's password is usually correct. The issue is with the computer's secure channel password.


    Does Windows automatically change the computer password?
    Yes.

    By default, Windows changes the machine account password every 30 days using the Netlogon service.



    Conclusion


    The "A Trust Relationship Between This Workstation and the Primary Domain Failed" error is a common issue in Active Directory environments, but it is straightforward to resolve once you understand how machine account passwords and secure channels work.

    For most situations, repairing the secure channel with PowerShell is the quickest and least disruptive solution. If that doesn't work, resetting the computer account or rejoining the domain will restore communication with the Domain Controller.

    Whether you're an IT Support Engineer, System Administrator, or preparing for technical interviews, mastering this troubleshooting scenario is an essential skill that you'll likely encounter in enterprise Windows environments.



  • User Input Yes No Prompt in Batch Scripting

      

    User Input Yes No Prompt in Batch Scripting

     

    User Input Yes/No Prompt in Batch Scripting


    Many Batch Scripts require user confirmation before performing an action. For example, a script may ask whether you want to continue, delete a file, or restart a system.

    In such cases, we can use a **Yes/No Prompt** to collect user input and execute different actions based on the response.
    In this tutorial, we'll learn how to create a simple Yes/No prompt in Batch Scripting.



    Example Script

      
      
    @echo off
    
    :start
    cls
    set /p user_input=Do you want to continue? (yes/no)?:
    if not defined user_input goto start
    ::echo %user_input%
    if /i %user_input%==y goto Yes
    if /i %user_input%==n (goto No) else (goto InvalidInput)
    
    :: /i for upercase, lowercase, or mixed case letters. It makes the comparison case-insensitive.
    
    :Yes
    echo user has entered yes
    pause
    goto start
    
    :No
    echo user has entered no
    pause
    goto start
    
    :invalidInput
    echo %user_input% is an Invalid input. Please enter 'y' or 'n'.` 
    set user_input=
    pause
    goto start
      



    How the Script Works


    #Step 1: Ask for User Input

    set /p user_input=Do you want to continue? (yes/no)?:


    The user's response is stored in the variable:
    user_input


    Example:

    y
    OR
    n




    #Step 2: Check for Empty Input

    if not defined user_input goto start

    If the user presses Enter without typing anything, the script returns to the beginning and asks again.



    #Step 3: Handle "Yes"

    if /i %user_input%==y goto Yes

    If the user enters:
    y


    The script jumps to:
    :Yes



    Output:

    user has entered yes




    #Step 4: Handle "No"

    if /i %user_input%==n (goto No)
    If the user enters:
    n


    The script jumps to:
    :No


    Output:
    user has entered no



    #Step 5: Handle Invalid Input

    If the user enters something else:

    abc


    The script jumps to:
    :InvalidInput


    Output:


    abc is an Invalid input. Please enter 'y' or 'n'.
    The variable is cleared and the user is asked again.




    What Does /I Mean?




    The `/i` option makes comparisons case-insensitive.



    Example:



    The following inputs will all be treated as valid:
    y
    Y

    Without `/i`, Batch would treat uppercase and lowercase letters differently.



    Sample Output



    #User Enters Yes

    Do you want to continue? (yes/no)? y
    user has entered yes


    #User Enters No

    Do you want to continue? (yes/no)? n
    user has entered no


    #User Enters Invalid Value
    Do you want to continue? (yes/no)? hello

    hello is an Invalid input. Please enter 'y' or 'n'.





    Real-World Uses



    System Engineers often use Yes/No prompts for:

    • * Confirming software installations
    • * Starting backups
    • * Restarting services
    • * Deleting files or folders
    • * Running maintenance tasks
    • * Executing administrative scripts


    This helps prevent accidental actions.




    Interview Questions


    #What does `set /p` do?
    It takes input from the user and stores it in a variable.


    #What does `if not defined` do?
    It checks whether a variable is empty.


    #What does `/i` mean in an IF statement?
    It makes the comparison case-insensitive.


    #Why is input validation important?
    It prevents users from entering invalid values and improves script reliability.


    #What is the purpose of `goto`?
    It transfers execution to a specified label.



    Conclusion


    A Yes/No prompt is a simple but useful feature in Batch Scripting. It allows scripts to interact with users, validate input, and perform different actions based on the response. By combining `set /p`, `if`, and `goto`, you can build more interactive and user-friendly automation scripts.



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