We offer two things:
1. Hundreds of automation script samples based on IT Pros' frequently asked IT tasks
2. Script Browser & Script Analyzer tools to ease and improve the script writing
Every day is an opportunity to learn something or discover something new. Learn one IT script sample every day; Be an IT master in a year!
Microsoft All-In-One Script Framework offers "Script of the Day". "Script of the Day" introduces one amazing script sample every 24 hours that demonstrates the frequently asked IT tasks. If you are curious about and passionate for learning something new, follow the "Script of the Day” RSS feed or visit the "Script of the Day" homepage, and share your feedback with us onescript@microsoft.com.
Subscribe to the RSS Feed: http://blogs.technet.com/b/onescript/rss.aspx?tags=ScriptOfTheDay
Microsoft All-In-One Script Framework is updated today with 9 new script samples. These new script samples cover Lync Server, Exchange Server, SharePoint Server, and Office. All of these scripts are written for solving frequently asked IT tasks that our team observed in TechNet forums and Microsoft Support Incidents. Many customers are asking about these IT scenarios, so we expect that the script samples can save some time for IT Pros.
------------------------------------------------------------------------
Script to Enable Users and Enterprise Voice in Microsoft Lync Server 2010
http://gallery.technet.microsoft.com/scriptcenter/Script-to-Enable-Users-and-f56306ed
Description: This script could be used to enable users and enterprise voice feature in Microsoft Lync Server 2010. It will help you to generate LineUri and provide a confliction detection mechanism. Also you can assign dial plans and voice policies at the same time. It is recommended to use this script right after deploying a new Lync environment. You need to find another solution or extend this script to support user provisioning. User Scenarios: With Enterprise Voice, Microsoft Lync Server 2010 delivers a stand-alone Voice over Internet Protocol (VoIP) offering to enhance or replace traditional PBX systems. Enterprise Voice users can call colleagues on your organization’s VoIP network or PBX, and they can call traditional phone numbers outside your organization. Currently, administrators feel difficulties when they try to enable users and enterprise voice right after deploying a new Lync environment. It requires a lot of work to assign phone numbers (LineUri) to each user. So administrators do need a script to mitigate this problem. Acknowledgement: Thanks Sean Xiao for collecting the script idea. Thanks Greg Gu for producing the script sample. Thanks Christopher Tart (Microsoft SR SUPPORT ESCALATION ENGINEER) for reviewing it and improving its quality.
Description: This script could be used to enable users and enterprise voice feature in Microsoft Lync Server 2010. It will help you to generate LineUri and provide a confliction detection mechanism. Also you can assign dial plans and voice policies at the same time. It is recommended to use this script right after deploying a new Lync environment. You need to find another solution or extend this script to support user provisioning.
User Scenarios: With Enterprise Voice, Microsoft Lync Server 2010 delivers a stand-alone Voice over Internet Protocol (VoIP) offering to enhance or replace traditional PBX systems. Enterprise Voice users can call colleagues on your organization’s VoIP network or PBX, and they can call traditional phone numbers outside your organization. Currently, administrators feel difficulties when they try to enable users and enterprise voice right after deploying a new Lync environment. It requires a lot of work to assign phone numbers (LineUri) to each user. So administrators do need a script to mitigate this problem.
Acknowledgement: Thanks Sean Xiao for collecting the script idea. Thanks Greg Gu for producing the script sample. Thanks Christopher Tart (Microsoft SR SUPPORT ESCALATION ENGINEER) for reviewing it and improving its quality.
Import Contacts for Microsoft Lync 2010 (PowerShell)
http://gallery.technet.microsoft.com/scriptcenter/Import-Contacts-for-Lync-5fe0e671
Description: This script could be used to import custom groups and distribution groups for Microsoft Lync 2010. User Scenarios: In a real world, IT help desks are often required to add dozens of predefined custom groups or distribution groups for Lync clients in different department. It is a time-consuming task for adding predefined custom group or distribution group for each Lync client. Acknowledgement: Thanks Anders Wang for collecting this script idea. Thanks Greg Gu for composing the script. Thanks Christopher Tart (Microsoft SR SUPPORT ESCALATION ENGINEER) for reviewing it and improving its quality.
Description: This script could be used to import custom groups and distribution groups for Microsoft Lync 2010.
User Scenarios: In a real world, IT help desks are often required to add dozens of predefined custom groups or distribution groups for Lync clients in different department. It is a time-consuming task for adding predefined custom group or distribution group for each Lync client.
Acknowledgement: Thanks Anders Wang for collecting this script idea. Thanks Greg Gu for composing the script. Thanks Christopher Tart (Microsoft SR SUPPORT ESCALATION ENGINEER) for reviewing it and improving its quality.
Generate report of user mailbox’s size for Exchange 2010 (PowerShell)
http://gallery.technet.microsoft.com/scriptcenter/Generate-report-of-user-e4e9afca
Description: This script could be used to export mailboxes’ information to a CSV file, including SamAccountName, DisplayName, TotalItemSize. Based on these CSV files, script will also generate a report about the variation tendency of user mailbox. User Scenarios: IT Administrators may care about the size of user’s mailbox. It’s good for admins to log this size information every day, and create report when admins want to check the variation tendency of user mailbox. Acknowledgement: Thanks Zifeng Wang for collecting the script topic from TechNet forums. Thanks Edward Qi for composing the script sample. Thanks Flo Raharja – Microsoft Escalation Engineer – for reviewing the script sample before we publish it.
Description: This script could be used to export mailboxes’ information to a CSV file, including SamAccountName, DisplayName, TotalItemSize. Based on these CSV files, script will also generate a report about the variation tendency of user mailbox.
User Scenarios: IT Administrators may care about the size of user’s mailbox. It’s good for admins to log this size information every day, and create report when admins want to check the variation tendency of user mailbox.
Acknowledgement: Thanks Zifeng Wang for collecting the script topic from TechNet forums. Thanks Edward Qi for composing the script sample. Thanks Flo Raharja – Microsoft Escalation Engineer – for reviewing the script sample before we publish it.
Create Report for Average Mailbox Size and Item Count per DB in Exchange 2010
http://gallery.technet.microsoft.com/scriptcenter/Create-Report-for-Average-8bbd0467
Description: This script could be used to create report for average mailbox size and item count per database in Microsoft Exchange 2010. Also you can use this script to measure all the properties which can be measured. User Scenarios: In a real world, IT Administrators may want to know the detail information about Mailbox Database, some of them even require the average mailbox size of each database, and they need these data to manage the exchange server better. Acknowledgement: Thanks Zifeng Wang for collecting the script idea. Thanks Greg Gu for writing the script sample. Thanks Mike Hendrickson for reviewing the sample before it’s published.
Description: This script could be used to create report for average mailbox size and item count per database in Microsoft Exchange 2010. Also you can use this script to measure all the properties which can be measured.
User Scenarios: In a real world, IT Administrators may want to know the detail information about Mailbox Database, some of them even require the average mailbox size of each database, and they need these data to manage the exchange server better.
Acknowledgement: Thanks Zifeng Wang for collecting the script idea. Thanks Greg Gu for writing the script sample. Thanks Mike Hendrickson for reviewing the sample before it’s published.
Remove E-Mail address with Specific Domain Name in Microsoft Exchange 2010
http://gallery.technet.microsoft.com/scriptcenter/Remove-E-Mail-address-with-d716e055
Description: This script could be used to remove E-Mail address with specific domain Name in Microsoft Exchange 2010. This script can remove E-Mail address from mailbox, distribution group and dynamic distribution group. User Scenarios: In a real world, IT Administrators may want to remove new e-mail addresses due to variety of reasons. If an organization has thousands of recipients, it’s impossible to remove e-mail addresses for these recipients one by one. IT administrators do need a script to complete this task. Acknowledgement: Thanks Zifeng Wang for collecting the script idea. Thanks Greg Gu for writing the script sample. Thanks Mike Hendrickson for reviewing the sample before it’s published.
Description: This script could be used to remove E-Mail address with specific domain Name in Microsoft Exchange 2010. This script can remove E-Mail address from mailbox, distribution group and dynamic distribution group.
User Scenarios: In a real world, IT Administrators may want to remove new e-mail addresses due to variety of reasons. If an organization has thousands of recipients, it’s impossible to remove e-mail addresses for these recipients one by one. IT administrators do need a script to complete this task.
Add Proxy Addresses for Recipients by Using a CSV file in Exchange 2010
http://gallery.technet.microsoft.com/scriptcenter/Add-Proxy-Addresses-for-3a317074
Description: This script could be used to add proxy addresses for recipients by using a CSV file in Microsoft Exchange 2010. You can export the recipients which you want to add new proxy address by using this script also. User Scenarios: In a real world, IT Administrators may want to add new proxy addresses due to variety of reasons. If an organization has thousands of recipients, it’s impossible to add proxy address for these recipients one by one. IT administrators do need a script to complete this task. Acknowledgement: Thanks Zifeng Wang for collecting the script idea. Thanks Greg Gu for writing the script sample. Thanks Mike Hendrickson for reviewing the sample before it’s published.
Description: This script could be used to add proxy addresses for recipients by using a CSV file in Microsoft Exchange 2010. You can export the recipients which you want to add new proxy address by using this script also.
User Scenarios: In a real world, IT Administrators may want to add new proxy addresses due to variety of reasons. If an organization has thousands of recipients, it’s impossible to add proxy address for these recipients one by one. IT administrators do need a script to complete this task.
Manage Large Messages in Microsoft Exchange 2010
http://gallery.technet.microsoft.com/scriptcenter/Manage-Large-Messages-in-f1076d8f
Description: This script could be used to manage large messages in Microsoft Exchange 2010. You can use this script for suspending or resuming large messages. Meanwhile, this script will send notifications to these users who are sending large messages. User Scenarios: In a real world, IT administrators may want to find out the users who are sending lager messages. They hope these messages will be delivered at afterhours. Large quantity of newsletter messages is a typical scenario for using this script. Acknowledgement: Thanks Christy Zhang for collecting this script topic from TechNet forums. Thanks Greg Gu for composing the script sample. Thanks Mike Hendrickson for reviewing it.
Description: This script could be used to manage large messages in Microsoft Exchange 2010. You can use this script for suspending or resuming large messages. Meanwhile, this script will send notifications to these users who are sending large messages.
User Scenarios: In a real world, IT administrators may want to find out the users who are sending lager messages. They hope these messages will be delivered at afterhours. Large quantity of newsletter messages is a typical scenario for using this script.
Acknowledgement: Thanks Christy Zhang for collecting this script topic from TechNet forums. Thanks Greg Gu for composing the script sample. Thanks Mike Hendrickson for reviewing it.
----------------------------------------------------------------------
Get Checkout Files List in Microsoft SharePoint Server 2010 (PowerShell)
http://gallery.technet.microsoft.com/scriptcenter/Get-Checkout-Files-List-in-040002fd
Description: This script could be used to get a list of checkout files from a site collection in Microsoft SharePoint Server 2010. You can also get a list of files which checkout by specific user. User Scenarios: In a real world, IT administrators often need to get a checkout files list in Microsoft SharePoint Server 2010, especially after the resignation of an employee. It will be a heavy task if they do it manually. It’s better to use a script to generate a checkout files list automatically. Acknowledgement: Thanks Pengyu Zhao for collecting the script topic from TechNet forums. Thanks Greg Gu for composing the script sample. Thanks Nishand Vasudevan from Microsoft for reviewing the script before it’s published.
Description: This script could be used to get a list of checkout files from a site collection in Microsoft SharePoint Server 2010. You can also get a list of files which checkout by specific user.
User Scenarios: In a real world, IT administrators often need to get a checkout files list in Microsoft SharePoint Server 2010, especially after the resignation of an employee. It will be a heavy task if they do it manually. It’s better to use a script to generate a checkout files list automatically.
Acknowledgement: Thanks Pengyu Zhao for collecting the script topic from TechNet forums. Thanks Greg Gu for composing the script sample. Thanks Nishand Vasudevan from Microsoft for reviewing the script before it’s published.
Automating Out of Office in Outlook (VBScript)
http://gallery.technet.microsoft.com/scriptcenter/Automating-Out-of-Office-bc0edb1e
Description: This VBScript illustrates how to automate the user's Out of Office state in Outlook. User Scenarios: Sometimes user will forget to turn on or turn off the Out of Office assistant, this could be annoying. Using this script will help user to manage his/her Out of Office state automatically. Acknowledgement: Thanks Rex Zhang for collecting the script idea. Thanks Cristin Yan for writing the script sample. Thanks Shaleen Thapa (Microsoft Support Escalation Engineer) for reviewing the script to ensure its quality.
Description: This VBScript illustrates how to automate the user's Out of Office state in Outlook.
User Scenarios: Sometimes user will forget to turn on or turn off the Out of Office assistant, this could be annoying. Using this script will help user to manage his/her Out of Office state automatically.
Acknowledgement: Thanks Rex Zhang for collecting the script idea. Thanks Cristin Yan for writing the script sample. Thanks Shaleen Thapa (Microsoft Support Escalation Engineer) for reviewing the script to ensure its quality.
Today marks the General Availability of Windows Server 2012, a special day in what will be a big launch year for Microsoft and our customers and partners worldwide.
Compared with Windows Server 2008/R2 that provides about 230 cmdlets, Windows Server 2012 beats that by a factor of over 10 shipping ~ 2,430 cmdlets. You can automate almost every aspect of the server. The new PowerShell 3.0, like Windows Server 2012, has a ton of new features. In this automation script-centric move, Microsoft All-In-One Script Framework (AIOSF) is ready to support IT Pros with many new services and offerings coming this year. We sincerely hope that the IT community will benefit from the effort.
Here is the first one among our new services and offerings:
The team is preparing a large set of Windows 8 / Windows Server 2012 script samples based on frequently asked IT tasks that we collect in TechNet forums and support calls to Microsoft. Because the script topics come from frequently asked IT tasks, we hope that these script samples can be helpful to many IT Pros worldwide. With the General Availability of Windows Server 2012, we release the first three Windows Server 2012 / Windows 8 script samples today.
Get Network Adapter Properties in Windows Server 2012 and Windows 8 (PowerShell)
http://gallery.technet.microsoft.com/scriptcenter/Get-Network-Adapter-37c5a913
Description: This script could be used to get network adapter properties and advanced properties in Windows Server 2012 and Windows 8. It combines the outputs of Get-NetAdapter and Get-NetAdapterAdvancedProperty. It can generate a report of network adapter configuration settings. Use Scenarios: In a real world, IT Administrators are required to check the configuration of network adapters after the deployment of new servers. One typical example is the duplex setting of network adapters. Also, IT administrators need to maintain a server list which contains network adapter configuration settings in a regular basis. Before Windows Server 2012, IT administrators often feel difficulties to handle these tasks. Acknowledgement: Thanks Greg Gu from AIOSF for collecting this script topic, and writing the script sample. Thanks James Adams (Microsoft Premier Field Engineer) for reviewing the script sample and ensuring its quality.
Description: This script could be used to get network adapter properties and advanced properties in Windows Server 2012 and Windows 8. It combines the outputs of Get-NetAdapter and Get-NetAdapterAdvancedProperty. It can generate a report of network adapter configuration settings.
Use Scenarios: In a real world, IT Administrators are required to check the configuration of network adapters after the deployment of new servers. One typical example is the duplex setting of network adapters. Also, IT administrators need to maintain a server list which contains network adapter configuration settings in a regular basis. Before Windows Server 2012, IT administrators often feel difficulties to handle these tasks.
Acknowledgement: Thanks Greg Gu from AIOSF for collecting this script topic, and writing the script sample. Thanks James Adams (Microsoft Premier Field Engineer) for reviewing the script sample and ensuring its quality.
How to batch create virtual machines in Windows Server 2012 (PowerShell)
http://gallery.technet.microsoft.com/scriptcenter/How-to-batch-create-9efd1811
Description: This PowerShell Script illustrates how to batch create multiple virtual machines based on comma delimited file by using PowerShell 3.0 in Windows Server 2012. Use Scenarios: IT admin requires to batch creating virtual machines in Windows Server 2012, although they can use few commands due to the lack of programming knowledge. Although it’s a set of Hyper-V command-lets within Windows PowerShell, IT Admins are reluctant to use them except simple a command which is widely used. Acknowledgement: Thanks Anders Wang from AIOSF for collecting this script topic and writing the script sample. Thanks Christopher Norris for reviewing the script sample and ensuring its quality before publishing.
Description: This PowerShell Script illustrates how to batch create multiple virtual machines based on comma delimited file by using PowerShell 3.0 in Windows Server 2012.
Use Scenarios: IT admin requires to batch creating virtual machines in Windows Server 2012, although they can use few commands due to the lack of programming knowledge. Although it’s a set of Hyper-V command-lets within Windows PowerShell, IT Admins are reluctant to use them except simple a command which is widely used.
Acknowledgement: Thanks Anders Wang from AIOSF for collecting this script topic and writing the script sample. Thanks Christopher Norris for reviewing the script sample and ensuring its quality before publishing.
Remove Windows Store Apps in Windows 8 (PowerShell)
http://gallery.technet.microsoft.com/scriptcenter/Remove-Windows-Store-Apps-a00ef4a4
Description: This script can be used to remove multiple Windows Store Apps from a user account in Windows 8. It provides a list of installed Windows Store applications. You can specify the application IDs, and remove them all at once. Use Scenarios: 1. In Windows 8, you can remove a single Windows Store App by right-clicking the tile in the Start menu and choosing the uninstall command. However, no command is provided for removing multiple Windows Store Apps all at once. If you want to do so, you can use this script sample. 2. Sometimes Windows Store Apps may crash in Windows 8. Even though you can successfully uninstall and reinstall the App, the application may still crash after the reinstallation. In this situation, you can use this example script to remove these Windows Store Apps cleanly. Acknowledgement: Thanks Edward Qi from AIOSF for collecting the script idea and composing the script sample. Thanks James Adams (Microsoft Premier Field Engineer) for reviewing the script sample and ensuring its quality.
Description: This script can be used to remove multiple Windows Store Apps from a user account in Windows 8. It provides a list of installed Windows Store applications. You can specify the application IDs, and remove them all at once.
Use Scenarios:
1. In Windows 8, you can remove a single Windows Store App by right-clicking the tile in the Start menu and choosing the uninstall command. However, no command is provided for removing multiple Windows Store Apps all at once. If you want to do so, you can use this script sample.
2. Sometimes Windows Store Apps may crash in Windows 8. Even though you can successfully uninstall and reinstall the App, the application may still crash after the reinstallation. In this situation, you can use this example script to remove these Windows Store Apps cleanly.
Acknowledgement: Thanks Edward Qi from AIOSF for collecting the script idea and composing the script sample. Thanks James Adams (Microsoft Premier Field Engineer) for reviewing the script sample and ensuring its quality.
This is just the beginning, and more and more script samples are coming. You can follow our blog (http://blogs.technet.com/b/onescript) to get the latest customer-driven script samples for Windows Server 2012 and Windows 8.
Script of the Day
Script Download: ModifyEmailAddress.zip http://gallery.technet.microsoft.com/scriptcenter/Modify-Invalid-E-Mail-e6590197
This script could be used to remove invalid e-mail addresses for mailbox in Microsoft Exchange 2010. You can find these mailboxes which contains invalid e-mail addresses by using specific string or regular expression.
In a real world, IT Administrators need to modify the e-mail addresses for mailbox due to following reasons:
It will be a time-consuming task in a large scale deployment.
You can find more All-In-One Script Framework script samples at http://aka.ms/onescriptingallery
Script Download: SPListEnumerator.zip
http://gallery.technet.microsoft.com/scriptcenter/SPListEnumerator-PowerShell-b0ce0b9f
This script enumerates through a "large" list or document library and provides information about items in it.
In SharePoint (2007 and 2010) we have a threshold on the number of list items in a container. In SharePoint 2007, the threshold value is 2,000 and in SharePoint 2010, it is 5,000. We often come across customers who have a large number of items in their lists/document libraries and complain of overall site performance. It is possible for customers to create nested folders and have a large number of documents/list items reside in them. But exceeding the threshold value can cause slowness and have a performance impact on the backend SQL content database.
For example, if you have 500,000 documents stored within folders (and nested folders) in a document library, it becomes difficult to identify specific folders that exceed the threshold value. This script traverses through each folder in a given list/document library and will enumerate items at each container level. It writes the output to a .CSV file to make it easier for viewing in Excel and perform further filtering.
This PowerShell script and makes use of the SharePoint Object Model. You will have to provide the name of the list or document library that you want to traverse. The output is written to an out.CSV file that can be opened in Excel for further filtering of data. The details written include:
Script Download: FindUserLogonDuration.ziphttp://gallery.technet.microsoft.com/scriptcenter/Find-user-logon-duration-667b8c48
This script can be used to collect user logon duration from multiple computers. You can also use the data to generate a report. The user logon duration calculation is based on the general algorithm, Logon duration = Logoff date time - Logon date time. In a real world, IT Administrators may need to collect user logon duration from multiple computers. User logon duration data can be useful when IT Administrators are troubleshooting some issues.