Friday, October 27, 2017

Register powershell snapin manually

I wanted to use the VMWare.vimautomation.core psssnapin in my scom discovery script.
But the snapin would not show up.
Earlier i had installed Powercli 6.0 and it does not have this snapin
So i uninstalled it and installed Powercli 5.5. But when the vcenter powershell was started it still showed 6.0 and the snapins would not show up.


 








 These are the steps I followed to manually register the snapin

As an example I will use the VMWare.VimAutomation.Core powershell snapin for .net 2.0.
Add the following registry key to your server.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellSnapIns\VMware.VimAutomation.Core]
"PowerShellVersion"="2.0"
"Vendor"="VMware Inc."
"Description"="This Windows PowerShell snap-in contains Windows PowerShell cmdlets for managing vSphere."
"Version"="5.5.0.0"
"ApplicationBase"="C:\\Program Files (x86)\\VMware\\Infrastructure\\vSphere PowerCLI"
"AssemblyName"="VMware.VimAutomation.ViCore.Cmdlets, Version=5.5.0.0, Culture=neutral, PublicKeyToken=null"
"ModuleName"="C:\\Program Files (x86)\\VMware\\Infrastructure\\vSphere PowerCLI\\VMware.VimAutomation.ViCore.Cmdlets.dll"
"CustomPSSnapInType"="VMware.VimAutomation.ViCore.Cmdlets.Vim4PSSnapIn"

Copy the assembly files in modulename for powercli 5.0 to location

C:\\Program Files (x86)\\VMware\\Infrastructure\\vSphere PowerCLI

Open powershell and run command Add-PSSnapin Vmware.vimautomation.Core




Thursday, August 3, 2017

Regular expression checker powershell

Simple powershell script to check your regular expression strings.
The reference for creating a regular expression is here

http://www.regular-expressions.info/quickstart.html


PS C:\WINDOWS\system32> $String = 'This is my string'
$expression = [regex]"my"
$expression.Match($String)

Groups   : {my}
Success  : True
Captures : {my}
Index    : 8
Length   : 2
Value    : my


PS C:\WINDOWS\system32> $String = 'this is my string'
$expression = [regex]"[A-Za-z]"
$expression.Match($String)


Groups   : {t}
Success  : True
Captures : {t}
Index    : 0
Length   : 1
Value    : t



PS C:\WINDOWS\system32> $String = 'this is my string'
$expression = [regex]"[A-Z]"
$expression.Match($String)



Groups   : {}
Success  : False
Captures : {}
Index    : 0
Length   : 0
Value    :