2016-11-23 45 views
1

我試圖從網絡共享中獲取文件。我需要通過憑據進行身份驗證。獲取內容與身份驗證

#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的動態參數。 FileSystem提供程序僅在New-PSDrive cmdlet上支持憑據。 無需指定憑證即可再次執行操作。

當然,如果我沒有指定憑證,我會得到一個拒絕訪問。
我相信有一個解決方法是將共享文件夾安裝爲網絡驅動器,但這看起來效率不高,而且由於該腳本可能一次運行多次,因此我可能會有重複的驅動器。

任何會是最有效的方法來完成這一點?

謝謝!

回答

0

New-PSDrive創建PSDrive來使用您的憑據,然後使用Get-Content讀取文件:

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

然後:

Get-Content X:\STGPOOLS.txt 
+0

是的,的確,這是一個解決辦法,但不這非常低效?另外,由於該腳本可能會同時運行多次,因此我可能會有重複的驅動器。 – mitch2k

+0

你也可以使用本地的'net use',那麼一旦你輸入了有效的信任,它就不會再要求你提供相同的資源 – Avshalom

相關問題