4

PowerShell スクリプトは初めてです。MS のドキュメントに苦労しており、使用できる例がほとんど見つかりません。

BitsTransfer スクリプトを使用して、ntis.gov からの大きな txt ファイルの毎週のダウンロードを自動化しようとしています。どうやらSSISは.NETコードを書かないとこれを行うことができないので、私は.ps1スクリプトを使用しています。

このテキスト ファイルへのアクセスは、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} 
    }
4

1 に答える 1

7

非対話モードで資格情報を提供する必要がある場合は、次の方法で 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
于 2013-03-27T21:56:53.033 に答える