Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NET USE仅在powershell中工作一次_Powershell - Fatal编程技术网

NET USE仅在powershell中工作一次

NET USE仅在powershell中工作一次,powershell,Powershell,我的要求是连接到远程计算机,将扩展名为.TRA的文件复制到其他远程计算机 现在,我的困难在于源计算机不在域上,因此我需要使用备用凭据进行连接 我的第一个难题是尝试使用新的PSDrive。它似乎不允许我传递存储的凭据。我尝试过各种版本的: $cred = Get-Credential New-PSDrive -NAME Z: -PSprovider Filesystem -root \\Computer\Exchange -credentials $cred 我得到一个错误 提供程序不支持使用凭

我的要求是连接到远程计算机,将扩展名为
.TRA
的文件复制到其他远程计算机

现在,我的困难在于源计算机不在域上,因此我需要使用备用凭据进行连接

我的第一个难题是尝试使用
新的PSDrive
。它似乎不允许我传递存储的凭据。我尝试过各种版本的:

$cred = Get-Credential
New-PSDrive -NAME Z: -PSprovider Filesystem -root \\Computer\Exchange -credentials $cred
我得到一个错误

提供程序不支持使用凭据。在不指定凭据的情况下再次执行该操作

这似乎是一个bug(请参见halr9000的评论:)

我的选择是使用
netuse
,这很好,但只能使用一次

在下面的完整脚本中,我映射到8台不同的机器。这些作品中的第一部。此后,任何尝试使用
NET use
(或
新对象WScript.NETWORK
,上面链接的Technet文章中提到的解决方法)的尝试都会失败。或者说它没有失败

它创建了一个映射驱动器,如果我键入
netuse
,或者在资源管理器中查看(以及它的可浏览性),我就可以看到它。但我无法连接到Powershell中的驱动器。就像它不存在一样,
测试路径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++
    }
编辑 看看下面的@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++
        }
试试这个,也许:

$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("Z:", "\\$arr\Exchange", $false, "admin", "password")

通过以下方式使用NET USE try access:

 Set-Location  FILESYSTEM::Z:

我也有同样的问题。通过添加 *新的PSDrive z文件系统z:*
上网后使用。NET USE/DELETE似乎干扰了PS管理。

不幸的是,这导致了与NET USE命令完全相同的行为,因为它似乎创建了驱动器(并且Z:在资源管理器中可见),但Powershell无法使用它。绝对令人惊讶。非常感谢。