eliweitzman / EnterpriseTechTool

A one-stop-shop powershell-based application for automating and abstracting enterprise service tasks!
BSD 3-Clause "New" or "Revised" License
9 stars 1 forks source link
collaborate enterprise enterprise-tools github laps powershell powershell-script tools utilities

🚀 Eli's Enterprise Tech Toolkit!

GitHub License GitHub all releases GitHub Repo stars GitHub Discussions

Welcome to Eli's Enterprise Tech Tool (ETT, or Enterprise Tech Tool, for short). In this project, I hope to combine a bunch of useful sysadmin/helpdesk solutions that could be potentially helpful in general field work. ETT is an all-in-one power tool for Windows, built as a PowerShell script. Designed with IT professionals in mind, this application is customizable, and feature-packed with tons of admin tools to make life easier. Most of these projects are made from ideas I've had while at work, but hopefully some new functions come about soon!

Features

A screenshot of the application window.

Core Functions

Additional Modules!

A screenshot of an Active Directory Explorer popout function.

A screenshot of a LAPS UI popout function to get LAPS passcodes.

A standalone version of the LAPS client currently lives at https://github.com/eliweitzman/ETT-LAPS in case you don't want to download the whole toolkit! Version updates for this will be updated in sequence, but all changes will be made here in ETT.

Recommended Experience before deployment

While it's optional, and I try to add as much context and instructions to the project as possible to run without experience, it would be good to have some experience in the following tools:

Runtime Options

ETT can run in a few different ways, depending on preference, and on your own personal security preferences.

Run option Details
Stock PS Script Just downloading and running the PS1 file direct from the repository.
Stock EXE Version A pre-compiled stock version of ETT, either with Admin mode on or off. Able to bypass execution policy.
Modified PS Script Downloading the PS1 file, and adjusting the feature flags (indicated below).
Modified EXE Modifying the flags, and compiling it as an EXE for use. Able to bypass execution policy.

Install Methods

  1. Using the Windows Package Manager (Machine-wide only... info)

Standard Install:

winget install --id=EliWeitzman.ETT -s winget
  1. Self-extracting Installer

Simply run the latest release's ETT.Installer.exe

  1. Portable Mode

A single, standalone EXE application, portable enough to fit on a flash drive!

Automatic Updates

Beginning with release 1.2.1, ETT will now be able to automatically check for, and run software updates. However, there are a few key prerequisites necessary.

  1. Ensure the Windows Package Manager tool is installed (or that you have the latest version of the App Installer Windows App).
  2. You must be running an installed version of ETT. Portable versions will prompt that an update is available to download, but it will not self-update.

Optimal Environment

The application is designed to run as a PowerShell Script, but as well is compiled into an executable, using the awesome module PS2EXE, made by MScholtes, based on code by Ingo Karstein. This is currently designed to run in an Enterprise environment, however it is tweakable to be run as a personal tool as well (although LAPS, policy updates, and a few other tools certainly aren't necessary).

Customizing for your Deployment

Starting with ETT 1.3, ETT now supports the implementation of custom config files! The ETTConfig.json file contains all settings that support the various business needs surrounding customization and enhancement. Additionally, ETT now features a graphical settings UI, which will allow for simpler configuration management. Settings GUI can as well be disabled through manual modification of the ETTConfig file.

Custom Scripts!

Included in versions 1.3 and newer, ETT now has baked-in support for custom function imports! For more information, check out the wiki for detailed steps.

Contributing

ETT is an open-source application, and I'd love to make it open for contribution! If you would like to add a feature, or propose an idea to be added to the future, fill out a GitHub issue, and I'll start tinkering with it! Every enterprise and user is different, so a one-size-fits-all solution is almost impossible without input! Check out our contributing page to learn more about how to help build ETT for the future! Also, be sure to check out the Code of Conduct for our moderation practices.

License

This code is provided under a BSD-3-Clause License. For a fun video understanding licenses, this video wraps up upen source license types pretty cleanly!

General Disclaimer

I'm currently a college student, and this project was a small timefiller. I might not be able to add new features or maintain this as quickly and consistently in the future. I hope by making this open-source, many others will choose to contribute and grow this application even further (although it certainly is challening, this being PowerShell-based and all). Plus, this is my first open-source project, and I'm pumped to learn more through this launch! Also, occasionally, you may find GenZ language used. But not too much 😎. Also, for those curious about the wallpaper used in screenshots, I got it from here on Wallpaperhub!

Lastly, this PowerShell-based application, like anything envolving an elevated environment, has the potential to bypass execution policies when run as an executable. While it provides a certain level of convenience, it may also carry security risks if used without proper understanding or precautions. It should be used responsibly, with explicit authorization and compliance with all relevant corporate and legal guidelines. If this application is to be used in script form, modifications to the code may be required, and a valid signature would be needed to maintain security integrity. More guidelines are laid out in our security policy page, linked here.