2014-10-06 72 views
0

也有一些是模块,我不完全得到....PowerShell模块

如果我作为一个普通用户根本

get-module -listavailable 

我得到这样一个结果:

Directory: C:\Windows\system32\WindowsPowerShell\v1.0\Modules 

ModuleType Name        ExportedCommands 
---------- ----        ---------------- 
Manifest ADRMS        {Update-ADRMS, Unins 
Manifest AppLocker       {Set-AppLockerPolicy 
Manifest BestPractices      {Get-BpaModel, Invok 
Manifest BitsTransfer      {Add-BitsFile, Remov 
Manifest CimCmdlets       {Get-CimAssociatedIn 
Script  DSV 
Script  DSVAsset       {Get-HTMLPage, Get-H 
Script  DSVDB        {Execute-UpdateULLoC 
Script  DSVHnas        {Get-HNASFileScan, B 
Script  DSVLog        {Start-DSVTranscript 
Script  Experimental.IO      {Where-Wildcard, Get 
Manifest FailoverClusters     {Add-ClusterDisk, Ad 
Script  ISE         {New-IseSnippet, Imp 
Manifest Microsoft.PowerShell.Diagnostics {Get-WinEvent, Get-C 
Manifest Microsoft.PowerShell.Host   {Start-Transcript, S 
Manifest Microsoft.PowerShell.Management  {Add-Content, Clear- 
Manifest Microsoft.PowerShell.Security  {Get-Acl, Set-Acl, G 
Manifest Microsoft.PowerShell.Utility  {Format-List, Format 
Manifest Microsoft.WSMan.Management   {Disable-WSManCredSS 
Script  Module        {New-PSScript, New-G 
Script  PSDiagnostics      {Disable-PSTrace, Di 
Script  PSFTP        {Send-FTPItem, Recei 
Binary  PSScheduledJob      {New-JobTrigger, Add 
Manifest PSWorkflow       {New-PSWorkflowExecu 
Manifest PSWorkflowUtility     Invoke-AsWorkflow 
Manifest ServerManager      {Get-WindowsFeature, 
Manifest TroubleshootingPack     {Get-Troubleshooting 
Manifest WebAdministration     {Start-WebCommitDela 

,这就是我希望......

但是,从计划任务做同样的时(使用不同的用户),我得到ŧ他的:

Directory: C:\Windows\system32\WindowsPowerShell\v1.0\Modules 

ModuleType Name        ExportedCommands     
---------- ----        ----------------     
Manifest BitsTransfer      {Add-BitsFile, Remove-BitsTra... 
Manifest CimCmdlets       {Get-CimAssociatedInstance, G... 
Script  ISE         {New-IseSnippet, Import-IseSn... 
Manifest Microsoft.PowerShell.Diagnostics {Get-WinEvent, Get-Counter, I... 
Manifest Microsoft.PowerShell.Host   {Start-Transcript, Stop-Trans... 
Manifest Microsoft.PowerShell.Management  {Add-Content, Clear-Content, ... 
Manifest Microsoft.PowerShell.Security  {Get-Acl, Set-Acl, Get-PfxCer... 
Manifest Microsoft.PowerShell.Utility  {Format-List, Format-Custom, ... 
Manifest Microsoft.WSMan.Management   {Disable-WSManCredSSP, Enable... 
Script  PSDiagnostics      {Disable-PSTrace, Disable-PSW... 
Binary  PSScheduledJob      {New-JobTrigger, Add-JobTrigg... 
Manifest TroubleshootingPack     {Get-TroubleshootingPack, Inv... 
Manifest WebAdministration     {Start-WebCommitDelay, Stop-W... 

为什么这两者之间存在差异?

我难倒我其实感兴趣的模块是我自己创建并放入文件夹中的模块:

C:\Windows\system32\WindowsPowerShell\v1.0\Modules 

这似乎是做工精细,除了通过调度运行任务。

我错过了什么?我忘了什么?

而且 - 我可以确认$env:PSModulePath是上是相同的:

C:\Users\GRIT.SVC.IPPlan\Documents\WindowsPowerShell\Modules; 
C:\Windows\system32\WindowsPowerShell\v1.0\Modules\; 
C:\Program Files\Common Files\Microsoft Lync Server 2013\Modules\; 
C:\Program Files\Quest Software\Management Shell for AD\; 
C:\Program Files\Microsoft Monitoring Agent\Agent\PowerShell\; 
C:\Program Files\System Center Operations Manager 2012\Powershell\ 

除了当然的用户路径。

回答

0

发现问题...

它有没有关系ExecutionPolicy - 也不是直接路径无法加载模块要么...

这是更简单的,一旦被发现。 ..

问题64/32位....

模块定位于 C:\ WINDOWS \ SYSTEM32 \ WindowsPowerShell \ V1.0 \模块

但是任务执行

C:\ WINDOWS \ Syswow64资料\ WindowsPowerShell \ V1.0 \ powershell.exe

及其所用模块应位于 C:\ WINDOWS \ Syswow64资料\ WindowsPowerShell \ V1 .0 \ Modules

但是,谢谢您的关注。

0

依靠模块自动发现是脆弱的。你的脚本应该明确地定义它需要的所有模块,然后明确地加载它们。

如果某个模块未列出,可能是因为它未经过签名且执行策略不允许加载或被发现。尝试显式加载其中一个模块,看看你得到了什么错误。

+0

ahh,它可能会执行策略..我会测试明天 我曾尝试并包含模块的完整路径,但它仍然失败 - 我认为这是与相同的错误,但我不是100%肯定。 明天会回来 – Stig 2014-10-06 15:15:58

+0

它不是ExecutionPolicy,已被设置为无限制。 – Stig 2014-10-07 07:19:11