Я новичок в PowerShell и давно не администрировал Windows. Я загрузил zip-архив модуля Windows Update PowerShell (http://gallery.technet.microsoft.com/scriptcenter/2d191bcd-3308-4edd-9de2-88dff796b0bc) и вставьте C:\Windows\System32\WindowsPowerShell\v1.0\Modules\WindowsUpdate
. PowerShell не находит эти модули.
Я не хочу хранить их в каталоге пользователя. Я хочу, чтобы они находились в тех же каталогах, что и все остальные стандартные модули PS.
Ваш вопрос указывает на то, что вы извлекли:
C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Modules \ WindowsUpdate
Это неправильный каталог. Модуль называется PSWindowsUpdate
, и поэтому он должен находиться в каталоге с именем PSWindowsUpdate
. Я распаковал почтовый индекс в:
C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Modules \ PSWindowsUpdate
Следующее импортирует модуль и работает должным образом:
Import-Module PSWindowsUpdate
Как и в видео, которое я разместил в комментарии к вашему исходному вопросу, вы не должны размещать свои модули в том же месте, где Microsoft размещает свои модули. (т.е. C:\Windows\System32\WindowsPowershell\v1.0\Modules
)
Итак, где вы должны разместить свои собственные модули Powershell? Ответ прост. Вы помещаете свои модули в один из каталогов, указанных в переменной среды PSModulesPath, что не System32\WindowsPowershell\v1.0\Modules
.
PS C:\Users\ryan> $Env:PSModulePath -split ';'
C:\Users\ryan\Documents\WindowsPowerShell\Modules
C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
C:\Program Files (x86)\Microsoft SQL Server\110\Tools\PowerShell\Modules\
Теперь я знаю, что вы видите там только каталог для конкретного пользователя. Но вы можете добавить любой путь к этой переменной среды. И вы можете сделать это в масштабах всей машины, чтобы затронуть всех пользователей. Вы можете сделать это в графическом интерфейсе, перейдя в Advanced System Properties, или вы можете сделать это в командной строке, используя setx
. В set
команда годна только для текущего сеанса, setx
установит постоянную общесистемную переменную.
Вы также можете попробовать вставить модуль PS в
C:\Users\All Users\Documents\WindowsPowershell\Modules
Но я не тестировал это, поэтому вам все равно может потребоваться добавить переменную среды для этого каталога.
Изменить: наконец, не забудьте создать подкаталог для вашего модуля, поэтому, если ваш модуль называется Foo, вам нужно создать подкаталог Foo в одном из этих PSModulePaths.
Приятного вам путешествия по Powershell! :)