Array Setup and Networking
1818972 Members
2732 Online
109596 Solutions
New Discussion юеВ

Re: PowerShell Module

 
jrich52352
Trusted Contributor

PowerShell Module

jrich523/NimblePowerShell ┬╖ GitHub

Built and tested in Version 3 (v2 compatibility will be validated but it should be fine)

Install

Run the following line in PowerShell

iex (new-object System.Net.WebClient).DownloadString('https://raw.github.com/jrich523/NimblePowerShell/master/Install.ps1')

Load

In powershell load the module by typing:

Import-Module Nimble

This might prompt for loading depending on what your execution policy is.

To get a list of commands type:

Get-Command -module Nimble

currently the help files are not populated but once I get basic functionality up and running I'll start to sure up the code and populate help details.

Examples

##Connect to array first, currently only handles one array

Connect-NSArray -SystemName 192.168.1.55 -Password p@ssw0rd   ##currently password is just clear text, will change that soon


#List volumes

Get-NSVolume


#New volume

New-NSVolume -Name testvol -Size 1tb -Description "powershell test" -PerformancePolicy default



#a more detailed example, assume you have a "clonetest" volume:


Get-NSVolume

Get-NSSnapShot -Volume clonetest

Get-NSVolume -Name clonetest| New-NSSnapshot -Name CloneTest2 | New-NSClone -Name CloneTest2

Get-NSSnapShot -Volume clonetest

Get-NSVolume

Get-NSVolume clonetest2 | Get-NSVolumeACL

Get-NSInitiatorGroup

Add-NSInitiatorGroupToVolume -InitiatorGroup esx -Volume clonetest2 -Access Volume

Get-NSVolume clonetest2 | Get-NSVolumeACL

Get-NSVolume clonetest2 | Get-NSVolumeACL | Get-NSInitiatorGroup

Remove-NSVolume clonetest2 -Force

Get-NSVolume clonetest | Get-NSSnapShot | Remove-NSSnapShot



example.gif


Requests

If you have a special need let me know i can probably easily add it in, just trying to get base functionality and work towards replication the UI functionality.

Message was edited by: Justin Rich
module version 1.1 uploaded

79 REPLIES 79
jrich52352
Trusted Contributor

Re: PowerShell Module

I have made some updates, mostly around docs so that cmdlets should have their help populated.

Also I added some functions around the performance policy stuff.

There will be a few more updates coming.

gmiller132
New Member

Re: PowerShell Module

Good stuff!

I have a question about the module. There is a file called GroupMgmt.dll. Are you the author of this? Is source available?

jrich52352
Trusted Contributor

Re: PowerShell Module

Nimble actually works off SOAP calls so this is an automatically generated dll from visual studio.

gmiller132
New Member

Re: PowerShell Module

That's very interesting. Does Nimble publish a WSDL with the available interfaces?

jrich52352
Trusted Contributor

Re: PowerShell Module

Not really, which is whats been making this so tricky, however today i should have a new version published with full examples!

The only thing (I think) that will be left will be CHAPS and creating protection plans/schedules.

clint_mcguire
Occasional Advisor

Re: PowerShell Module

I get an error when I load the module.

Import-Module : The module manifest nimble.psd1 could not be processed because it is not a valid Windows PowerShell restricted language file. Remove the elements that are not permitted by the restricted language:

At C:\...\Modules\nimble\nimble.psd1:64 char:22

+ FormatsToProcess = @(Nimble.format.ps1xml)

+                      ~~~~~~~~~~~~~~~~~~~~

The command 'Nimble.format.ps1xml' is not allowed in restricted language mode or a Data section.

At line:1 char:1

I unblocked the zip file before extracting and I've also tried using -force on the Import-Module cmdlet...

Anything I'm missing?

jrich52352
Trusted Contributor

Re: PowerShell Module

hmm could have sworn i fixed that before i uploaded it, its a simple problem, just need to quote it, the line should look like

FormatsToProcess = @('Nimble.format.ps1xml')


im not so good at the whole git thing


i should actually have a newer, and much better, version in the next hour or two.

clint_mcguire
Occasional Advisor

Re: PowerShell Module

Thanks!

That fixed it.

jrich52352
Trusted Contributor

Re: PowerShell Module

There an update and an installer! not sure how well it would work with updating, but a clean install works great. I've had a chance to test most of the cmdlets pretty well.

a large portion of the help test is populated but not all of it.

let me know if you have any problems or suggestions!

jhauf56
Occasional Advisor

Re: PowerShell Module

