Giter VIP home page Giter VIP logo

fafb-powershell-tool's Introduction

Active Directory Querier

Project Tracker Platform Style Guide

GitHub Actions Workflow Status Codacy Badge Static Badge GitHub release (latest by date)

Active Directory Querier is a Windows GUI for creating, saving, and executing one or more PowerShell commands against a Local Active Directory.

Getting Started

Installing

To begin using Active Directory Querier, no additional software installation is required. Simply go to the latest releases tab and select the version that matches your architecture.

Development

If you are interested in pursuing or expanding this project, here are the requirements you will need to begin:

fafb-powershell-tool's People

Contributors

j0seph0 avatar lsobtafo avatar strangeranger avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

eduanejones

fafb-powershell-tool's Issues

Application crashes when executing to CSV or TXT file

Describe the bug
When trying to execute to a CSV or TXT file from within the Query Builder, the application crashes.

To Reproduce
Steps to reproduce the behavior:
Screen Recording 2024-03-17 at 12 47 02 PM

Screen Recording 2024-03-17 at 12 47 02 PM

Expected behavior
Expect that the code ensures that the output from the executed command gets placed into an external file of my choosing.

Backend – New Parameter Slot Button

Brief Overview

There should exist a button that when pressed, adds new parameter slots to a command.

User Stories / Use Cases

As a user, I want to be able to include as many parameters as I'd like, to retrieve the appropriate data.

Acceptance Criteria

  • A button to add additional parameter slots.
  • When clicked, new parameter slots appear.

Backend – Load Saved Queries

Brief Overview

There must exist some functionality, where when a saved query is selected, it loads all of the commands, title, information, etc.

User Stories / Use Cases

As a user, I want to load saved queries, so I can execute them again.

Acceptance Criteria

List of criteria to meet for the requirement to be considered complete.

Backend – New Command Slot Button

Brief Overview

There should exist a button that when pressed, adds a new command slot in the Query Builder.

User Stories / Use Cases

As a user, I want to be able to execute more than one PowerShell command, to get multiple pieces of data.

Acceptance Criteria

  • Button
  • Functionality

Duplicate parameters + values when saving a query

Describe the bug
Sometimes, when saving a query, the application saves double the number of parameters + values than what was specified in the GUI.

