Powershell SCCM PSDrive和Out文件-路径参数导致错误

Powershell SCCM PSDrive和Out文件-路径参数导致错误,powershell,sccm,Powershell,Sccm,我编写了一个日志模块,它使用Out file-Append将不同的行写入文件。我正在为SCCM编写一些脚本和模块。大多数SCCM函数/命令不允许您通过参数以特定的提供程序/位置为目标 这意味着我需要切换到“CMSite”提供程序来运行大多数命令 我遇到的问题是,如果我切换到“CMSite”提供程序,它会由于某种原因中断我的日志记录,从而导致错误: PSLogging.psm1 (144, 15): ERROR: At Line: 144 char: 15 ERROR: +

我编写了一个日志模块,它使用Out file-Append将不同的行写入文件。我正在为SCCM编写一些脚本和模块。大多数SCCM函数/命令不允许您通过参数以特定的提供程序/位置为目标

这意味着我需要切换到“CMSite”提供程序来运行大多数命令

我遇到的问题是,如果我切换到“CMSite”提供程序,它会由于某种原因中断我的日志记录,从而导致错误:

PSLogging.psm1 (144, 15): ERROR: At Line: 144 char: 15
ERROR: +             $logline | Out-File -Append -Encoding utf8 -FilePath $logFullPath;
ERROR: +                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ERROR:     + CategoryInfo          : InvalidArgument: (:) [Out-File], PSInvalidOperationException
ERROR:     + FullyQualifiedErrorId : ReadWriteFileNotFileSystemProvider,Microsoft.PowerShell.Commands.OutFileCommand
ERROR: Out-File : Cannot open file because the current provider (AdminUI.PS.Provider\CMSite) cannot open a file.
即使我在Out文件参数中提供完整路径。这个错误显然是因为CMSite提供程序不是文件系统提供程序,但我认为提供完整路径将是上下文敏感的,并自动使用正确的提供程序

如果我做了一件事:

Set-Location C:
在记录任何内容之前,它工作正常

我认为日志位置实际上是一个UNC路径(我们用一个全局变量控制),可能它没有正确地切换提供程序,因为它不是“PSDrive”提供程序


我是缺少了什么,还是每次我想对文件运行日志命令时都需要设置位置并切换PSDrives?

是的,UNC路径需要一些帮助才能定义为文件系统提供程序。试试这个:

$logline | Out-File -Append -Encoding utf8 -FilePath ('FileSystem::' + $logFullPath)

编辑:更多信息

我只能在不提供完整路径的情况下复制此信息。您是如何确认
$logFullPath
包含完整的驱动器和目录详细信息的?通过输出变量,并且因为如果我更改PSDrive(我的日志模块在日志中记录日志路径),它可以工作,您就是一个天才。对我的日志模块做了一个小小的修改,它就像一个魔咒。我为这件事挠头的时间比我应该的要长。谢谢