Category Archives: Windows

Powershellish Mailbox Creation

Found these old notes for making a post.  Figured I may as well move the notes here even if they are less relevant.  Maybe it will be useful to someone.

Mailbox Creation

Sometimes those old Exchange gui’s just ain’t enough. Time to bust out the command line. Here is some very useful information about doing just that.
So, of course, there is a special command prompt you will want to use: the Exchange Management Shell.

Main Data

I pulled this directly from the MS helps pages in Exchange. I did, however, add the very important (and neglected) identifier for each of these five mailbox types (at least my best guess):

User Account:

##
New-Mailbox -Name -Database -OrganizationalUnit -Password -UserPrincipalName [-ActiveSyncMailboxPolicy ] [-Alias ] [-DisplayName ] [-DomainController ] [-FirstName ] [-Initials ] [-LastName ] [-ManagedFolderMailboxPolicy ] [-ManagedFolderMailboxPolicyAllowed ] [-ResetPasswordOnNextLogon <$true | $false>] [-SamAccountName ] [-TemplateInstance ]
##

Linked Account:

##
New-Mailbox -Name -Database -LinkedDomainController -LinkedMasterAccount -OrganizationalUnit -UserPrincipalName [-ActiveSyncMailboxPolicy ] [-Alias ] [-DisplayName ] [-DomainController ] [-FirstName ] [-Initials ] [-LastName ] [-LinkedCredential ] [-ManagedFolderMailboxPolicy ] [-ManagedFolderMailboxPolicyAllowed ] [-Password ] [-ResetPasswordOnNextLogon <$true | $false>] [-SamAccountName ] [-TemplateInstance ]
##

Room Account:

##
New-Mailbox -Name -Database -OrganizationalUnit -Room -UserPrincipalName [-ActiveSyncMailboxPolicy ] [-Alias ] [-DisplayName ] [-DomainController ] [-FirstName ] [-Initials ] [-LastName ] [-ManagedFolderMailboxPolicy ] [-ManagedFolderMailboxPolicyAllowed ] [-Password ] [-ResetPasswordOnNextLogon <$true | $false>] [-SamAccountName ] [-TemplateInstance ]
##

Equipment Account:

##
New-Mailbox -Name -Database -Equipment -OrganizationalUnit -UserPrincipalName [-ActiveSyncMailboxPolicy ] [-Alias ] [-DisplayName ] [-DomainController ] [-FirstName ] [-Initials ] [-LastName ] [-ManagedFolderMailboxPolicy ] [-ManagedFolderMailboxPolicyAllowed ] [-Password ] [-ResetPasswordOnNextLogon <$true | $false>] [-SamAccountName ] [-TemplateInstance ]
##

Shared Account:

##
New-Mailbox -Name -Database -OrganizationalUnit -Shared -UserPrincipalName [-ActiveSyncMailboxPolicy ] [-Alias ] [-DisplayName ] [-DomainController ] [-FirstName ] [-Initials ] [-LastName ] [-ManagedFolderMailboxPolicy ] [-ManagedFolderMailboxPolicyAllowed ] [-Password ] [-ResetPasswordOnNextLogon <$true | $false>] [-SamAccountName ] [-TemplateInstance ]
##

Examples in Action

Create a shared mailbox:

##
new-Mailbox -alias testsharedmbx -name TestSharedMailbox -database "Mailbox Database" -org Users -shared -UserPrincipalName testsharedmbx@example.com
##

Realworld example:

##
new-Mailbox -alias sanfrancisco -name SanFrancisco -database "Mailbox Database" -org "simplecompany.lan/simpleCOMPANY/Resource Accounts" -shared -UserPrincipalName sanfrancisco@simplecompany.lan
##

Notes:

  • alias is the whatever@
  • name relates to the display name

Adding Permissions

Main Data

##
Add-MailboxPermission
Add-MailboxPermission -Identity "Some User" -User DonaldK -Accessright Fullaccess -InheritanceType all
##

To this point everything is more or less clear but people find it hard to find more parameters for -Accessright, which is actually the most important part of the command. Here they are:

  • FullAccess
  • SendAs
  • ExternalAccount
  • DeleteItem
  • ReadPermission
  • ChangePermission
  • ChangeOwner

Examples in Action

Realworld example:

##
Add-MailboxPermission -Identity SanFrancisco -User "simpleCompany San Francisco ACL" -Accessright FullAccess -InheritanceType all
##
Share

Windows Hates USB Drives

Not sure why but Windows is always throwing little tantrums when I attach a USB drive.  None of the other operating systems I use complain, but Windows complains nearly every time.  I think it can smell the Unix.

When I first attach a drive it will probably confront me with this terrifying message of doom.

