为什么测试路径为 PSDrive 返回 $false?
Why is test-path returning $false for a PSDrive?
我正在从机器 运行ning SCCM 连接 PSDrive 并尝试执行测试路径以确定是否创建给定目录。
然而,测试路径为确实存在的目录返回 $false
(事实上,我什至可以用 Tab 键完成 PoSh window)
我的PSDrive连接代码如下:
New-PSDrive -Name $SiteCode -PSProvider CMSite -Root $ProviderMachineName -Scope global
这 returns 一个 PSDrive 作为 "RED" 其中 returns 一个 $true
结果:
PS C:\> test-path RED:\
True
然而,当我尝试测试低于它的任何东西时,它 returns $false
如果我尝试创建新项目,它会失败
PS C:\> test-path RED:\Driver\Dell\WinPE\
False
PS C:\> new-item RED:\Driver\Dell\WinPE\
new-item : Path already exists.
At line:1 char:1
+ new-item RED:\Driver\Dell\WinPE\
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (OBFUSCATED\Driver\Dell\WinPE\:String) [New-Item], InvalidOperationException
+ FullyQualifiedErrorId : Path,Microsoft.PowerShell.Commands.NewItemCommand
(我混淆了机器的 FQDN)
如果我在路径上 运行 一个 get-item
,这就是我得到的结果:
PSPath : AdminUI.PS.Provider\CMSite::OBFUSCATED\Driver\Dell
PSParentPath : AdminUI.PS.Provider\CMSite::OBFUSCATED\Driver
PSChildName : Dell
PSDrive : RED
PSProvider : AdminUI.PS.Provider\CMSite
PSIsContainer : True
SmsProviderObjectPath : SMS_ObjectContainerNode.ContainerNodeID=16777240
ContainerNodeID : 16777240
FolderFlags : 0
FolderGuid : 1DAF9853-75BE-4629-97EF-0689D9E02961
IsEmpty : False
Name : Dell
ObjectType : 25
ObjectTypeName : SMS_Driver
ParentContainerNodeID : 0
SearchFolder : False
SearchString :
SourceSite : RED
我尝试指定 CMSite::
而 运行 宁 test-path
但这也没有帮助。
关于我做错了什么导致这个问题有什么想法吗?
最后证明这个问题的修复非常简单。
删除尾部斜线似乎已解决问题:
PS C:\> test-path RED:\Driver\Dell\WinPE\
False
PS C:\> test-path RED:\Driver\Dell\WinPE
True
我不太确定为什么不过是这样。
我正在从机器 运行ning SCCM 连接 PSDrive 并尝试执行测试路径以确定是否创建给定目录。
然而,测试路径为确实存在的目录返回 $false
(事实上,我什至可以用 Tab 键完成 PoSh window)
我的PSDrive连接代码如下:
New-PSDrive -Name $SiteCode -PSProvider CMSite -Root $ProviderMachineName -Scope global
这 returns 一个 PSDrive 作为 "RED" 其中 returns 一个 $true
结果:
PS C:\> test-path RED:\
True
然而,当我尝试测试低于它的任何东西时,它 returns $false
如果我尝试创建新项目,它会失败
PS C:\> test-path RED:\Driver\Dell\WinPE\
False
PS C:\> new-item RED:\Driver\Dell\WinPE\
new-item : Path already exists.
At line:1 char:1
+ new-item RED:\Driver\Dell\WinPE\
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (OBFUSCATED\Driver\Dell\WinPE\:String) [New-Item], InvalidOperationException
+ FullyQualifiedErrorId : Path,Microsoft.PowerShell.Commands.NewItemCommand
(我混淆了机器的 FQDN)
如果我在路径上 运行 一个 get-item
,这就是我得到的结果:
PSPath : AdminUI.PS.Provider\CMSite::OBFUSCATED\Driver\Dell
PSParentPath : AdminUI.PS.Provider\CMSite::OBFUSCATED\Driver
PSChildName : Dell
PSDrive : RED
PSProvider : AdminUI.PS.Provider\CMSite
PSIsContainer : True
SmsProviderObjectPath : SMS_ObjectContainerNode.ContainerNodeID=16777240
ContainerNodeID : 16777240
FolderFlags : 0
FolderGuid : 1DAF9853-75BE-4629-97EF-0689D9E02961
IsEmpty : False
Name : Dell
ObjectType : 25
ObjectTypeName : SMS_Driver
ParentContainerNodeID : 0
SearchFolder : False
SearchString :
SourceSite : RED
我尝试指定 CMSite::
而 运行 宁 test-path
但这也没有帮助。
关于我做错了什么导致这个问题有什么想法吗?
最后证明这个问题的修复非常简单。
删除尾部斜线似乎已解决问题:
PS C:\> test-path RED:\Driver\Dell\WinPE\
False
PS C:\> test-path RED:\Driver\Dell\WinPE
True
我不太确定为什么不过是这样。