This project is for the development of a PowerShell or Visual Basic script that will remotely scan workstations and make sure they meet the following pre-reqs:
[url removed, login to view]
The proposed flow of the script would be as follows:
1. Get a List of Computers from Active Directory.
2. If the OperatingSystem Attribute on the Computer Object does not contain the word “Server” then add it to the list of computers to be scanned. (We don't care about servers)
3. When the list of workstations has been gathered, process them one by one, performing the following tasks:
a. To speed up processing each workstation should be pinged first to make sure it is online. If it is not ping-able it's status is set to Offline, and no other tests will be performed against it.
b. Get the OS and Service Pack installed on the System. The OS and Service Pack Level should be stored, as they will later be output to a CSV file. If the OS and Service Pack meet the criteria above, the OS Status property will be set to Pass. If the requirements are not met the OS Status property will be set to fail.
c. Get the Version of Office installed on the system along with the service packs. Like the OS test, these values should be stored as they will later be output to a CSV file. If the Office Version and hotfixes/service packs are installed, the Office Status will be set to Pass. If the requirements are not met the Office Status property will be set to Fail.
d. If the Full Office Suite is not installed, check to see if just Outlook is installed. If only Outlook is installed the Office Version should be reported as Outlook 20XX where XX is the appropriate version. The Office Service pack should also be that of the Outlook Service pack.
e. Determine if the Microsoft Online Sign-In Assistant is installed. This will be a simple Pass/Fail which will be written to the CSV output.
f. Determine the version of Internet Explorer on the system. This will simply be the version of the IE, output to a CSV file.
1. The user of the script will need to input the credentials the script will connect to the remote systems as. (The script will not run as the currently logged in user).
2. When the script is done processing all the workstations, or while it is processing the workstations, it should write the results to a .csv file. I would envision the CSV file having the following header rows:
ComputerName,Status,OS Version,Service Pack,Office Version, Office Service Pack Version,Office 2007 Update (KB 980210), Microsoft Office 2010 Update (KB2435954),Outlook 2007 Update (KB2475891),Outlook 2010 Update (KB247877),OS Status, Office Status, Sign-In Assistant Installed,IE Version
On the Office Updates, the fields that don't apply to client will be populated with N/A. For example if a client is running Office 2007 the Microsoft Office 2010 Update (KB2435954) and the Outlook 2010 Update (KB247877) fields in the CSV file will be populated with N/A.