1

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

我的脚本执行以下操作:

import-module create-vm.psm1 -force

在这个模块中,我安装了一个 VHD 文件并使用Get-ChildItem它来检查是否存在一些系统文件(在本例中是pagefile.sys.

但是我的Get-ChildItem失败并出现了一个罕见的错误,因为它说它不能识别参数,-hidden或者它不能识别驱动器号等,或者它会因其他参数而失败。

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

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

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

4

1 回答 1

0

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

测试.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
于 2014-12-04T02:56:01.873 回答