After running: Connect-NSArray -SystemName 192.168.1.55 -Password p@ssw0rd I get:

Exception calling "getControllerName" with "1" argument(s): "Method 'getControllerName' not implemented: method name or namespace not recognized"

At C:\Users\a_jesse\Documents\WindowsPowerShell\Modules\Nimble\Login.ps1:37 char:7

+       $arrname = $script:nsunit.getControllerName($sid.value)

+       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException

    + FullyQualifiedErrorId : SoapHeaderException

It does still connect to the array and I can add and remove volumes but I thought you might like to fix this.

Otherwise I am very eager to see future development! This is great! Thanks!

jrich52352
Trusted Contributor

Re: PowerShell Module

Interesting, what version of software are you running with your unit?

marktheblue45
Valued Contributor

Re: PowerShell Module

I'd love to chat with you to get familiar with Poweshell scripts and Nimble

in particular. Novice with CLI outside of Novell.

Regards,

Mark.

jrich52352
Trusted Contributor

Re: PowerShell Module

I usually sit in IRC, which you can access via Live Chat | PowerShell Community Groups

jhauf56
Occasional Advisor

Re: PowerShell Module

2.0.3.0-40779-opt

It might be our version, we are in a little bit of a special situation with Nimble and our unit.

jrich52352
Trusted Contributor

Re: PowerShell Module

hmm they must have changed the API.

all that does is print out the name of the unit you are connecting to, so it really has no impact on the operations of things.

will be interesting to see if you run in to any other errors.

jhauf56
Occasional Advisor

Re: PowerShell Module

I will keep you posted if I do but all of the commands appear to be working so far. Just cosmetic at this point.

Thanks for this, much easier, quicker, and cleaner than plink

jrich52352
Trusted Contributor

Re: PowerShell Module

yeah i actually had to do a good chunk of vmware work (hence all the other posts) and i was real happy about how easy it all was. made it a pleasure to do!

also found some bugs, so i've had updates, as late as yesterday.

I havent tried using the installer to overwrite/update, but i cant see why it wouldnt. depending on when you installed it, you might want to grab an update.

jhauf56
Occasional Advisor

Re: PowerShell Module

Just installed it a couple hours ago so it should be the latest. I have a project that was put on hold for awhile that I am circling back to. I will post the script up when I am done so folks can see a sample script.

jrich52352
Trusted Contributor

Re: PowerShell Module

great, cant wait to see it!

casey_jones
New Member

Re: PowerShell Module

Hello Justin,

I am attempting to use a PS script to create multiple volumes on an array using this module. However, when attempting to set the performance policy name I receive errors. It appears that it does not like the spaces in the performance policy name. Please see the error below:

New-NSVolume : Cannot validate argument on parameter 'PerformancePolicy'. The argument "Exchange 2010 data store" does not belong to the set "default,DPM,'Exchange 2003 data store','Exchange 2007 data store','Exchange 2010 data store','Exchange log','Hyper-V CSV','Oracle OLTP',SharePoint,'SQL Server','SQL Server 2012','SQL Server Logs','VMware ESX','VMware ESX 5','VMware VDI','Windows File Server'" specified by the ValidateSet attribute. Supply an argument that is in the set and then try the command again.

At line:3 char:67 + New-NSVolume -Name $_.LunName -Size $_.LunSize -PerformancePolicy $_.Preformance ...

Is there any way around this?

Thanks!

jrich52352
Trusted Contributor

Re: PowerShell Module

Did you try to manually quote it? Im trying to find a good way around the space problem, its actually a bug with powershell and the dynamic validation sets.

If you did try the quotes and it still doesnt work, then you arent the only one.

Im working through this problem with someones else (here Re: Automate ESX Datastore creation with Nimble PowerShell Module) and i've suggested they reinstall the module. Im not sure when you pulled it down, but there might have been a bug in one of the posted versions. close powershell, remove the Nimble folder from your module path (my documents\windowspowershell\modules) and then run the installer again.

also what version of powershell are you using?

casey_jones
New Member

Re: PowerShell Module

Justin,

I have tried with single quotes, double quotes and both single inside double but the same result every time. I first downloaded the module on 1/28 in the afternoon.

I'm using powercli 5.5 release 1 and powershell ISE has the same result.

Thanks!

jrich52352
Trusted Contributor

Re: PowerShell Module

What version of powershell though? 2, 3 or 4?

I did all my testing in 3 and 4.

casey_jones
New Member

Re: PowerShell Module

I am running version 3