Geeky Tricks: Replace Cmd with Powershell

Today when I was recording a Podcast, me and my co-hosts got into a discussion about if it was possible to replace cmd with Powershell in Windows (The reason for the discussion is that the keycombination Win + R, cmd, Enter is ingraved in our spine)… turns out it is 🙂

New-Item “HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\cmd.exe” | Set-ItemProperty -Name “(default)” -Value “C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe”

If you want to revert just use:

remove-Item “HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\cmd.exe”

Happy Powershelling

Johan

Konstiga beteenden för Get-ADUser

Dagens problem har med Get-ADUsers att göra… De flesta miljöer jag arbetar i är uppgraderade till 2012 eller senare men just denna kund har inte uppgraderat…

Dagens uppdrag var att skapa en CSV export av AD användare så jag började med:

Get-ADUser -Filter * -Properties * –Searchbase “OU=OUn,DC=Domain,DC=se”

Detta spottade ur sig en hel hög med fel… Suck

Jag testade det i min labbmiljö och det funkade… efter lite letande hittade jag att det verkar vara ett problem med Schema versionen… antingen uppdaterar man eller får man testa en workaround:

Get-ADUser -Filter * -Property * –Searchbase “OU=OUn,DC=Domain,DC=se”

verkar fungera (observera Property istf Properties)

Get-ADUser –Filter * –SearchBase “OU=OUn,DC=Domain,DC=se” | get-ADObject -Properties *

/Johan

Links 
http://richardspowershellblog.wordpress.com/2013/11/06/get-aduser-issue/
http://richardspowershellblog.wordpress.com/2013/11/08/get-aduser-issue-2/

Lite kort info om PowerShell moduler

Som ni säkert vet kan man koppla in moduler i Powershell som gör att man får fler Cmdlets. I Windows Server 2012  och 2012 R2 kommer Powershell själv att ladda moduler om de är installerade korrekt… Vad är då korrekt?

Det finns ett antal olika ställen där man kan installera Powershell moduler

Använd variabeln $env:PSModulePath för att ta reda på var Windows letar efter moduler att autoladda. På min maskin är standardsökvägarna förjande:

C:\Users\username\Documents\WindowsPowerShell\Modules
C:\Program Files\WindowsPowerShell\Modules
C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
c:\Program Files (x86)\Microsoft SQL Server\110\Tools\PowerShell\Modules\

Den första är min personliga sökväg… varje användare har en och där kan man lägga sina egna moduler. Den Andra är en standardsökväg där man kan lägga moduler för alla användare. Nummer tre är reserverad för Windows inbyggda moduler och den fjärde beror på att det finns en SQL server installerad på min maskin.

Nästa punkt på agendan är att lägga till en nu modul… Jag vill installera Michael Niehaus modul för att hantera MDT databasen. Så jag börjar med att ladda ner den och packa upp den. Hur gör man då för att installera den så att Powershell kan ladda den automatiskt? Jo, jag kopierar den till antingen sökväg 1 eller 2 ovan, men för att det skall funka behöver jag lägga den i en mapp som heter samma som modulen. I mitt fall heter modulfilen MDTDB.psm1, alltså skapar jag mappen C:\Program Files\WindowsPowerShell\Modules\MDTDB och lägger filen där.

Mvh

Johan

Too many devices…

Idag har jag stött på ett angenämt problem… Jag har för många tekniska gadgets. En del av er säger säkert att det är omöjligt… men enligt Microsoft Excahnge går gränsen vid 10…

image

Lösningen är ganska enkelt. Bärja med att skapa en ny ThrottlingPolicy som tillåter det antal enheter du vill öka till:

New-Throttlingpolicy "More Gadgets" -EasMaxDevices 20 -EasMaxConcurrency 20

Knyt policyn till den mailbox du vill skall kunna åtnjuta lyxen av flera enheter:

Set-Mailbox nissehult -ThrottlingPolicy "More Gadgets"

För att ändra den nya policyn till att tillåta ännu fler enheter:

Set-Throttlingpolicy "More Gadgets" -EasMaxDevices 25 -EasMaxConcurrency 25

Mest prylar när man dör vinner…

/Johan

Check Hyper-V replication status using Powershell

One of my colleges sent me this little snippet today for easily checking replication status on the VMs on our hyper-v host… I modified it for checking multiple hosts:

Get-VMReplication -computername HOST1,HOST2,HOST3 | select-object lastreplicationtime, vmname, computername | Sort-Object -Property LastReplicationTime | ft -AutoSize

/Johan

How to monitor Windows 2008 R2 Servers from Server Manager in Windows Server 2012

This will be a very short and sweet description on how to monitor Windows Server 2008 R2 from Windows Server 2012

  1. Start by installing .NET 4 Framework on the 2008 R2 Server
  2. Install Windows Management Framework 3.0 in the 2008 R2 server
  3. Run winrm qc in an elevated command prompt on the Windows Server 2008 R2 computer
  4. To be able to use BPA on the 2008 R2 server run Enable-PSremoting –Force from an elevated PowerShell prompt
  5. Done…

Force update of Exchange 2010 address lists

If you add a new mailbox or a distribution list to your Exchange 2010 server you need to either wait for the address lists to update you can force them to update.

In the Exchange management prompt run:

Get-GlobalAddressList | update-GlobalAddressList
Get-AddressList | update-AddressList
Get-OfflineAddressBook | Update-OfflineAddressBook

On the Clients you might need to update the Offline Address Book by going to Send/Receive – Send/Receive Groups – Download Address Book…

/Johan

Adding and removing the GUI in Windows Server 2012

In Windows Server 2008 R2 you could select whether you wanted to run Standard (GUI) och Core version of Windows Server. In Windows Server 2012 the GUI is a feature which you can add or remove.

To remove the GUI you use the following Powershell one-liner:

Remove-WindowsFeature Server-Gui-Shell, Server-Gui-Mgmt-Infra

You can also uninstall the GUI, which removes the binary files from the disk. To completely uninstall the GUI you use the following Powershell one-liner:

Uninstall-WindowsFeature Server-Gui-Shell, Server-Gui-Mgmt-Infra

If you realize you are in over your head you can add it back in using:

Add-WindowsFeature Server-Gui-Shell

… or:

Install-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell –Restart –Source c:\mountdir\windows\winsxs

You can also do all of this using Dism:
Dism /online /enable-feature /featurename:ServerCore-FullServer /featurename:Server-Gui-Shell /featurename:Server-Gui-Mgmt

Links

http://technet.microsoft.com/library/hh831786

TrueSec on The Scripting Guys

As you might know Microsoft has a site called The Scripting Guys. My colleague Niclas Goude will be writing a couple of guest blogs on The Scripting Guys regarding security from the 2:nd to the 6:th of July.

The specific subjects will be:

Monday: Scanning
Tuesday: Brute Force
Wednesday: Shares and Metadata
Thursday: Give yourself System Permission without psexec
Friday: LSA Secrets