问题标签 [new-psdrive]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - 无法将“-persist”添加到 New-PSDrive - 出现错误“网络资源类型不正确”
正如标题所说,如果我尝试添加-persist
到 cmdlt,它会返回一个错误:
New-PSDrive : The network resource type is not correct
At line:1 char:1
+ New-PSDrive -Name P -Root <redacted> ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (P:PSDriveInfo) [New-PSDrive], Win32Exception
+ FullyQualifiedErrorId : CouldNotMapNetworkDrive,Microsoft.PowerShell.Commands.NewPSDriveCommand
作为参考,这是 PowerShell 中的管理员会话,但如果我在常规用户会话中执行此操作,我会得到完全相同的响应:
从一开始:我验证我想要使用的驱动器号可用(P,在这种情况下)
然后我尝试运行:(我已经将$locale
变量定义为,例如'\\foo\bar\'
)。
快乐的时光。这样可行。但当然,它对 Windows 资源管理器是不可见的,因为它只是在这个 PS 会话中。所以,我销毁它remove-psdrive P
(get-psdrive
-persist
它失败了。对于上下文,我这样做是为了可以使用带有远程 PSDrive 的 RoboCopy 编写脚本(我们想要使用 robocopy,因为它内置了报告、属性管理以及在目标位置维护文件结构的能力,我们想要使用PSDrives,因此我们可以为目标驱动器指定凭据)。
有没有人有任何想法?
编辑:哦,伙计……我不敢相信……但是以防万一其他人发现这个,我要离开它。问题是我路径的尾随\
。我删除了它,它仍然很好。
powershell - New-PSDrive 驱动器映射名称
在我的 powershell 脚本中,我使用 New-PSDrive 函数将远程服务器文件路径映射到我的本地计算机作为 Windows 部署操作过程。
我计划将来重用这个 Powershell 脚本,所以我不希望驱动器之间因为命名而发生任何冲突。例如,如果两个部署操作需要同时到达脚本,那么两个部署操作之一将被错误地部署。
这就是问题:我可以使用时间戳或任何其他唯一信息作为驱动器映射名称吗?这样,我可以确保避免名称冲突。
编辑:
我试图创建没有持久参数的自定义命名 new-psdrive 映射,但是这样,powershell 会尝试使用相对路径(在当前工作目录下)到达文件夹
这是我尝试复制一些文件(备份)的代码:
编辑2:
您不能将动态名称用作持久驱动器映射名称。如果您要访问跨域计算机,最好的方法是(但具有成本效益的方法)使用 Invoke-Command 在远程计算机上运行脚本。需要允许 2 路(远程-本地、本地-远程)文件共享权限。如果您使用 Invoke-Command,则不会发生冲突。因为该命令在远程计算机上使用动态会话。
powershell - $是什么类型的对象: (例如`$code:`) 在Powershell 中?
我今天在 Powershell 5.1 中使用选项卡自动完成作为变量名,并注意到其中一个选项是 PSDrive 的名称。驱动器名称是docs
,我想扩展的是$document_name
. 当我输入$do<tab>
时,shell 确实扩展了我输入的内容,$document_name
但由于某种原因,我再次输入<tab>
了第二次,这时扩展的文本变为$docs:
.
我进一步探索并发现我的每个 PSDrives 都存在这种类型的变量,或者至少选项卡扩展表明它确实存在。
更正式地说,对于每个 PSDrive PSD,选项卡扩展认为这$PSD:
是一个有效的事情。
我的问题很简单:这些到底是什么?以下是我到目前为止所做的一些观察:
- 这些名称以 为前缀
$
,因此它们看起来像 PS 变量。对于本次讨论的其余部分(以及在前面的讨论中),我将假设它们是变量并这样引用它们。 - 尽管它们看起来是变量,但它们并没有
Variable:
像大多数变量一样在 PSDrive 中列出。这样,它的行为就像$env
“变量”,也没有在Variable:
. 我有一种感觉,如果我能找到关于 的文档$env
,那么我也会理解这些对象。 - 在某些方面,它们的行为类似于指向文件系统对象的指针。例如,如果有一个
readme.txt
包含文本“Hello, world!”的文件名。在名为 的 PSDrive 上code
,则以下所有内容都是与 Powershell 的可能交互。
获取文件的内容。
只是为了证明上述结果的类型是String
:
尝试将其用作对 PSDrive 的引用对于许多操作都不起作用,例如cd
:
我可以继续,但我很难过。如果我通过$code:
(或者$env:
,就此而言)到Get-Member
,我会收到一个错误消息Variable reference is not valid
。
那么到底什么是“变量”$env
和$<PSDrive>:
(例如$code:
)?它们是表达式吗?内置表达式?某种对象?谢谢你的帮助。
powershell - 重新启动后无法映射网络驱动器错误
我有两个 powershell 脚本,我需要在每个脚本中将一些信息写入日志文件。日志文件存储在网络共享上。在第一个脚本中,一切正常,信息被写入文件。之后,计算机重新启动并启动第二个脚本。现在,在第一个脚本中工作的相同代码会导致错误“无法映射网络驱动器”。请帮助我了解问题所在以及如何解决。
windows - 使用 PowerShell 创建虚拟驱动器
我正在尝试在 Windows 中创建一个 D: 驱动器,它使用 PowerShell 指向某个本地目录(例如 C:\DDrive)。
此代码运行良好:
但在 Windows 资源管理器中没有 D:-drive 可见。
如何正确使用该命令?另外:驱动器应该是永久性的,所以我尝试添加一个“-Persist”参数。但这会导致错误(“未知参数“-Persist”...”)。
c# - 如何从 System.IO.File 调用访问 PSDrive?
我正在编写 ac# cmdlet,它将文件从一个位置复制到另一个位置(类似于 rsync)。它甚至支持 ToSession 和 FromSession。
我希望它与使用文件系统提供程序的 PSDrives 一起使用,但它目前从 System.IO.File.GetAttributes("psdrive:\path") 引发错误
我真的很想在 PSDrive 上使用来自 System.IO 的调用。
像 copy-item 这样的东西是如何做到的?
我已经执行了从 c# 访问 PSDrives 的搜索,但没有返回任何结果。
这相当于我的代码
返回
powershell - PowerShell 映射的网络驱动器在重启后不存在
我正在运行以映射网络驱动器的命令是:
New-PSDrive -Name "M" -PsProvider "FileSystem" -Root "\\domain.com\filepath" -Persist -Scope Global -Credential $userCredentials
该命令映射驱动器,关闭脚本后连接仍然存在,但重新启动驱动器后消失。我的印象是添加全局范围取代了对点源的需求,为了这个脚本,我不想这样做。
提前感谢您的建议/答案!
c# - 尝试使用在 Powershell 中使用 New-PSDrive 创建的路径时出现“URL 上的目录无效”
我编写了一个函数来获取身份验证令牌。我用过New-PSDrive
,因为PathTooLongException
被扔了。在测试路径是否存在时Write-Host $adal, (Test-Path $adal)
返回。True
但在LoadFrom()
. 有人可以帮我摆脱错误吗?
代码:
例外:
powershell - 是否可以在 -Path 和 -DestinationPath 中使用 PSDrive 来使用 Compress-Archive?
我正在使用 PSDrive 进行压缩存档,但我遇到了这个错误:
PSDrive 代码和第 33 行和第 34 行的代码如下:
wpf - 如何在 powershell 中为变量创建自己的驱动程序
我想在自己的范围内为自己的变量创建驱动程序。
例如$myown:name = value
我试图用不同的值来做到这一点-Root
:
但是该驱动程序的工作方式类似于variable:
.
如何为不像 psdrive 那样工作的变量创建variable:
psdriver?
$variable:name
并且$myown:name
必须不同。
编辑1:
我想做的事
我将创建用于从.xaml加载WPF表单的模块。
并且所有具有属性的元素都必须导入到名为加载表单的新 PSDriver 中。x:Name