Powershell 通过身份验证获取内容

Powershell 通过身份验证获取内容,powershell,Powershell,我正在尝试从网络共享获取文件。我需要传递凭据以进行身份验证 #Define credentials #=========== $secpasswd = ConvertTo-SecureString “mypassword” -AsPlainText -Force $credentials = New-Object System.Management.Automation.PSCredential (“myuser”, $secpasswd) #Get the file #=========

我正在尝试从网络共享获取文件。我需要传递凭据以进行身份验证

 #Define credentials
#===========
$secpasswd = ConvertTo-SecureString “mypassword” -AsPlainText -Force
$credentials = New-Object System.Management.Automation.PSCredential (“myuser”, $secpasswd)


#Get the file
#===========
$commandresult = Get-Content "\\$tsmhost\prtg_output\STGPOOLS.txt" -Credential $credentials -Force
然而,这导致了

获取内容:无法检索cmdlet的动态参数。这个 文件系统提供程序仅支持新PSDrive cmdlet上的凭据。 在不指定凭据的情况下再次执行该操作

当然,如果我没有指定凭据,我将获得拒绝访问的权限。
我相信可以通过将共享文件夹装载为网络驱动器来解决问题,但这似乎效率低下,而且由于脚本可能一次运行多次,我可能有重复的驱动器。

有什么最有效的方法来实现这一点吗?


谢谢

使用您的凭据使用
New PSDrive
创建一个PSDrive,然后使用
Get Content
读取文件:

New-PSDrive -Name X -PSProvider FileSystem -Root \\$tsmhost\prtg_output -Credential $credentials 
然后:


是的,确实,这是一个解决办法,但这不是很低效吗?此外,由于脚本可能一次运行多次,我可能有重复的驱动器。此外,您可以使用本机
net use
,这样,一旦您输入了有效的凭据,它就不会再次要求您使用相同的资源
Get-Content X:\STGPOOLS.txt