What to do?
What to do?

Continuing without scanning always works fine, but if I should ask it to scan and fix (as they so thoughtfully recommend) I get the obligatory “are you sure?”, because (of course) “Scan and fix” means “scan and… that’s it”.

Er... repair?
Er… repair?

Oh, shit.  They found errors!  Better fix them.  I mean it’s the only option at this point.  (Canceling is just giving up.)

The No Error!
The No Error!

I’m pretty much doomed.  Save yourself!

Share

So You Wanna Do C++ Programming on Windows

You must update Win10 to the latest version before you will be able to enable the Windows Subsystem for Linux and Ubuntu (which is where you will find bash). It is best to do this over a wired connection as it will go faster and more smoothly.

Enable the subsystem:

  • Hit the Windows key and locate the Control Panel
  • Now locate the Programs and Features panel and double-click on it
  • Click the “Turn Windows features on or off” link on the left
  • Check the box for “Windows Subsystem for Linux” and click the “Ok” button

Enable developer mode:

  • Hit the Windows key and click the Settings gear on the left of the Start menu
  • Choose Update & Security (it’s the last entry)
  • Choose “For developers” on the left
  • Choose the “Developer mode” radio button

Setting up bash:

  • Open a command prompt (cmd), a PowerShell prompt, or a Terminal in Visual Studio Code and type bash
    • (This will cause bash to run through a basic set up.)
  • Enter new UNIX username:
    • Use your Windows username as that’s easiest to remember
  • Enter new UNIX password:
    • Use your login password for Windows again because it’s easiest
  • Retype your UNIX password:
    • Type your login password again so you’re sure it’s correct

If cmd complains bash doesn’t exist…

  • Open the Microsoft Store application
    • Win –> type store
  • Install Ubuntu
    • search for Ubuntu or bash
    • Click the “Get the apps” button in the “C:\> Linux on Windows?” box
    • Choose Ubuntu (free)
    • Click the “Get” button
  • Go back to “Setting up bash” above except you’ll need to locate and launch Ubuntu from the Windows Start menu

Update Ubuntu (the subsystem which is running bash):

  • sudo apt update
    • (you will be asked to invisibly enter your password)
  • sudo apt upgrade
    • (answer y)
  • sudo apt autoremove
  • sudo apt autoclean

(Those last two are not strictly necessary but are a good practice to use. If too much time passes between any of these sudo commands you will be asked to enter your password again.)

Install the g++ compiler:

  • sudo apt install g++
    • (answer y)

The final piece of this puzzle is the (optional but pleasant enough) Code (free) version of Visual Studio.  You can get that for Windows, Mac, and Linux directly from this site.

Remember to have fun!

Share

Date and Time on the Windows Command Line

What a mess.  All you want to do is insert a timestamp into a file name so as to make it easily organizable.  That ought to be simple, right?

Wrong!

What a mess.  There are two real issues at the heart of this.  First, Windows is deathly afraid of nine characters:

\ / : * ? ” < > |

To Windows, those are the most frightening things imaginable.  Do you feel the fear?!  None of their file systems (from FAT16 to NTFS) can manage files using those characters.  Don’t get me wrong, some of those characters can be problematic in a file name.  Can be.  But this prohibition really gets in the way.  Think about how time is formatted literally everywhere.  And who doesn’t love the value of the question mark…

The second issue is that the content of the DATE variable is inexplicably the result of the region and not independent of the region.  So, if a user changes the date display according to where they are, if they change it from the default, the output of the DATE variable is different and must be parsed differently.  (The same problem exists with the TIME variable and the 24 hour clock.) . Again, unfathomable why anyone would use this as a starting point.

In short, I can’t offer a definitive line of code for giving a file name an up to the second timestamp.  I can only offer a line that may or may not need to be tweaked for a given user.

This is for the default date and time settings:

%date:~-4,4%%date:~-10,2%%date:~-7,2%_%time:~0,2%%time:~3,2%%time:~6,2%

This allows you to create a command like this:

move file.txt %date:~-4,4%%date:~-10,2%%date:~-7,2%_%time:~0,2%%time:~3,2%%time:~6,2%_file.txt

This slices up the DATE and TIME variables (using ~ and then some basic coordinates) to give a result (with an underscore between the date and the time).  If the user is employing a different date (or time) format you’ll have to play around with the coordinates to grab the correct chunk.  Best of luck.

Go get ’em, tigers!

Share

Store Blocked in Win10 after Upgrade

I updated many (near 50) virtual Win10 machines to the latest release build.  Took about two hours per machine.  At least some of those machines no longer were able to access the Store.

The Store Is Blocked
The Store Is Blocked

I love reading “Check with your IT or system administrator” because that’s me.

