3

私の要件は、リモート コンピューターに接続し、拡張子が のファイルを.TRA別のリモート コンピューターにコピーすることです。

ここで、ソース マシンがドメイン上にないため、別の資格情報で接続する必要があるという問題が発生します。

私の最初のこだわりは、 を使おうとすることNew-PSDriveです。保存された資格情報を渡すことを許可していないようです。私はこれのさまざまなバージョンを試しました:

$cred = Get-Credential
New-PSDrive -NAME Z: -PSprovider Filesystem -root \\Computer\Exchange -credentials $cred

エラーが発生します

プロバイダーは資格情報の使用をサポートしていません。資格証明を指定せずに操作を再実行してください。

これはバグのようです (こちらの halr9000 のコメントを参照してください: Powershellでユーザー名/パスワードを使用してネットワーク フォルダーに接続しています) 。

私の代替手段は を使用することNET USEでした。これは正常に機能しますが、一度しか機能しません。

以下の完全なスクリプトでは、8 つの異なるマシンにマップしています。これらの作品の最初の作品。その後、NET USE(またはNew-Object WScript.NETWORK、上記のリンク先の Technet 記事で回避策として言及されている) を使用しようとしても失敗します。というか失敗しない。

マップされたドライブが作成されます。これは、入力するNET USEか、エクスプローラー (およびその参照可能) で見ると確認できます。しかし、Powershell でそのドライブに接続できません。存在しないようで、Test-Path Z:False を返します。NET USE Z: /Dドライブを正常に削除するまで実行します。

誰かが私の問題のいずれかを手伝ってくれませんか? DOS でこれをやらせないでください!

完全なスクリプト:

$int = 0
$arrStagePC = "BOX42", "BOX43", "BOX44", "BOX45", "BOX46", "BOX47", "BOX48", "BOX49" 
$arrData = "0848","5144","5292","5383","2158","2646","0061","2331"
Foreach($strComp in $arrStagePC)
    {
    $arr = $arrData[$int]
    $comp = $strComp
    net use z: \\$arr\Exchange /user:admin password
    Copy-Item z:\*$date.tra \\$comp\Export$
    net use z: /d
    $int++
    }

EDIT 以下の@Christiansが受け入れた回答をご覧ください。実際にそのフォルダーのコンテンツを取得する必要はありませんでした。ソースからデータをコピーする必要があっただけなので、そこでビジネスを行っているスクリプトの一部は次のようになります。

Foreach($strComp in $arrStagePC)
        {
        $arr = $arrData[$int]
        $comp = $strComp
        net use z: \\$arr\Exchange /user:admin password
        Copy-Item FILESYSTEM::Z:\*.TRA \\$comp\Export$
        net use z: /d
        $int++
        }
4

3 に答える 3

7

NET USE を使用して、次の方法でアクセスを試みます。

 Set-Location  FILESYSTEM::Z:
于 2012-06-12T10:50:44.490 に答える
5

同じ問題がありました。NET USE の後に *New-PSDrive z FileSystem z:* を追加して、私のものを修正しました。NET USE /DELETE が PS ハウスキーピングを妨げているようです。

于 2012-11-03T23:51:17.027 に答える
1

これを試してみてください、多分:

$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("Z:", "\\$arr\Exchange", $false, "admin", "password")
于 2012-06-12T10:46:55.223 に答える