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无法使用它。绝对令人惊讶。非常感谢。