Windows

My Microsoft HoloLens Adventure – Updates on Studying

A couple of weeks ago, I made a post on the study materials I planned on leveraging to learn how to program for the Microsoft HoloLens. This weekend was the first time I finally started digging into studying. I quickly identified that the videos I intended to use might have been a bit off on exactly what I wanted to learn.

To be open and honest with everyone with my adventure, I wanted to share this and point you towards the resources I’ve decided to leverage instead. As I had mentioned in the last post, My Microsoft HoloLens Adventure – Preparing Study Resources. I had looked over some Basics videos back in March when I first started looking into this. I hadn’t touched those since March as I was getting kind of bored with it and it was all I had done when I was in college.

The next section in that post was Universal Apps, which I had never worked with. I started watching the Developing Universal Windows Apps with C# and XAML video. I quickly realized that it was going to be too high-level for me since I had such a limited experience. I tried searching for the videos they mention at the beginning of that course but was unable to find them on MVA. However, I was able to find Windows 10 Development for Absolute Beginners. In the first 10 minutes, I was able to figure out how to get my first 2D Application running for HoloLens. Yes, all it was is a button that shows text that says Hello World, but it was an app!

My Microsoft HoloLens Adventure – Preparing Study Resources

As I continue my adventure of learning how to program for the HoloLens, the first step is actually learning how to program! I am lucky enough that I took some programming classes while in College and I’ve done a lot of Scripting in Windows PowerShell – this helps me understand programming constructs. I just need to become more well-practices in the area of Object Oriented Programming and understanding the C# Syntax.

visual-studio-2013-logo

Basics:

To do this I actually started digging in a bit back in March covering some of the basics to refresh my memory. One of my favorite resources is the Microsoft Virtual Academy. I haven’t watched much but the first video I started watching was Bob Tabor’s C# Fundamentals for Absolute Beginners. As the subject says this is for absolute beginners so I’ve done a bit of skimming on a lot of the videos, but it gives a good introduction if you haven’t programmed before. I most likely will continue to skim these videos occasionally just to keep my mind fresh since I haven’t written a full blow application before.

Universal Apps:

The next video series I intend to watch is the Developing Universal Windows Apps with C# and XAML. The reason I am wanting to check with video out is my applications I want to have work across all Windows Platforms – this is something I’ve never done so it’ll be a challenge to pick it up. The nice thing about using this as a stepping stone is Universal Apps will not only work on HoloLens but also Windows 8+ Windows PC’s and Windows Phones.

HoloLens Apps:

When developing for the HoloLens there are two different types of app models, let’s explore each one.

2D Apps:

2D HoloLens apps will be the easiest ones to build – at least I think it will be for me. These apps are just like any other Windows Universal App, except the HoloLens will project the 2D App on a wall, or in front of you while using the HoloLens.

To make 2D Apps on the HoloLens I am intending to heavily rely on the Developing Uniersal Windows Apps with C# and XAML that is referenced under Universal Apps section.

In addition to the video the Microsoft Dev Center also has a couple of pages on building 2D Apps.

Building 2D apps
Current limitations for apps using APIs from the shell

Holographic Apps:

Holographic Apps are a very new concept – this is what makes the HoloLens a truly magical experience. You will see 3D renderings throughout your house, office, or where ever you are using the HoloLens at.

To start developing for HoloLens you must understand the different ways to interact with the HoloLens. This includes

World coordinates
Gaze input
Gesture input
Voice input
Spatial sound
Spatial mapping

To get a better understanding of the ways you interact with the HoloLens I suggest taking a look at the Development Overview video from Microsoft.

As I continue my adventure with learning how to develop for HoloLens I’ll make sure I share more information as I find it.

PowerShell: Check for user accounts running Windows Services

Recently I worked with a client to validate that if a user account were to be disabled that it wasn’t going to break any of their currently running applications. You can be bitten by an accidental miss-configuration where an end-users account is running a Windows Service or possibly at a lower level in a specific application such as SQL Server jobs. Luckily with the Power of PowerShell, we can conquer the Windows Services! It is also possible to create a SQL Query or even PowerShell scripts to query SQL, but we are not covering that in this article.

Checking Windows Services:

The biggest concern I had was the Windows Services. It is easy enough for a junior admin to install SQL and specify their account as the Service Account, THIS IS BAD! However, with some pure PowerShell, we can perform a visual inspection, or with some minor adjustments, we could look for a service running with a specific user.

Get-CimInstance -ComputerName (Get-ADComputer -Filter 'OperatingSystem -like "Windows Server*"' | Select -ExpandProperty Name) -Query "SELECT Name, StartName FROM Win32_Service WHERE StartName <> 'LocalSystem'" | ? { $_.StartName -notlike 'NT AUTHORITY*' -and $_.StartName -notlike 'NT SERVICE*' } | Select Name, StartName, PSComputerName

In the above example, we are using a parenthetical command along with the Get-CimInstance Cmdlet. The command that executes first is the Get-ADComputer. This command requires the ActiveDirectory module is available on your computer system. It uses the filter parameter to look for any computer that is running Windows Server (any version).

Then it passes those values to the Get-CimInstance, which performs an initial WQL Query, which doesn’t allow and statements. Therefore, we have to pipe it’s returned values to a where statement which continues filtering for us. The end of the command provides the service name, the user account running it, and the computer this service is on.

I was able to run this against the client’s environment, and within a few minutes, we knew it was safe to disable the account.

PowerShell Pranks – Making Work Fun with Creepy Voices!

In every IT office I have worked in, pulling pranks co-workers has been a standard. They tend to be low-tech; co-workers leave their computers unlocked, change their background, and maybe change their Windows sound effects. They tend to be small and easy to revert.

We had an intern program over the summer in our office and a specific intern who wasn’t very wise when it came to locking his computer. We got him probably 10-15 times with a picture of David Hasselhoff in a thong. We also installed some fun Google Chrome add-ons that would change every image on the page to something else.

These got boring, which is very unusual when making someone have a sexy background. However, because we became so bored with it, we decided to take it a step further. We thought, wouldn’t it be cool to automate this with PowerShell? So our initial idea was changing the background to a random image. Looking through the ways of doing that was semi-complicated, and I was feeling lazy. So we ditched the idea, and it was on the back burner for a long time.

One evening I came home from work and stumbled upon this fantastic post on the PowerShell Sub-Reddit “A fun script for Friday – make your friend’s computer start talking to him/her.” To sum it up, it’ll use Text to Speech to have the computer talk. In the example posted, it used PowerShell Remoting. Using PowerShell Remoting for such a malicious intent may cross a line, depends on who the target is and how much you abuse it. In my case, the computers were not domain joined, and so I couldn’t use that as easily. So I decided to take my Friday night and make it quite a bit more “portable.”

Starting My Journey through #90Days2MCSA

Hello Everyone! I apologize for my months disappearance from blogging, it’s been a busy March and will continue to be busy throughout TechEd! That is not a bad thing, and I will strive to increase my blogging. One thing that is going to help me in the interim is my Journey to my Server 2012 MCSA!

Michael Bender along with MS Learning has made a push for people to obtain their MCSA with the #90Days2MCSA Challenge, this is a fantastic idea is a great way as a community for everyone to improve their skills.

I’d like to start off by saying I may be a featured certification success story on the 90Days2MCSA site; however I do not have my Server 2012 MCSA yet and that means I get to participate! I’ve been hiding in the shadows and doing some studying with the official Microsoft Press 70-417 Upgrading Your Skills to MCSA Windows Server 2012.