通过身份验证获取内容

时间:2016-11-23 08:41:13

标签: powershell

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

 #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上的凭据。   无需指定凭据即可再次执行操作。

当然,如果我没有指定凭据,我会拒绝访问。 我认为将共享文件夹作为网络驱动器安装有一种解决方法,但这似乎效率低下,因为脚本可能会一次运行多次,所以我可能会有重复的驱动器。

什么是最有效的方法来实现这一目标?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

然后:

Get-Content X:\STGPOOLS.txt