我是PowerShell脚本的新手。我正在努力学习MS文档并找到一些可以使用的例子。
我正在尝试使用BitsTransfer脚本自动从ntis.gov每周下载一个大型txt文件。我正在使用.ps1脚本,因为显然SSIS在没有编写.NET代码的情况下无法做到这一点。
通过https:访问此文本文件,并使用NTIS颁发的用户名和密码。如何在验证字符串中指定(硬编码)密码?我知道这是不好的做法。有更好的方法吗?
我的脚本看起来像这样 -
$date= Get-Date -format yyMMdd
Import-Module BitsTransfer
$Job = Start-BitsTransfer `
-DisplayName DMFweeklytrans `
-ProxyUsage AutoDetect `
-Source https://dmf.ntis.gov/dmldata/weekly/WA$date `
-Destination D:\Test.txt `
-Authentication Basic `
-Credential "myIssuedUsername" `
-Asynchronous
While (($Job.JobState -eq "Transferring") -or ($Job.JobState -eq "Connecting")) {sleep 5}
Switch($Job.JobState)
{
"Transfer Completed" {Complete-BitsTransfer -BitsJobs $Jobs}
default {$Job | Format-List}
}
答案 0 :(得分:4)
如果必须以非交互模式提供凭据,则可以通过以下方式创建PSCredential对象。
$secpasswd = ConvertTo-SecureString "PlainTextPassword" -AsPlainText -Force
$yourcreds = New-Object System.Management.Automation.PSCredential ("username", $secpasswd)
$Job = Start-BitsTransfer `
-DisplayName DMFweeklytrans `
-ProxyUsage AutoDetect `
-Source https://dmf.ntis.gov/dmldata/weekly/WA$date `
-Destination D:\Test.txt `
-Authentication Basic `
-Credential $yourcreds `
-Asynchronous