您的位置:首页 > 运维架构 > Shell

用PowerShell隐藏磁盘驱动器

2015-06-21 22:18 543 查看
有时候我们可能出于某种原因想要把磁盘驱动器隐藏起来,但是是否一定要安装专业的磁盘工具软件呢?答案是否定的,因为今天我们要用PowerShell来把我们想要隐藏的磁盘隐藏起来。我写了如下的方法,稍后我们来一步步讲解下是如何做到的。

Function HideDriveLetter
{
[String[]]$DriveLetter,

$RegPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"

If($DriveLetter)
{
Foreach($Drive in $DriveLetter)
{
$DriveNumber = [Int][Char]$Drive.ToUpper() - 65
$Mask += [System.Math]::Pow(2,$DriveNumber)

Set-ItemProperty -Path $RegPath -Name NoDrives -Value $Mask -Type DWORD
Write-Host "Successfully hided Drive letter."
}
}
}
其实这个方法的处理原理很简单,就是进行对应的注册表键值设置,如下久时我们要对应设置的注册表键值的主键:

$RegPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"
接着我们循环遍历,要隐藏的驱动器盘符,在循环遍历驱动器盘符的同时,我们需要进行数值处理,而这个数值就是之后我们需要在注册表里进行填入的值。

Foreach($Drive in $DriveLetter)
{
<strong>$DriveNumber = [Int][Char]$Drive.ToUpper() - 65
$Mask += [System.Math]::Pow(2,$DriveNumber)</strong>

Set-ItemProperty -Path $RegPath -Name NoDrives -Value $Mask -Type DWORD
Write-Host "Successfully hided Drive letter."
}
在这里,我们可以看到我们使用[Int][Char]类型得到对应盘符的数值接着做一些计算处理来获得每个盘符的注册表值。

最后通过Set-ItemProperty方法设置了注册表值,只要运行方法,输入欲隐藏的驱动器就可以了。

Set-ItemProperty -Path $RegPath -Name NoDrives -Value $Mask -Type DWORD
对了,我们必须要重启电脑才能看到代码生效。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: