7. PowerShell -- Provider,数据操作和注册表操作

  • PowerShell Provider

什么是Provider

实际上是一个动态链接库(.dll),PowerShell中也称为管理单元 MSDNS上定义的类库:http://msdn.microsoft.com/en-us/library/cc136763(VS.85).aspx

  1. 查看已有的Providers

    Get-psprovider

     

    PS C:\> get-psprovider

     

    Name                Capabilities                 Drives

    ----                ------------                      ------

    Alias               ShouldProcess                 {Alias}

    Environment         ShouldProcess                {Env}

    FileSystem          Filter,ShouldProcess, Cre... {C, D, E}

    Function             ShouldProcess                {Function}

    Registry             ShouldProcess, Transactions   {HKLM, HKCU}

    Variable             ShouldProcess                 {Variable}


  • PowerShell 对数据的几种操作

cmdlet 功能 cmd command alias
get-location
当前目录 pwd gl
set-location
改变操作目录 cd,chdir
sl

new-item

新建文件或文件夹(type=file or directory

--
ni

rename-item
重命名 rn


 set-item    设置内容

clear-item  删除内容

mkdir         新建文件夹

set-content  设置内容

get-content  获取内容

get-psdriver  获取当前驱动器列表


  • PowerShell 对环境变量的操作

  1.  类型与cmd 命令中的”set”

  2. 查看当前机器上的环境变量设置:

    Cd env:

    Ls

Name                           Value
----                           -----
ALLUSERSPROFILE                C:\ProgramData
BBDIFF                                 "C:\Program Files (x86)\Odd\Odd.exe"
CommonProgramFiles             C:\Program Files\Common Files
CommonProgramFiles(x86)        C:\Program Files (x86)\Common Files
CommonProgramW6432             C:\Program Files\Common Files
ComSpec                                C:\Windows\system32\cmd.exe
FP_NO_HOST_CHECK               NO
HOMEDRIVE                          C:
np                                         D:\Notepad++\notepad++.exe


3. 获取一些环境变量的值,及显示属性

Ls OS

 

PS Env:\> ls os

 

Name                          Value

----                          -----

OS                             Windows_NT


  • PowerShell 对注册表的操作

     

  1. 读取注册表值

    $path =Get-ItemProperty -path"HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"-name path

     

    $tempPath=$path.path

    $tempPath += ";c:\localbin"

     

  2. 设置注册表值

    Set-ItemProperty -path"HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"-name "path" -Value "$tempPath" �Cforce

     

  3. 移除注册表值

     Remove-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SessionManager\Environment" -Name "_NT_SYMBOL_PATH" �CForce

     

  4. 添加注册表值

    REG.EXE ADD "HKCR\*\shell\Edit with Notepad++\Command" /ve /tREG_SZ /d "$toolsFolder\GreenTools\notepad++\notepad++.exe %1" /f

     

     

    New-Item -Path"HKLM:\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\AppCompatFlags\NoExecuteState" �CForce

     

    Set-ItemProperty -Path"HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\NoExecuteState"-Name "LastNoExecuteRadioButtonState" -Value 14012 -Type DWORD �CForce


参考:http://marui.blog.51cto.com/1034148/290938


你可能感兴趣的:(注册表,powershell)