To Reproduce
Steps to reproduce the behavior:

  1. Start the application in a new session with no saved queries, and the data file containing saved queries doesn't exist.
  2. Go to the "Query Builder" tab, and create and save a new query with the command, parameters, and its value filled out (i.e. Get-ADUser -Filter *.
  3. The saved query should now be in the left sidebar.
  4. Open the CustomQueries.dat file within the executable's directory.
  5. You should now see something similar to the following:
    	{
    		"$id": "1",
    		"$values": [
    		  {
    		    "$id": "2",
    		    "commandName": "Get-ADUser",
    		    "commandParameters": [
    		      "-Filter"
    		    ],
    		    "commandParametersValues": [
    		      "*"
    		    ],
    		    "queryName": "",
    		    "queryDescription": ""
    		  }
    		]
    	}
    
  6. Now exit the file and return the application's "Query Builder" tab if you aren't already there.
  7. Save the query once more; now, you should see a new saved query in the left sidebar.
  8. Once again, open the CustomQueries.dat file.
  9. You should now see something like the following:
    	{
    	  "$id": "1",
    	  "$values": [
    	    {
    	      "$id": "2",
    	      "commandName": "Get-ADUser",
    	      "commandParameters": [
    	        "-Filter"
    	      ],
    	      "commandParametersValues": [
    	        "*"
    	      ],
    	      "queryName": "",
    	      "queryDescription": ""
    	    },
    	    {
    	      "$id": "3",
    	      "commandName": "Get-ADUser",
    	      "commandParameters": [
    	        "-Filter",
    	        "-Filter"
    	      ],
    	      "commandParametersValues": [
    	        "*",
    	        "*"
    	      ],
    	      "queryName": "",
    	      "queryDescription": ""
    	    }
    	  ]
    	}
    
  10. Notice how the newest query has duplicate command parameters and values.

Expected behavior
I expect that it doesn't duplicate the number of present parameters. I expect it stores the exact number and parameter present in the GUI.

Can't execute query from query button after clearing query builder

Describe the bug
After clearing the Query Builder and creating a new query, I face a problem when attempting to execute the query from the Query Button. A notification pops up, stating that the command must be set before the query can be executed, which prevents me from executing the query.

To Reproduce
Steps to reproduce the behavior:
Screen Recording 2024-03-17 at 12 17 55 PM

Expected behavior
I expect the program to be still able to execute the query from the Query Stack Panel.

Backend – Export Console Output

Brief Overview

There should exist a button that allows you to export the contents of the console output.

Detailed Description:

When pressing the button, the user should be prompted on what format to want the output to be exported as.

User Stories / Use Cases

As a user, I want to export the output of a command, to review it at a later date.

Acceptance Criteria

  • A button to perform the export action.
  • A prompt displayed to the user, allowing them to choose the format everything is exported as.

Backend – Active Directory Command and Argument Dropdown

Brief Overview

The dropdown menus in the Query Builder should display Active Directory commands, and provide the appropriate parameters for that command.

User Stories / Use Cases

As an admin, I want to easily access a full list of PowerShell commands and arguments in the Active Directory module, so I don't have to remember every possible command.

Acceptance Criteria

  • Several dropdown menus, located in the Query Builder tab/window, that display AD commands and arguments.

Backend – Query Saving

Brief Overview

There must exist a button such that when pressed, a built query is saved for later use.

User Stories / Use Cases

As a user, I want to save PowerShell queries, so that I can use them again in the future.

Acceptance Criteria

  • A button to save the query.
  • A section on the GUI where each query is saved and can be selected.
  • A physical file that the queries are saved to.
    • The file should be a serialized .dat file.
      • There needs to be an agreed-upon format for this .dat file.

Backend – PowerShell Execution Output

Brief Overview

When executing a PowerShell query, the output text should be displayed in a text box.

Detailed Description:

The text box should not be editable and should be located in the same window/tab that the Query Builder is located in.

User Stories / Use Cases

As a user, I want to view information from a query against Active Directory to see the output of the execute command.

Acceptance Criteria

  • A blank, uneditable, text box in the same window/tab that the Query Builder is located in.

Portable Application

The application must be portable/easily moved around. Shouldn't require compiling on system.

Backend – Query Information

Brief Overview

There must exist text boxes to provide a title and description of the query. Additionally, there must be a button that when pressed, saves the query information.

User Stories / Use Cases

As a user, I want to save the description and title of a PowerShell query, to easily identify the purpose of the query.

Acceptance Criteria

There must be:

  • A text box to enter the title of the query.
  • A text box to enter the description of the query.
  • A button that when pressed, saves the text in the title and description text box.

Can't perform queries where the value of a parameter is anything but a string

Describe the bug
If you attempt to run a query with a parameter value that is not a string, like a boolean, you will encounter an error. The error message will indicate that it is not possible to convert a string object to a boolean-type object.

To Reproduce
Steps to reproduce the behavior:
Screen Recording 2024-03-17 at 12 34 08 PM

Expected behavior
The program should be able to interpret the correct data type and properly pass it through the necessary components

Console output is only output once

When attempting to execute another command after the initial execution, the output doesn't change or update to reflect the new output of the command.

Backend – PowerShell Command Execution

Brief Overview

There exists a button, that when pressed, executes the crafted PowerShell command(s).

Detailed Description:

When there is nothing in the command dropdown, prevent the button from attempting to execute something.

Backend – User, Computer, and IP List

Refer to the "Additional Notes" section for a possible alternative.

Brief Overview

There must exist a drop-down in the query builder, such that the user may choose from a list of users, computers, or IP Addresses, on the domain.

Detailed Description:

This feature will be used to easily select a user or computer to be the target of some PowerShell command.

User Stories / Use Cases

As a user of this application, I want to easily select users or computers on my domain to act against, so I don't have to manually identify a computer or user on the network.

Acceptance Criteria

  • Upon selecting a parameter that requires a target, it should either list the computers or users on the network.

Additional Notes

This could also be approached by creating a tab that when selected, will display a page of all users, IPs, and computers on the domain.

Backend – Add and Remove Command Slots

Brief Overview

There needs to exist a remove and add button that can add and remove command slots.

Detailed Description:

The number of command slots can't be less than one.

Question: Should there be a maximum number of command slots?

User Stories / Use Cases

As an admin, I'd want the option to execute more than one PowerShell command against Active Directory, to perform multiple queries if one command doesn't complete the desired result/job.

Acceptance Criteria

There must be:

  • An add button to add a new command slot.
  • A remove button to remove a command slot, as long as at least one command slot exists.

Backend – Clear Console

Brief Overview

There should exist a button that clears the output console of all text.

Detailed Description:

The clear console button should prompt the user for confirmation before clearing the console.

User Stories / Use Cases

As a user, I want to clear the console of all output, to reduce clutter to the output.

Acceptance Criteria

  • A button to clear the output console.
  • The prompt that requires the user to confirm if they want to clear the output console

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.