Tag Archive for powershell

Better license assignment in O365

powershell

Hello!
Since the last time I wrote about this original script for license assignment in Office365 cloud there were some changes. Now there are two parts of the script, for different groups of people in the company. And had to add timezone and language assignment also. And some more debugging output too.

For the first part of the script it didn’t change much, just added a line to assign the same timezone and language for everyone and changed a filter template.

Then I added a second part of the script, this one has a bit more logic. This group needs to be assigned the same timezone but different language (for the interface). By different language I mean Lithuanian or English.
Read more

Synchronizing Office365 calendars with the web

Balmer salute

Hello. Today I’m writing about a different version of a powershell utility script I made before for calendar synchronization. See that post for details and bottom of it for a raging update. This is a continued post from before.
That script I made before was for an Exchange server and it was working great at the time. But later we switched to Office365 and since April it became broken in a way that was making me wanna pull my hair out. However thanks to my persistence and a nudge into the right direction from some people just when I was about to give up, I was able to make that script work again, so in turn I made it as a different script and named it v2. The old one can still be found here.
Read more

Shutting down PC’s remotely with Powershell

powershell

Hello. Let’s say you have a large sum of computers in your organization that are connected to a domain and some of those computers could be turned off for the night (library, computer class, etc.), because after using them not everyone turns them off and they are kept powered on through the night. That bothers me because ~50 computers are wasting energy! and so I came up with a powershell script that powers off the selected computers at a schedule, in my case I set it to run at 19:00 every day.
After letting it run for a couple of weeks, I think it seems to be working pretty well… You have to configure it though, by adding computer names with their full domain name and their MAC addresses in the array and that’s it. Log file is created at the location you specify (C:\ now) with computers that were shut down.
Script can be found in my project folder here.

Set out-of-office programmatically in O365 with powershell

powershell

Part of our employee synchronization from employee database to our AD is setting an out-of-office message in Office365 when the user gets disabled (to send a notice that the user no longer works here to whoever sends that person an email), and removing the message when that same person comes back to work. For this, I made a powershell script (damn, I love powershell) that lists all disabled users in our AD and goes through everyone checking if it has a message set up, if not then it sets one.

Script can be found here, in my projects folder.

Assign licenses to O365 users programmatically

powershell

Just recently we migrated from our own mail server to Office365, because cloud is computing is the god damn future! 1tb of onedrive space and 50gb mailbox is more than enough to host your work-related porn collection :)
Azure is all set up to synchronize our AD users with Office365, however once a user is created newly into the AD, the mailbox gets created for that user, but it doesn’t set the license and location of the user, until the license is assigned, users can’t login to the mailbox. I hate repetitive work, so I came up with a powershell script (I love powershell!) that checks for users that doesn’t have license assigned and assigns them one, also adds the location.
The script at the end also disables the new “clutter” feature, which is complete garbage IMO. Most of the legitimate letters go into clutter and users complain to us that letters do not reach them. Microsoft declares that this new super-awesome feature helps people save up to 82 minutes checking their mail… I guess that’s correct when you don’t see any emails :D

The script can be found here.

Separating AD users into groups

powershell

In our AD we have many users, all of them are unified in one general mailgroup “visi”. One day I was tasked to split users into english and lithuanian groups, so that emails in my language wouldn’t bother those who can’t read them :P
It was easy with my newly acquired Powershell skill, and we were dividing people into groups by their departments, so I knew the english speaking departments, all I had to do was list out all the people and add them to “visilt” and “visien” groups according by their departments.
Read more

Synchronizing Exchange calendars with the web

ExchangeLogo

Hello. Today I’m writing about a new tool that I come up with, after not finding this, lemme say – basic, functionality in Microsoft’s Exchange Server 2010. What was needed was very simple – to synchronize the schedule from a database/web backend of some sort to the exchange calendar and it turns out Exchange doesn’t have this or I didn’t find it and I looked EVERYWHERE.
Everyone uses Outlook 2010 with Exchange, and Outlook has the ability to keep track of internet/shared calendars like Google Calendar does, but it turns out that it’s an outlook only feature, meaning that if you added this calendar in outlook, all the appointments would appear, but wouldn’t be sent to Exchange. And I guess there is a way of adding appointments for all or a group of people by hand, but it’s not what I want.
Having that in mind I set out to search for a 3rd party solution, however I didn’t expect to find anything, and I didn’t… only option left was to write a custom solution.
Read more