Category Archives: Microsoft

All Microsoft Products (Exchange, SQL, Windows, Server)

Chrome Windows 10 Omnibox Slow

I was having extremely slow response time to input in the google search bar (aka omnibox). I’d close out of Chrome and re-enter, same issue. Every new tab (ctrl + t) I’d start typing a URL or search term and it would take up to 12 seconds for the text to start showing up. And with my misspellings… yeah it was frustrating.

Closed and re-opened Chrome. Same problem.
I disabled all of the extensions. Same problem.
I cleared all of the cache (ctrl shift del). Same problem.
Rebooted the machine. The problem went away for about 2-3 hours and then came right back.
Installed 64bit instead of 32bit. Same problem.
Redid all steps above after upgrading to 64bit. Same problem.

http://www.robschmuecker.com/google-chrome-address-bar-omnibox-getting-slow/

This site had me check for compatibility mode. I wasn’t running in compat mode as this was native supported.

But the delete of cache caught my eye – why does chrome store cached omnibox crud in the default user’s directory?

C:\Users\%Username%\appdata\local\google\chrome\User Data\Default\Cache
Delete everything in there. Restart Chrome.

I had to run taskkill /f /im chrome.exe prior to deleting all of the cache.

Double Booking O365 Room Calendar

I went through and made sure that the room was set to not allow conflicts. Unfortunately it was still accepting conflict meetings as “tentative” instead of outright saying “no”. This was conflicting with our room booking evoko units (exterior to the room) and showing the second meeting – the tentative in Exchange/Outlook – as the only meeting. Bad.

So, open up your powershell and connect to the O365-land (previous post).

List All Rooms (you’ll need the email address)
Get-Mailbox | Where-Object {$_.RecipientTypeDetails -eq "RoomMailbox"} | Format-Table DisplayName,Identity,PrimarySmtpAddress

List All Options On That Room
get-calendarprocessing roomname@domainname.tld | fl
Verify that the AllowConflicts is set to false. Verify that the forwardrequeststodelegates is also false. Verify that the AllRequestOutOfPolicy is set to false.

Change these settings (if the above is not false)
Set-CalendarProcessing roomname@domainname.tld -AllowConflicts $false
Set-CalendarProcessing roomname@domainname.tld -ForwardRequestsToDelegates $false
Set-CalendarProcessing roomname@domainname.tld -AllRequestOutOfPolicy $false

Calendar Permissions Office365 Powershell

I needed to change permissions on who could access the CEO’s calendar as his personal assistant was going on a month-long vacation and the backup needed the same permissions.

Connect to your Office365 environment using Powershell
Open Powershell as an administrator
$LiveCred = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic -AllowRedirection
Import-PSSession $Session
Login with an O365 admin account

List access on a specific account
Get-MailboxFolderPermission -Identity user1@domain.com:\calendar

Add access to a specific user
Add-MailboxFolderPermission -Identity user1@domain.com:\calendar -user user2@domain.com -AccessRights Editor

Remove access to a specific user
Remove-MailboxFolderPermission -Identity user1@domain.com:\calendar -user user2@domain.com

Available Roles

Owner
PublishingEditor
Editor
PublishingAuthor
Author
NonEditingAuthor
Reviewer
Contributor
AvailabilityOnly
LimitedDetails

Securing Enterprise Wireless

Our small business is growing into a medium sized business rather quickly. What was acceptable before (BYOD, honor system, etc) is no longer able to be sustained.

I’ve been at this same company since we had a single Linksys WRT54GS access point with ~40 employees to a 7x Meraki APs (MR18 and MR24’s) with 3 locations and 200+ employees.

Originally we had a standard WPA/TKIP with a pre-shared key (PSK) that was given out to those who needed it. Unfortunately this PSK ended up in the hands of so many people that it was difficult to control. I rolled out an NPS server (Windows RADIUS) to allow only those with domain credentials to connect; this alleviated the issue of having non-employees on the network (for the most part), but individuals quickly realized they could add their iPad/Tablet, phone, and other laptops to the company network.

If that’s OK with you, here’s my NPS configuration (I have this on two different NPS servers for redundancy):
RADIUS Clients

Friendly name: SuiteNumber_DeviceModel
IP Address: The statically assigned IP of the device
Device Manufacturer: RADIUS Standard
NAP-Capable: No (for now)
Status: Enabled

wireless_01

Connection Request Policies

Policy Name: I picked “Secure Wireless Connections” and Enabled the policy
Conditions: NAS Port Type of Wireless-Other OR Wireless-IEEE802.11
Settings: I left these as the defaults as I wanted the Network Policy to dictate the authentication methods

