@@ -7,56 +7,52 @@ A collection of PowerShell scripts for enterprise IT administration, covering Ac
77[ ![ PowerShell Gallery] ( https://img.shields.io/badge/PowerShell-7.0+-blue.svg )] ( https://github.com/PowerShell/PowerShell )
88[ ![ Platform] ( https://img.shields.io/badge/Platform-Windows-lightgrey.svg )] ( https://www.microsoft.com/windows )
99
10+ For comprehensive documentation, please refer to the project site:
11+ [ https://twcau.github.io/PowerShellScripting/ ] ( https://twcau.github.io/PowerShellScripting/ )
12+
13+ <!-- omit from toc -->
1014## Table of Contents
1115
12- - [ Table of Contents] ( #table-of-contents )
1316- [ Features] ( #features )
1417- [ Getting Started] ( #getting-started )
1518 - [ Prerequisites] ( #prerequisites )
1619 - [ Installation] ( #installation )
1720- [ Usage] ( #usage )
18- - [ Basic Usage] ( #basic-usage )
19- - [ Script Categories] ( #script-categories )
20- - [ Interactive Scripts] ( #interactive-scripts )
21- - [ Configuration] ( #configuration )
22- - [ Environment Variables] ( #environment-variables )
23- - [ Authentication] ( #authentication )
24- - [ Customisation] ( #customisation )
2521- [ Folder Structure] ( #folder-structure )
26- - [ Modules and Functions] ( #modules-and-functions )
27- - [ Core Functionality] ( #core-functionality )
28- - [ Key Scripts] ( #key-scripts )
2922- [ Testing] ( #testing )
3023 - [ Development Environment] ( #development-environment )
3124 - [ Validation] ( #validation )
32- - [ Logging and Troubleshooting] ( #logging-and-troubleshooting )
33- - [ Logging Standards] ( #logging-standards )
34- - [ Common Issues] ( #common-issues )
35- - [ Support Resources] ( #support-resources )
36- - [ Accessibility] ( #accessibility )
37- - [ Contributing] ( #contributing )
3825 - [ Development Guidelines] ( #development-guidelines )
3926- [ Changelog] ( #changelog )
40- - [ Recent Updates] ( #recent-updates )
41- - [ Version History] ( #version-history )
4227- [ License] ( #license )
4328- [ Like to say thank you?] ( #like-to-say-thank-you )
4429- [ Contact and Support] ( #contact-and-support )
4530 - [ Project Maintainer] ( #project-maintainer )
4631 - [ Getting Help] ( #getting-help )
47- - [ Support Guidelines] ( #support-guidelines )
32+ - [ Common Issues] ( #common-issues )
33+ - [ Support Resources] ( #support-resources )
34+ - [ Support Guidelines] ( #support-guidelines )
35+ - [ Accessibility] ( #accessibility )
36+ - [ Contributing] ( #contributing )
4837
4938## Features
5039
40+ My scripts so far cover some of the bugbears i've experienced in my time in L2-2.5 support, including:
41+
5142- ** Active Directory Management** : User creation, group management, computer organisation, and bulk operations
5243- ** Microsoft 365 Administration** : Exchange Online mailbox management, quarantine handling, and transport rules
5344- ** Entra ID Integration** : External user management, compromised account remediation, and identity operations
5445- ** Intune Device Management** : Bulk device synchronisation, remediation scripts, and compliance monitoring
5546- ** General Utilities** : Password generation, module management, and script selection tools
5647- ** OneDrive Administration** : User content download and management capabilities
57- - ** Comprehensive Logging** : Standardised logging across all scripts with detailed audit trails
58- - ** Error Handling** : Robust error handling and retry logic for enterprise environments
48+
49+ To ensure scripts are easily understood and used, I try to ensure they all include:
50+
5951- ** GUI Interfaces** : User-friendly forms for complex administrative tasks
52+ - ** Error Handling** : Robust error handling and retry logic for enterprise environments
53+ - ** Progress Updates** : Visual feedback when an operation is underway but may take some time to complete
54+ - ** Comprehensive Logging** : Standardised logging across all scripts with detailed audit trails
55+ - ** Documentation** : At both the code, and use level, so it can be understood what everything does where
6056
6157## Getting Started
6258
@@ -97,54 +93,7 @@ A collection of PowerShell scripts for enterprise IT administration, covering Ac
9793
9894## Usage
9995
100- ### Basic Usage
101-
102- Each script is designed to be run independently. Navigate to the appropriate folder and execute the script:
103-
104- ``` powershell
105- # Example: Run user creation script
106- .\ad\user\creation\User-Creation.ps1
107-
108- # Example: Run Intune bulk sync
109- .\intune\devices\Intune-BulkSync.ps1
110- ```
111-
112- ### Script Categories
113-
114- - ** Active Directory** : Scripts for user and computer management in on-premises AD environments
115- - ** Exchange 365** : Email and mailbox management for cloud and hybrid environments
116- - ** Entra ID** : Identity and access management for Azure AD/Entra ID
117- - ** Intune** : Mobile device management and compliance scripts
118- - ** General** : Utility scripts for common administrative tasks
119-
120- ### Interactive Scripts
121-
122- Many scripts include GUI interfaces for ease of use:
123-
124- - User creation wizards with form-based input
125- - Device selection interfaces
126- - Progress indicators for long-running operations
127-
128- ## Configuration
129-
130- ### Environment Variables
131-
132- Some scripts may require environment-specific configuration. Review each script's header for specific requirements.
133-
134- ### Authentication
135-
136- - Ensure you have appropriate administrative credentials
137- - Some scripts require multi-factor authentication (MFA)
138- - Consider using application passwords where applicable
139-
140- ### Customisation
141-
142- Scripts include configurable parameters at the top of each file. Common customisations include:
143-
144- - Domain names and organisational units
145- - Email domains and Exchange settings
146- - Logging paths and retention policies
147- - Timeout values and retry attempts
96+ Please refer to each scripts' documentation for instructions on how to use it, including environment varibles, authentication, and customisation.
14897
14998## Folder Structure
15099
@@ -200,87 +149,27 @@ PowerShellScripting/
200149│ └── M365-OneDriveForBusiness-User-FileUpload.ps1
201150```
202151
203- ## Modules and Functions
204-
205- ### Core Functionality
206-
207- The scripts in this collection provide:
208-
209- - ** User Management** : Creation, modification, and departure processing
210- - ** Group Management** : Membership copying and bulk operations
211- - ** Device Management** : Synchronisation, detection, and remediation
212- - ** Security Operations** : Compromised account handling and compliance monitoring
213- - ** Utility Functions** : Password generation, module management, and system utilities
214-
215- ### Key Scripts
216-
217- - ** User-Creation.ps1** : Comprehensive user creation with GUI interface
218- - ** Intune-BulkSync.ps1** : Mass device synchronisation for Intune environments
219- - ** AutomateCompromisedAccountRemediation.ps1** : Automated security response
220- - ** ScriptSelector.ps1** : Interactive menu system for script selection
221-
222152## Testing
223153
224154### Development Environment
225155
226- Testing scripts are located in the ` testing/ ` folder and include:
156+ Where available, testing scripts are located in the ` testing/ ` folder and include:
227157
228158- Proof-of-concept implementations
229159- Version comparisons
230160- Experimental features
231161
162+ Some scripts may also include dry run features in lieu of testing.
163+
232164### Validation
233165
234166Before using scripts in production:
235167
236- 1 . Review the script header for version information and changelog
237- 2 . Test in a non-production environment
168+ 1 . Review the script documentation, header for version information and changelog
169+ 2 . Always test in a non-production environment
2381703 . Verify all required modules are installed
2391714 . Check logging output for any warnings or errors
240172
241- ## Logging and Troubleshooting
242-
243- ### Logging Standards
244-
245- All scripts follow consistent logging practices:
246-
247- - Log files stored in ` $env:TEMP ` with timestamps
248- - Comprehensive error logging with context
249- - Success and failure reporting
250- - Progress indicators for long-running operations
251-
252- ### Common Issues
253-
254- - ** Module Import Errors** : Ensure required PowerShell modules are installed
255- - ** Authentication Failures** : Verify credentials and MFA settings
256- - ** Permission Errors** : Check administrative rights for target systems
257- - ** Network Connectivity** : Ensure access to required cloud services
258-
259- ### Support Resources
260-
261- - Check script headers for specific documentation links
262- - Review Microsoft documentation for API changes
263- - Consult PowerShell Gallery for module updates
264-
265- ## Accessibility
266-
267- This project is committed to accessibility and inclusive design:
268-
269- - Scripts include progress indicators and clear status messages
270- - Documentation uses descriptive text for all functionality
271- - Error messages provide actionable guidance
272- - GUI interfaces follow accessibility best practices
273- - All documentation supports screen readers
274-
275- ## Contributing
276-
277- Contributions to improve and expand this script collection are welcome. Please read the contribution guidelines:
278-
279- 1 . ** Code Standards** : Follow PowerShell best practices and existing code style
280- 2 . ** Documentation** : Include comprehensive headers and inline comments
281- 3 . ** Testing** : Validate scripts in appropriate test environments
282- 4 . ** Security** : Ensure no hardcoded credentials or sensitive information
283-
284173### Development Guidelines
285174
286175- Use Australian English (EN-AU) for documentation and comments
@@ -290,15 +179,6 @@ Contributions to improve and expand this script collection are welcome. Please r
290179
291180## Changelog
292181
293- ### Recent Updates
294-
295- - ** 6/06/2025** : Enhanced user creation script with group copying improvements
296- - ** 27/03/2025** : Added Clear Base User and Clear All User functionality
297- - ** 21/05/2025** : Implemented base group validation and management
298- - ** 4/03/2025** : Updated department listings for dynamic group memberships
299-
300- ### Version History
301-
302182See individual script headers for detailed version history and changelog information.
303183
304184## License
@@ -324,17 +204,49 @@ If these scripts have helped you in your IT administration tasks, consider:
324204
325205### Getting Help
326206
207+ #### Common Issues
208+
209+ - ** Module Import Errors** : Ensure required PowerShell modules are installed
210+ - ** Authentication Failures** : Verify credentials and MFA settings
211+ - ** Permission Errors** : Check administrative rights for target systems
212+ - ** Network Connectivity** : Ensure access to required cloud services
213+
214+ ### Support Resources
215+
216+ - Check script headers for specific documentation links
217+ - Review Microsoft documentation for API changes
218+ - Consult PowerShell Gallery for module updates
219+
327220- ** Issues** : Report bugs or request features via [ GitHub Issues] ( https://github.com/twcau/PowerShellScripting/issues )
328221- ** Discussions** : Join the conversation in [ GitHub Discussions] ( https://github.com/twcau/PowerShellScripting/discussions )
329222- ** Documentation** : Review script headers and Microsoft documentation links
330223
331- ### Support Guidelines
224+ #### Support Guidelines
332225
333226- Provide clear descriptions of issues with relevant log files
334227- Include PowerShell version and module information
335228- Specify the target environment (on-premises, cloud, hybrid)
336229- Follow the issue templates when reporting problems
337230
231+ ## Accessibility
232+
233+ This project is committed to accessibility and inclusive design:
234+
235+ - Scripts include progress indicators and clear status messages
236+ - Documentation uses descriptive text for all functionality
237+ - Error messages provide actionable guidance
238+ - GUI interfaces follow accessibility best practices
239+ - All documentation supports screen readers
240+
241+ ## Contributing
242+
243+ Contributions to improve and expand this script collection are welcome. Please read the contribution guidelines:
244+
245+ 1 . ** Code Standards** : Follow PowerShell best practices and existing code style
246+ 2 . ** Documentation** : Include comprehensive headers and inline comments
247+ 3 . ** Testing** : Validate scripts in appropriate test environments
248+ 4 . ** Security** : Ensure no hardcoded credentials or sensitive information
249+
338250---
339251
340252* This project follows Microsoft PowerShell best practices and maintains compatibility with enterprise IT environments.*
0 commit comments