Google has a lot of results for 0x80070EC, but including Win10 and Store helped me track down a Registry key location.  Since we have no Group Policy in place concerning the Store, I went ahead and remove the restriction.  You can find the key in question at HKEY_LOCAL_MACHINE –> SOFTWARE –> Policies –> Microsoft –> WindowsStore and it’s called RemoveWindowsStore.

Edit the Registry
Edit the Registry

You want to change that 1 to a 0.

Edit Dword
Edit Dword

No reboot required.  Go Store all you want.

Share

Skype Lacks Win10 Love

Building out new Win10 machines on our network, specifically a master of masters in VMware’s esxi.  Probably this can happen in a bare-metal Win10 installation as well.  I haven’t tested it much beyond what you find here.

I tried installing Skype from the Web.  I suppose there are those who will whine I’m supposed to install it from the Windows Store (or however they have branded their store in Windows 10).  Regardless, since I want to ensure I am getting the full version (and not some stripped down Metro-we-don’t-call-it-that-anymore-and-besides-we-don’t-use-it-but-we-do version) I downloaded and installed from the usual executable.

I tried this and it failed.  I found myself caught in an installer loop.

12-10-2015_[1]
So exciting to get started…
12-10-2015_[2]
Fuck Skype Click to Call. Seriously, who does this?
12-10-2015_[3]
Oh, yes. Just what the doctor ordered. Not!
12-10-2015_[4]
The Moment of Truth
12-10-2015_[5]
This looks like the same installer?
12-10-2015_[6]
Yeah, every time…
Since I have not yet installed using the regular installer successfully, I cannot say whether this is by design.  Which is to say, perhaps Microsoft is attempting to force users to use the installer found in their store.  If this is the case, they are doing a lousy job of communicating this fact.  Regardless I was able to get an installer that worked.

Go get this one instead:  http://www.skype.com/go/getskype-msi

That will work.

Share

How the Application Experience Service Fux Firefox

I have been having this problem on a VM pool replica master.  Don’t worry about what that means if you are not familiar with machine pools (VMware); it’s not important.  The important part is that I was not able to save certain files I was downloading with Firefox to the Desktop.

The download process would proceed as expected up until the end of the download.  Then when Firefox would merge the two files of the download into the single file which was the actual downloaded file, it would fail.  Every time.

I tried running Firefox in its safe mode (no extensions).  Nada.

I tried using Revo Uninstaller to utterly remove all traces of Firefox (as IE, Chrome, and Opera did not have this issue) from the machine.  After rebooting and re-installing Firefox the problem persisted.

Eventually I found an obscure mention of a service called Application Experience.  If that service is disabled, this sort of thing can happen.  I checked my personal VM and found that this service was set to Manual.

So I changed that replica master to Manual and rebooted it.

No problem saving the 64 bit Java installer downloaded through Firefox to the Desktop.

It’s an odd connection.  Hope this helps you too.

Share

Shortcut the Long Way ‘Round

Sometimes you want an application to start when you log into a machine.  In most new versions of Windows you can manage this within the Task Manager, there is a Startup tab.  However, in Windows 2012 R2 there is no such tab in the Task Manager.  Yet you may still wish for one.

Fear not; there is a solution.

If you want to add a startup item for the currently logged-on user only, use this command:

shell:Startup

If you’d like something to start for any user which logs in, then use this version instead:

shell:Common Startup

Now normally you can simply drag while holding the Alt key and when you drop you drop a shortcut in that location.  This is true even for the first version of this command above; if you drop into that folder while holding the Alt key, you drop a shortcut into that Startup folder.

However, the Common Startup folder is a dangerous and protected system folder.  You will not be able to create a shortcut in that folder.

And just where do you think you're going?
And just where do you think you’re going?

So I said Yes and then moved that into the Common Startup folder.  I had to confirm I wanted to do it, but it allowed the shortcut to be placed.

World’s smallest hack?  Go MS!

Share

PowerShelling Proper-like

We have started using some cool features in VMware’s Horizon infrastructure which enable us to remotely serve virtual applications.  These applications are being served from a Windows 2012 R2 server.  When install an application to participate in this infrastructure, you must use a special mode called (wait for it) /install, and when you are ready to serve those applications you switch back to the usual mode called (hold tight) /execute.  It’s a very simple PowerShell command.

change user /install

change user /execute

Problem was PowerShell informed me in no uncertain terms that I had to be an administrator to run them.

 

Who do you think you are?
Who do you think you are?

Only one issue: I am a member of the local Administrators group.

I pushed the turbo button on my brain and it thinked.  I right-clicked on the PowerShell icon and chose Run as Administrator.

Just a bad error message.  No worries here.

Share