我正在尝试从网络共享中获取文件。我需要传递凭据进行身份验证。
#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
然而,这会导致
Get-Content:无法检索cmdlet的动态参数。该 FileSystem提供程序仅支持New-PSDrive cmdlet上的凭据。 无需指定凭据即可再次执行操作。
当然,如果我没有指定凭据,我会拒绝访问。
我认为将共享文件夹作为网络驱动器安装有一种解决方法,但这似乎效率低下,因为脚本可能会一次运行多次,所以我可能会有重复的驱动器。
什么是最有效的方法来实现这一目标?
谢谢!
答案 0 :(得分:0)
使用您的凭据创建一个New-PSDrive
的PSDrive,然后使用Get-Content
来读取该文件:
New-PSDrive -Name X -PSProvider FileSystem -Root \\$tsmhost\prtg_output -Credential $credentials
然后:
Get-Content X:\STGPOOLS.txt