4

I have a mixture of Win7, and XP machines on my network. Every user logs on using a VBS based logon script and for clients that support it, I want to show an informational pop-up as shown here.

How can I detect if Powershell is installed using VBScript?

makerofthings7
  • 8,821
  • 28
  • 115
  • 196

1 Answers1

5

You could use something like the following. It reads the registry key for PowerShell. If the read is successful (return code 0), or not, you get the corresponding message box, which you can switch out for other logic you need to do--like install PowerShell if it's not detected. See the source links below for more info.

Option Explicit
Dim oShell
Dim value

'If the key isn't there when we try to read it, an error will be generated
'that we will later test for, so we want to automatically resume execution.
On Error Resume Next

'#Try reading the registry value
Set oShell = CreateObject("WScript.Shell")
value = oShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\")

'Catch the error
If Err.Number = 0 Then
    'Error code 0 indicates success
    MsgBox(Err.Number & "PowerShell is installed.")
Else
    'Any other error code indicates failure
    MsgBox(Err.Number & "PowerShell is NOT installed.")
End If

VBScript to check the registry for an application (example is .NET): https://stackoverflow.com/questions/4394607/vbscript-to-check-if-net-2-0-is-installed

Registry keys to check for PowerShell: http://blogs.msdn.com/b/powershell/archive/2009/06/25/detection-logic-poweshell-installation.aspx

Geo
  • 108
  • 6