wireless_02

Network Policies

Policy Name: I once again picked “Secure Wireless Connections” and enabled the policy
Conditions: NAS Port Type of Wireless-Other OR Wireless-IEEE802.11 / Windows Groups of domain\domain computers and domain\domain users
Since I don’t feel like typing it all out, look at the picture.

wireless_03

Just point your wireless device(s) to your NPS/RADIUS server IP with the default port and away you go.


Now to get it with certificate-based security it was a bit more work:

I am assuming that you’re using an on-premise Certificate Authority and that it’s already up and running. In my case we have a 2008R2 CA already published in Active Directory. If it’s not published in AD, you can always have a GPO that pushes the trusted root certificate authority to all domain members.

Anyway, I needed to set it so that every domain joined computer would enroll with a computer certificate against this CA, so I created a GPO called Wireless Settings (I don’t really like adding things to the default domain policy, so I end up creating new).
Under Computer Configuration / Policies / Windows Settings / Security Settings / Public Key Policies / Certificate Services Client – Auto-Enrollment Settings
wireless_04

From this I verified that computers had the appropriate certificates installed by looking at my MMC:
start, run, MMC
Add Certificates (Computer account) for the local machine
Verify there’s a certificate issued to your computername.yourdomainname.tld from the Certificate Authority with hooks into AD
wireless_05

Now I finished up my Wireless Settings GPO with some Wireless Network (802.11) Policies. See the picture. Lazy.
The Profile Name will be the one displayed when people search for available wireless networks and, to the end-user, they will be connecting to this access point. You can actually publish multiple SSID’s under this name (I only have the “Linksys47532” name available currently).
wireless_06

You’d have to run
netsh, wlan, show interfaces
with an administrative command window to actually see the network being connected to.

When I get around to publishing a computer certificate that can be imported on an iPhone, I’ll update this post.

Manage Wireless Networks Windows 8

I guess this is actually 8.1, but you get the idea. In 2000/XP and even Vista/7 it was fairly easy to remove old wireless network profiles in case there was something wrong (ie bad credentials saved). Windows 8, unfortunately, made it significantly more difficult and requires the use of an elevated command prompt (start > cmd > right-click run as administrator).

Show all profiles
netsh wlan show profiles

Delete a profile
netsh wlan delete profile name ="PROFILEHERE"

Display the security key (if applicable)
netsh wlan show profile name="PROFILEHERE" key=clear

Stop auto-connecting to a profile
netsh wlan set profileparameter name="PROFILEHERE" connectionmode=manual

Remote Management Exchange Mailbox Rules

CEO of the company had a rule to auto forward his calendar items to his personal secretary. Unfortunately, after about a year of service, this person was moving to another position.

The new IT rules stipulate that unless written permission from the VP of IT, President of the company, or CEO is provided that under no circumstances should IT actively connect to another user’s email box.

This makes it harder since the old way was to grant full permissions to their mailbox, attach it as a non-cached account, and then make any necessary changes.

The CEO was also travelling out of the country, so getting him on a phone call would prove difficult.

Powershell to the rescue! I did the following commands from the Exchange admin server, but this will work just as well right on the Exchange servers themselves, or even if you load the PS1 for exchange.
Get-inboxrule -mailbox USERNAME | fl > c:\text\outlookrules.txt
I opened this text file and searched for the name of the secretary – found one rule “If the message is meeting, forward to”

We can disable or remove the outlook rule as well.
disable-inboxrule -mailbox USERNAME -identity "THELONGNUMBERIDENTITYFROMPREVIOUSSTEP"
or
remove-inboxrule -mailbox USERNAME -identity "THELONGNUMBERIDENTITYFROMPREVIOUSSTEP"

MS SQL 2008 Space

So we were getting alerts that our SQL server was running out of space. It was chewing through ~150GB a month.

Looking into it, we found out that our CRM (MS CRM 4.0) database was the primary culprit.

crm1
* Highlighted portion from another technician

I finally noticed something a little bit off; the Last Database Log Backup was listed as 9/24/2014.
In the SQL Server Management Studio, under Databases, I right-click and choose properties of the CRM database
I then selected the Files page (left side)
The PRIMARY rows data mdf was 56GB
The Log ldf was ~185GB

That might explain it!

So we went back and looked through the notes regarding this server. We had changed the Recovery Model to Full (same location under the Options page) in order to export a copy for our development environment. And this was never changed back.

Change this setting back to Simple and hit OK.
Then Right-click on the same database and choose Tasks, Shrink, Files
File type change to Log

In my case it showed available freespace of 99%. I clicked OK and the data usage went down to 1.25GB. Pretty big savings if you ask me.