当我创建一个PSDrive时,它通常只获取它指向的位置的名称。 " dom-loc-Share(G:)"
New-PSDrive -Description "Group-Drive" –Name "G" –PSProvider FileSystem –Root "\\dom\dfs\dom-loc-Share" –Persist | Out-Null
我将我的名字命名为#34; Bob"现在点击名称并进行更改。但是我现在创建的每个PSDrive都称为Bob
这很奇怪,但不是真正的问题(尽管如果有人关心解释)。 我的问题是:如何在脚本中设置名称,即bob?
我试过
Get-PsDrive G
并检查了属性,但无法在Windows资源管理器中设置显示的名称。
如何将此名称设置为" Group-Drive"在创建PSDrive?
如果我尝试Get-WmiObject -Class win32_volume,我会得到以下结果......
答案 0 :(得分:3)
$drive = Get-WmiObject -Class win32_volume -Filter "DriveLetter = 'g:'"
Set-WmiInstance -input $drive -Arguments @{Label="Bob"}
旁注:
使用Set-WmiInstance
非常有用,因为它可以一次更改多个参数;例如:
Set-WmiInstance -input $drive -Arguments @{DriveLetter="Q:"; Label="NewLabel"}
答案 1 :(得分:0)
我找到了答案,但如果有人知道更好的方法,请随时告诉我。
$DNsplit = ((Get-ADUser ([Environment]::UserName)).DistinguishedName).split(",")
$STO = $DNsplit[$DNsplit.count -5].Substring(3,3)
$MyRoot = "\\dom\dfs\dom-$Sto-Share"
$RegPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2"
if(Test-Path $MyRoot)
{
if(Get-PSDrive | ?{$_.Name -eq "G"})
{
Remove-PSDrive G
}
New-PSDrive –Name G –PSProvider FileSystem –Root $MyRoot –Persist -Scope Global | Out-Null
$a = Get-ChildItem "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2"
foreach($Key in $a)
{
$CompKey = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\$($MyRoot.Replace('\','#'))"
if($Key.Name -eq $CompKey)
{
Set-ItemProperty -Path $key.PSPath -Name "_LabelFromReg" -Value "Group-Drive"
}
}
}