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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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
Powershell 命令在ISE中运行,但在控制台中不作为ps1运行_Powershell - Fatal编程技术网

Powershell 命令在ISE中运行,但在控制台中不作为ps1运行

Powershell 命令在ISE中运行,但在控制台中不作为ps1运行,powershell,Powershell,我找到了许多线索,仔细研究了一遍,但没有一条真正解决了我的问题。我尽量简短 New-PSDrive –Name "G" –PSProvider FileSystem –Root "\\dom\dfs\dom-loc-Share" –Persist 如果我从ISE运行它,它工作得非常好。 当我将它复制粘贴到控制台时,它工作正常。 如果我尝试在控制台中运行ps1,它将不起作用 我重新启动了ISE 我查过了,都在单线程公寓里运行 执行策略不受限制 我都以管理员的身份运行 你能帮我一下吗?你是如何

我找到了许多线索,仔细研究了一遍,但没有一条真正解决了我的问题。我尽量简短

New-PSDrive –Name "G" –PSProvider FileSystem –Root "\\dom\dfs\dom-loc-Share" –Persist
如果我从ISE运行它,它工作得非常好。 当我将它复制粘贴到控制台时,它工作正常。 如果我尝试在控制台中运行ps1,它将不起作用

  • 我重新启动了ISE
  • 我查过了,都在单线程公寓里运行
  • 执行策略不受限制
  • 我都以管理员的身份运行

你能帮我一下吗?

你是如何检查G驱动器是否映射的

如果在脚本中运行以下命令,则将通过
Get PSDrive
显示驱动器是否已创建:

if(Get-PSDrive | ?{$_.Name -eq "G"}) {
    'Removing G'
    Remove-PSDrive "G"
}


'Adding G'
New-PSDrive –Name "G" –PSProvider FileSystem –Root "\\ukcconas2edc\ax_docs" –Persist


'Does G Exist?'
Get-PSDrive | ?{$_.Name -eq "G"}
如果您只是通过Windows资源管理器进行检查,我认为缓存在那里会发生一些有趣的事情。 运行脚本后,单击
计算机
,然后在右侧窗格(列出驱动器的地方)上单击鼠标右键并选择
刷新
;希望G驱动现在能显示出来


此外,如果您有不同的powershell控制台,并且正在通过运行
推送位置g:
获取psdrive
进行检查,则如果用于检查驱动器的会话是在创建该驱动器之前创建的,则不会列出该会话。我认为这是由于powershell中的缓存造成的/可能是为了避免并行运行的脚本相互干扰而故意造成的?

使用
-Scope Global
,有关更多信息,请访问此technet文章:

关于内窥镜

[……] Windows PowerShell保护对变量、别名、函数、, 和Windows PowerShell驱动器(PSDrives)通过限制驱动器的位置 阅读并更改。通过强制执行一些简单的范围规则,Windows PowerShell有助于确保您不会无意中更改 不应更改的项目。[……]


如果我在控制台中手动运行,`C:\temp>New PSDrive-Description“Gruppen Laufwerk”-Name“G”-PSProvider FileSystem-Root“\\domain\dfs\domain location Share”-Persist`它工作正常是的,我知道了,但是当您运行脚本时,不会出现错误,它只是没有挂载G:volume,理解正确吗?抱歉,是@MathiasR.Jessen它只是显示了正常的输出:Name Used(GB)Free(GB)Provider Root CurrentLocation G 44,80 52,52 FileSystem\\domain\dfs\domain location Share–但它不会创建psdrive非常感谢,我只发布了脚本的一部分,以保留对问题的回答。谢谢你的意见,我会用它来改进我的版本。是的!这就是我们所缺少的。现在它工作得很好-非常感谢!
New-PSDrive –Name "G" –PSProvider FileSystem –Root "\\dom\dfs\dom-loc-Share" –Persist -Scope Global