I upload some of my scripts into the TechNet Script Gallery and there are some lively discussions going on in the questions and answers sections of the scripts. I received feedback and based on that I have improved and updated some of my scripts.
The first script I would like to highlight is the Get-RemoteProgram script that has been built as a replacement for the Win32_Product WMI class. The Win32_Product class is useful but there are some downsides to this, have a look at this article for more information. This prompted me to write an alternative function for this purpose. This function generates a list by querying the registry and returning the installed programs of a local or remote computer. In the latest version of this script. There was an issue with some scenarios when running this script on a 32 bit machine which have been resolved in the latest version.
.EXAMPLE Get-RemoteProgram -ComputerName Server01 -Property DisplayVersion,VersionMajor Description: Will gather the list of programs from Server01 and attempts to retrieve the displayversion and versionmajor subkeys from the registry for each installed program .EXAMPLE 'server01','server02' | Get-RemoteProgram -Property Uninstallstring Description Will retrieve the installed programs on server01/02 that are passed on to the function through the pipeline and also retrieves the uninstall string for each program
The second script that received an update is the Get-ScheduledTask the status of the tasks was listed in integers instead of ‘Running’,’Disabled’ or ‘Ready’. This has been updated and there were also scenarios in which the script would list the same task twice which has also been patched.
.EXAMPLE .\Get-ScheduledTask.ps1 -Computername mycomputer1 Description ----------- This command query mycomputer1 and display a formatted list of all scheduled tasks on that computer
Another script that I have updated is the Get-OrphanHomeFolder, this script takes a folder path as input and checks if the the folder has a corresponding samaccountname in Active Directory and if that is the case if the account is enabled or disabled. A request came in to also display the enabled users in order to get a full overview. Because of this I added the DisplayAll parameter to the script.
.PARAMETER DisplayAll This switch parameters will force the script to also display enabled active directory accounts, can be used in combination with -FolderSize parameter. .EXAMPLE .\Get-OrphanHomeFolder.ps1 -HomeFolderPath \\Server01\Home -FolderSize -DisplayAll Description: Will list all the folders in the \\Server01\Home path. For each of these folders it will query AD using the foldername, regardless of the AD results folder size will be returned
The last script I updated is the Compare-ADuserAddGroupGUI this script compares the group membership between two users. The goal of this script is to grant the destination user all the missing memberships when compared to the source user. Any missing memberships will be added by this script and and any additional memberships will be removed. The ComputerName parameter has been added to this script in order to specify which domain controller will be queried for the comparison.
.EXAMPLE .\Compare-ADuserAddGroupGUI.ps1 testuserabc123 testuserabc456 Description ----------- This command will add&remove from groups testuserabc456 to match groups that testuserabc123 is a member of the user is prompted by user interface to confirm these changes. .EXAMPLE .\Compare-ADuserAddGroupGUI.ps1 Description ----------- Will use GUI to prompt for confirmation
For a complete list of all my script feel free to browse to my submissions in the TechNet Script Gallery.
|TechNet Script Gallery|
|My entries in TechNet Script Gallery|