在模块上导入时,Get-childitem失败

时间:2014-12-03 17:14:28

标签: powershell hyper-v windows-server-2012-r2 get-childitem powershell-v4.0

我的脚本工作正常,直到我尝试使用Mount-VHD并使用Get-ChildItem使用已安装的卷使用存储在外部模块上的个人功能。

我的脚本执行以下操作:

import-module create-vm.psm1 -force

在这个模块中,我正在安装一个VHD文件并使用Get-ChildItem来检查是否存在某些系统文件(在这种情况下是pagefile.sys)。

但我的Get-ChildItem因罕见错误而失败,因为它表示无法识别-hidden等参数或者无法识别驱动器号等,或者其他参数失败

作为解决方法,我已经在主体脚本上复制了该函数,然后就可以了。

然后你可以看到我的问题只发生在我从外部模块加载时尝试使用该功能时。

你知道原因吗?以及如何解决它?

1 个答案:

答案 0 :(得分:0)

我不能用以下模块重复这个:

test.psm1

#requires -Modules Hyper-V
#requires -RunAsAdminstrator

$vhd = 'E:\VirtualMachines\PowerShellDscExp\Virtual Hard Disks\PowerShellDscExp.vhdx'

function ListHiddenVhdFileSystemEntry {
    $disks = Hyper-V\Mount-VHD $vhd -PassThru | Get-Disk
    $disks | Get-Partition | Foreach {Get-ChildItem "$($_.DriveLetter):" -hidden}
}

我得到了这些结果:

30# Import-Module .\test.psm1
31# ListHiddenVhdFileSystemEntry


    Directory: L:\


Mode           LastWriteTime       Length Name
----           -------------       ------ ----
d--hs     7/20/2014  3:13 PM        <DIR> Boot
d--hs     7/20/2014  1:16 PM        <DIR> Recovery
d--hs     12/3/2014  7:39 PM        <DIR> System Volume Information
-arhs     3/18/2014  4:14 AM       398356 bootmgr
-a-hs     6/18/2013  6:18 AM            1 BOOTNXT
-arhs     7/20/2014  3:13 PM         8192 BOOTSECT.BAK


    Directory: m:\


Mode           LastWriteTime       Length Name
----           -------------       ------ ----
d--hs     3/18/2014  4:46 AM        <DIR> $Recycle.Bin
d--hs     8/22/2013  8:45 AM   <JUNCTION> Documents and Settings [C:\Users]
d--h-     8/22/2013  8:45 AM        <DIR> ProgramData
d--hs     7/20/2014  2:45 PM        <DIR> System Volume Information
-arhs     3/18/2014  4:14 AM       398356 bootmgr
-a-hs     6/18/2013  6:18 AM            1 BOOTNXT
-a-hs     7/20/2014  4:20 PM   1207959552 pagefile.sys
-a-hs     7/20/2014  4:20 PM    268435456 swapfile.sys