Powershell command works in Powershell but not inside of a script, why?
Add this line at the top of your script, it will import the necessary IIS module:
Import-Module WebAdministration;
EDIT, thanks to @KyleMit: if you don't have WebAdministration installed, you may need to first run (with elevated privilege)
Import-Module ServerManager; Add-WindowsFeature Web-Scripting-Tools
RayofCommand
new to programming and scripting. 2013/06/21 I do enjoy: Powershell ServiceNow
Updated on June 17, 2022Comments
-
RayofCommand almost 2 years
I wanted to outfile my IIS Bidings to csv or txt , I am simply playing around a bit using that cmdlet :
Get-ChildItem -path IIS:\Sites
which works perfectly, also outfiling to .txt works perfect using this command :
Get-ChildItem -path IIS:\Sites | out-file "D:\_utils\PowerShell Scripts\IISexport\IISExport.txt"
But as soon as I wrap it into a function powershell tries to find the physical path IIS:\Sites which of course does not exist.
Get-ChildItem : Cannot find drive. A drive with the name 'IIS' does not exist. At D:\_utils\PowerShell Scripts\IISReport.ps1:8 char:1
my script is really simple so far :
$today = Get-Date -format M.d.yyyy function IISexport { Get-ChildItem -path IIS:\Sites } IISexport | out-file "D:\_utils\PowerShell Scripts\IISexport\IISExport$today.txt"
What am I missing ? I would like to outfile this because I would love to put it into a bigger script which outfiles my webbindings from xx webservers.
I think it's related to the env variables which are given already in the console but not inside my script. But I don't know how to manage them. Already tried
get-childitem evn:
which returned me a lot of variables. -
RayofCommand almost 10 yearsokay interesting, do I really have to import these modules for each session ? I thought they remain on machine. Thanks! works.
-
Raf almost 10 yearsThat depends how you execute your script - if the script execs and exits then yes, you need it. On the other hand , if you launch the script in a PS window which remains opened then you only need that command once(because the module will remain imported for the duration of the session).
-
RayofCommand almost 10 yearsOk I thought I only have to import modules once per machine. Explains everything.
-
Mike Cheel over 9 yearsI have similar problem but I was using AddType and then the strong name of WebAdministration. Why does THAT fail but Import-Module work?
-
KyleMit almost 9 yearsNote, if you don't have
WebAdministration
installed, you may need to first run (with elevated privilege)Import-Module ServerManager; Add-WindowsFeature Web-Scripting-Tools
-
Tormod Haugene about 8 yearsUsing elevated privileges solved this for me. Thanks!