Solved

Run powershell with specific powershell modules loaded

Posted on 2013-02-06
17
860 Views
Last Modified: 2013-03-06
Hi,

I'd like to run powershell-commands to vmware, AD etc.
Now when I run a powershell ps1 (right mouse "run with powershell" it hasn't the modules loaded.

I guess that's something to do with profiles? How does it work + how can I do this automatically by system startup (load + connect to vcenter) so preventing slow down startup of a script (if it needs to load the modules each time I run a script it takes seconds before it runs).

Thanks for your advice.
J.
0
Comment
Question by:janhoedt
  • 5
  • 4
  • 2
  • +3
17 Comments
 
LVL 117
ID: 38858833
I would recommend using the following, also VMware recommends the use of PowerCLI, which is PowerShell interface with vSphere-specific additions.

http://communities.vmware.com/community/vmtn/server/vsphere/automationtools/powercli

One of the simplest PowerCLI examples, and something which is actually extremely useful on its own, is the Get-VM cmdlet. Which lists VMs.

PowerCLI can be a bit overwhelming to use,  But it can be enhanced with a nice toolset and a library of preconfigured scripts to jump-start your mass changes, which is possible with PowerGUI

http://powergui.org/index.jspa

and

VMware Community Pack
http://www.virtu-al.net/featured-scripts/vmware-powerpack/
0
 
LVL 40

Expert Comment

by:Subsun
ID: 38858841
You need to import the respective modules while running the script..

You can do this by adding command Import-Module <Module Name> @ the beginning of the script..

For example...

    Import-Module -Name Activedirectory

    Import-Module -Name c:\snapins\Scripting\Scripting.dll


Refer..
http://blogs.technet.com/b/heyscriptingguy/archive/2010/10/16/learn-how-to-load-and-use-powershell-snap-ins.aspx

Or use Add-pssnapin
Ref : http://ss64.com/ps/add-pssnapin.html
0
 
LVL 10

Expert Comment

by:Prashant Girennavar
ID: 38859255
Additionally,

 If you want to use PowerShell for Actrive Directory (On you client system) , You need install RSAT First to get the AD Snap in to your client system.

RSAT Can be downloded from here..

http://www.microsoft.com/en-in/download/details.aspx?id=7887

http://technet.microsoft.com/en-us/library/cc730825.aspx


once done run import-module activeDirectory


If you are runing powershell on DC , then no need of installtion RSAT , SUBSUN suggestion will work .

Thanks,

_Prashant_
0
 
LVL 10

Expert Comment

by:Pramod Ubhe
ID: 38859503
You need to add all the import commands in profile.ps1 and keep it in the folder where powershell.exe is. It will load all the modules mentioned in profile whenever powershell starts.
This is not much secure method. Also try profiles.ps1, don't remember if S is needed in that file name.
0
 

Author Comment

by:janhoedt
ID: 38869550
Please advise more on the profile and how it works/to configure it.
0
 
LVL 117
ID: 38869563
Much easier to use PowerGUI as a beginner.
0
 

Author Comment

by:janhoedt
ID: 38876853
Ok, but I want to run a powershell command with right-click button. Then I 'd need profiles, right? Please advise on that (had already powergui installed).
0
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 
LVL 10

Expert Comment

by:Pramod Ubhe
ID: 38876898
What is the OS and powershell version?
I will give you a detailed write up tomorrow.
0
 

Author Comment

by:janhoedt
ID: 38877158
Windows 2008 r2 64 bit and windows 8 32 bit mainly. No changes to default powershell but I can update them. How does this matter?
0
 
LVL 10

Expert Comment

by:Pramod Ubhe
ID: 38877180
Not sure about windows 8 but I can definitely tell you how to do it on 2008 tomorrow as i am away from my computer right now. You will have to do some research on windows 8.
0
 
LVL 40

Expert Comment

by:Subsun
ID: 38877247
Did you try adding modules inside script as I suggested in my previous comment?
0
 
LVL 10

Expert Comment

by:Pramod Ubhe
ID: 38879218
For windows 2008 R2 follow these steps -

1. Open powershell and run this command -  Get-ExecutionPolicy

2. Execution policy should be at least "RemoteSigned" or change it by command Set-ExecutionPolicy
*** This is a security risk and you need to check your org. policies before changing the execution type.

3. Download attached file and modify it as per your needs, I hope it is self explanatory.

4. Rename the file from Profile.txt to Profile.PS1 and put it in below location -
 
C:\WINDOWS\system32\WindowsPowerShell\v1.0

5. Open powershell and see if the commands in profile.ps1 are loaded/executed.



Above steps are much simpler but you can also refer below links if you need more info -

http://www.computerperformance.co.uk/powershell/powershell_profile_ps1.htm
http://technet.microsoft.com/en-us/library/ee692764.aspx
Profile.txt
0
 

Author Comment

by:janhoedt
ID: 38892687
Thanks pramod_ubhe!

Now, 3 more questions:

1. I would like to impport SCCM 2012 modules on the sccm-server.
To load them, I need to execute this command:
Import-Module 'C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\ConfigurationManager.psd1'
How come in your example the path is not needed + can I add them with the path in the profile?

2.howto execute these commands remotely? Do I need these modules loaded remotely or can I exectue them from another pc/workstation?

3.What about Windows Powershell ISE? It's included in Powershell 3.0 and completes/suggests completions. Is it as good as Powergui?
0
 
LVL 10

Accepted Solution

by:
Pramod Ubhe earned 500 total points
ID: 38921430
Sorry for the delay in response.

1. You can directly put the mentioned command in profile file and it will be executed whenever you open powershell. You can add path in profile.
2. To execute these commands remotely, you need to include them in your PS script.
3. ISE is a very good tool to write ps script. PowerGUI Has more functionalities but I like ISE, it's your choice both are good tools.

I may have not understood your questions but I would recommend that you do some testing on a test machine so that you will get better understanding of profile.ps1 Basically it executes everything written in it whenever you open powershell.
0
 
LVL 23

Expert Comment

by:Coralon
ID: 38921666
A few additional comments..

If you have Powershell v3.0, it will autoload the necessary modules when called, as long as they are loaded on the system.  I.e. If you have the AD tools installed on the system, and you call get-aduser, it will dynamically load the ActiveDirectory module.   Your Windows 8 systems will have PS3 on them already, and you can load it yourself on Win2k8R2.

The MS ISE in v3.0 is a substantial upgrade from v2.0, but it is not as good as PowerGUI.  

If you want to execute the commands remotely with v3.0, you will want to enable remoting on all your target devices, and spend time with the invoke-command cmdlet. It will allow you to easily run your commands on the remote machines.    Check the remoting help topic in powershell.  I believe it is about_remoting.  

Coralon
0

Featured Post

What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

Join & Write a Comment

Utilizing an array to gracefully append to a list of EmailAddresses
Will try to explain how to use the VMware feature TAGs in the VMs and create Veeam Backup Jobs using TAGs. Since this article is too long, I will create second article for the Veeam tasks.
Teach the user how to configure vSphere clusters to support the VMware FT feature Open vSphere Web Client: Verify vSphere HA is enabled: Verify netowrking for vMotion and FT Logging is in place or create it: Turn On FT for a virtual machine: Verify …
This Micro Tutorial walks you through using a remote console to access a server and install ESXi 5.1. This example is showing remote access and installation using a Dell server. The hypervisor is the very first component of your virtual infrastructu…

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now