设为首页 收藏本站
查看: 1032|回复: 0

PowerShell基础教程(4)——在Windows PowerShell 中导航

[复制链接]

尚未签到

发表于 2017-5-20 06:03:58 | 显示全部楼层 |阅读模式
PowerShell基础教程(4)—— 在Windows PowerShell 中导航             <o:p></o:p>

Windows PowerShell 的最强大功能之一是,它允许您使用在文件系统中用来导航的相同熟悉方法在许多不同的数据存储区中导航。<o:p></o:p>
除了熟悉的文件系统驱动器(如 C: 和 D:)之外,Windows PowerShell 还包括表示 HKEY_LOCAL_MACHINE (HKLM:) 和 HKEY_CURRENT_USER (HKCU:) 注册表配置单元、计算机上的数字签名证书存储区 (Cert:) 以及当前会话中函数 (Function:) 等的驱动器。这些驱动器称为 Windows PowerShell 驱动器。<o:p></o:p>
Windows PowerShell 附带有 Windows PowerShell 提供程序支持的数个有用驱动器。若要查看 Windows PowerShell 驱动器的列表,请键入:<o:p></o:p>
get-psdrive<o:p></o:p>
在文件系统中导航<o:p></o:p>
启动 Windows PowerShell 时,您可能很想键入熟悉的 cddirls。可以这样做!cd 是 Set-Location cmdlet(将当前位置更改为指定路径的 cmdlet)的别名。dirls 是 Get-Childitem cmdlet(获取某个位置中子项的 cmdlet)的别名。<o:p></o:p>
若要在文件系统驱动器中导航,请使用 Set-Location (cd) 和 Get-Childitem(dir、ls)cmdlet。在 Windows PowerShell 中,驱动器由驱动器名称后跟冒号 (:) 表示,如 C:,父项与子项用反斜杠 (\) 或正斜杠 (/) 隔开,如 C:\Windows\System32。<o:p></o:p>
有几项功能可以使在 Windows PowerShell 中导航更容易:<o:p></o:p>
·      有表示当前目录 (.) 和目录内容 (*) 的符号。<o:p></o:p>
·      有表示主目录的内置变量 $home 和表示 Windows PowerShell 安装目录的内置变量 $pshome。<o:p></o:p>
与在其他外壳程序中一样,可以更改位置,创建、删除、移动和复制目录及文件,以及更改其属性。甚至可以将 Tab 补齐功能用于路径名。有关详细信息,请参阅 Item cmdlet(Get-Item、Get-Childitem、New-Item、Remove-Item、Set-Item、Move-Item 和 Copy-Item)的帮助。
在注册表中导航<o:p></o:p>
可以使用与在文件系统驱动器中用来导航的相同方法在 Windows 注册表中进行导航。在 Windows PowerShell 中,HKEY_LOCAL_MACHINE 配置单元映射到 Windows PowerShell HKLM: 驱动器,而 HKEY_CURRENT_USER 驱动器映射到 Windows PowerShell HKCU: 驱动器。<o:p></o:p>
例如:<o:p></o:p>
PS C:\> cd hklm:<o:p></o:p>
PS HKLM:\> dir<o:p></o:p>
PS HKLM:\> dir<o:p></o:p>
Hive:Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE<o:p></o:p>
SKC  VC   Name                           Property<o:p></o:p>
---  --   ----                           --------
4   0   HARDWARE                       {}<o:p></o:p>
1   0   SAM                            {}<o:p></o:p>
Get-ChildItem :不允许所请求的注册表访问权。<o:p></o:p>
所在行:1 字符:3<o:p></o:p>
+ dir <<<<<o:p></o:p>
39   2   SOFTWARE                       {flash,   (default)}<o:p></o:p>
8   0   SYSTEM                         {}<o:p></o:p>
PS HKLM:\> cd system\currentcontrolset\control<o:p></o:p>
PS HKLM:\system\currentcontrolset\control>   dir<o:p></o:p>
<o:p> </o:p>在导航时,您将注意到,dir (Get-Childitem) 的输出在注册表驱动器中与在文件系统中是不同的。由于注册表具有包含不同信息的不同驱动器,因此外壳程序提供了数据的不同视图。在这种情况下,知道存在多少子项和项是很重要的,因此除了子项和项的名称外,输出还包括子项计数 (SKC) 和值项计数 (VC)。<o:p></o:p>
PS> cd "CurrentControlSet\Control\Session   Manager"<o:p></o:p>
PS> dir<o:p></o:p>
Hive:Registry::HKEY_LOCAL_MACHINE\system\CurrentControlSet\Control\Session<o:p></o:p>
Manager<o:p></o:p>
<o:p> </o:p>
SKC  VC   ChildName                      Property<o:p></o:p>
---  --   ---------                      --------
0   1   AppCompatibility               {AppCompatCache}<o:p></o:p>
15   0   AppPatches                     {}<o:p></o:p>
0   7   DOS Devices                    {AUX,   MAILSLOT, NUL, PIPE, PRN, UNC, f...<o:p></o:p>
<o:p> </o:p>
<o:p></o:p>到达注册表项之前,不会在导航中遇到很多的差异。注册表项中的项被认为是它们所在项的属性。因此,使用 Get-ItemProperty cmdlet 可以检索它们。<o:p></o:p>
例如,如果要查看 Windows PowerShell 执行策略的值,可以使用 Get-ExecutionPolicy cmdlet,或导航到在 HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell 中存储值的 ExecutionPolicy 注册表项。<o:p></o:p>
PS C:\> cd hklm:<o:p></o:p>
PS HKLM:\> cd   software\microsoft\powershell\1\ShellIds\Microsoft.PowerShell<o:p></o:p>
PS HKLM:\software\microsoft\powershell\1\ShellIds\Microsoft.PowerShell>   dir<o:p></o:p>
PS   HKLM:\software\microsoft\powershell\1\ShellIds\Microsoft.PowerShell>   get-itemproperty -path .-name executionpolicy<o:p></o:p>
<o:p> </o:p>
PSPath            :Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\microsoft\powershell\1\ShellIds\Micro<o:p></o:p>
soft.PowerShell<o:p></o:p>
PSParentPath      :Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\microsoft\powershell\1\ShellIds<o:p></o:p>
PSChildName       :Microsoft.PowerShell<o:p></o:p>
PSDrive           :HKLM<o:p></o:p>
PSProvider        :Microsoft.PowerShell.Core\Registry<o:p></o:p>
ExecutionPolicy :RemoteSigned<o:p></o:p>
在证书存储区中导航<o:p></o:p>
也可以在计算机上的数字签名证书存储区中导航。证书存储区映射到 theWindows PowerShell Cert: 驱动器。以下示例说明如何使用 Set-Location (cd) 和 Get-Childitem(dir、ls)在 Cert: 驱动器中导航。<o:p></o:p>
PS C:\> cd cert:<o:p></o:p>
PS cert:\> dir<o:p></o:p>
Location     :CurrentUser<o:p></o:p>
StoreNames :{TrustedPeople,   _NMSTR, Trust, REQUEST...}<o:p></o:p>
<o:p> </o:p>
Location     :LocalMachine<o:p></o:p>
StoreNames :{_NMSTR,   Trust, REQUEST, TrustedPeople...}<o:p></o:p>
<o:p> </o:p>
PS cert:\> cd currentuser<o:p></o:p>
PS cert:\currentuser> dir<o:p></o:p>
<o:p> </o:p>
Name :TrustedPeople<o:p></o:p>
Name :_NMSTR<o:p></o:p>
Name :Trust<o:p></o:p>
Name :REQUEST<o:p></o:p>
Name :AuthRoot<o:p></o:p>
Name :ACRS<o:p></o:p>
Name :My<o:p></o:p>
Name :addressbook<o:p></o:p>
Name :Disallowed<o:p></o:p>
Name :CA<o:p></o:p>
Name :UserDS<o:p></o:p>
Name :Root<o:p></o:p>
Name :TrustedPublisher<o:p></o:p>
<o:p> </o:p>
PS cert:\currentuser> cd authroot<o:p></o:p>
PS cert:\currentuser\authroot> dir<o:p></o:p>
Directory:Microsoft.PowerShell.Security\Certificate::currentuser\authroot<o:p></o:p>
Thumbprint                                Subject<o:p></o:p>
----------                                -------
F88015D3F98479E1DA553D24FD42BA3F43886AEF  O=C&W HKT SecureNet CA SGC Root, C=hk<o:p></o:p>
F44095C238AC73FC4F77BF8F98DF70F8F091BC52  CN=Class 3TS Primary CA, O=Certplus, C=FR<o:p></o:p>
EF2DACCBEABB682D32CE4ABD6CB90025236C07BC  O="Colegio Nacional de Correduria   Publica Mexicana, A.C.", CN="Autoridad C...<o:p></o:p>
...
PS cert:\currentuser\authroot>   get-childitem F88015D3F98479E1DA553D24FD42BA3F43886AEF<o:p></o:p>
Directory:Microsoft.PowerShell.Security\Certificate::currentuser\authroot<o:p></o:p>
Thumbprint                                Subject<o:p></o:p>
----------                                -------
F88015D3F98479E1DA553D24FD42BA3F43886AEF  O=C&W HKT SecureNet CA SGC Root, C=hk<o:p></o:p>
<o:p> </o:p>
PS cert:\currentuser\authroot>   get-childitem F88015D3F98479E1DA553D24FD42BA3F43886AEF | format-list   -property *<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
PSPath               :Microsoft.PowerShell.Security\Certificate::currentuser\authroot\F88015D3F98479E1DA553D24FD42BA3F43<o:p></o:p>
886AEF<o:p></o:p>
PSParentPath         :Microsoft.PowerShell.Security\Certificate::currentuser\authroot<o:p></o:p>
PSChildName          :F88015D3F98479E1DA553D24FD42BA3F43886AEF<o:p></o:p>
PSDrive            :cert<o:p></o:p>
PSProvider           :Microsoft.PowerShell.Security\Certificate<o:p></o:p>
PSIsContainer      :False<o:p></o:p>
Archived           :False<o:p></o:p>
Extensions         : {}
FriendlyName       :CW HKT SecureNet CA SGC Root<o:p></o:p>
IssuerName           :System.Security.Cryptography.X509Certificates.X500DistinguishedName<o:p></o:p>
NotAfter           :10/16/2009 2:59:00 AM<o:p></o:p>
NotBefore          :6/30/1999 3:00:00 AM<o:p></o:p>
HasPrivateKey      :False<o:p></o:p>
PrivateKey         :<o:p></o:p>
PublicKey            :System.Security.Cryptography.X509Certificates.PublicKey<o:p></o:p>
RawData            : {48, 130, 2, 235...}
SerialNumber       : 00
SubjectName        :System.Security.Cryptography.X509Certificates.X500DistinguishedName<o:p></o:p>
SignatureAlgorithm   :System.Security.Cryptography.Oid<o:p></o:p>
Thumbprint           :F88015D3F98479E1DA553D24FD42BA3F43886AEF<o:p></o:p>
Version            : 1
Handle             : 1577256
Issuer             :O=C&W HKT SecureNet CA SGC   Root, C=hk<o:p></o:p>
Subject            :O=C&W HKT SecureNet CA SGC   Root, C=hk<o:p></o:p>
在其他驱动器中导航<o:p></o:p>
除了文件系统、注册表和证书驱动器外,Windows PowerShell 还附带有几个其他有用的驱动器,其中包括别名 (Alias:)、环境提供程序 (Env:)、函数 (Function:) 和变量 (Variable:) 驱动器。使用相同的基本方法可以在这些驱动器中导航。<o:p></o:p>
关于 Windows PowerShell 驱动器<o:p></o:p>
Windows PowerShell 中扩展导航功能背后的概念是 Windows PowerShell 驱动器。
可以在 Windows PowerShell 的任何数据存储区中创建 Windows PowerShell 驱动器,而且它们可以具有任何有效名称,如 C: 或“My Drive”后跟冒号 (:)。可以使用在文件系统驱动器中所用的相同方法在这些驱动器中导航。但是,Windows PowerShell 驱动器仅在 Windows PowerShell 中是可见的。无法在 Windows 资源管理器或 Cmd.exe 中查看或访问它们。<o:p></o:p>
Windows PowerShell 附带有 Windows PowerShell 提供程序支持的数个有用驱动器。若要查看 Windows PowerShell 驱动器的列表,请键入:<o:p></o:p>
get-psdriv
也可以使用 New-PsDrive cmdlet 创建自己的 Windows PowerShell 驱动器。例如,若要创建名为“MyDocs:”的新驱动器(位于 My Documents 目录中),请键入: <o:p></o:p>
new-psdrive -name MyDocs -psprovider   FileSystem -root "$home\My Documents"<o:p></o:p>
现在,可以像使用任何其他驱动器那样使用 MyDocs: 驱动器。可以将您的位置转到该驱动器,枚举其内容以及更改其属性。<o:p></o:p>
驱动器和提供程序<o:p></o:p>
Windows PowerShell 提供程序使 Windows PowerShell 中的驱动器可用于您的会话,这些提供程序是 .NET 程序集,它们使在专用数据存储区中的数据在 Windows PowerShell 中可用,以便您可以轻松地查看和管理该数据。有关 Windows PowerShell 提供程序的信息,请键入:<o:p></o:p>
get-help about_psprovider<o:p></o:p>
若要查看 Windows PowerShell 提供程序的列表,请键入:<o:p></o:p>
get-psprovide
有关提供程序帮助文件的列表,请键入:<o:p></o:p>
get-help -category provider<o:p></o:p>
有关特定提供程序的信息,请键入:<o:p></o:p>
get-help   <提供程序名称><o:p></o:p>
例如,<o:p></o:p>
get-help registry<o:p></o:p>
<o:p> </o:p>

严禁抄袭和谢绝任何形式的私自转载,如需转载,请与本人联系,谢谢!<o:p></o:p>
好书推荐,精彩明天继续······<o:p></o:p>
 向有一定开发经验的朋友们推荐两本.NET方面的经典著作,中文版在国内深受读者好评!<o:p></o:p>
1.《C#和.NET实战:平台、语言与框架》(原书名:Practical .Net2 and C#2: Harness the Platform, the Language, the Framework)<o:p></o:p>
<o:p>  DSC0000.jpg </o:p>

<!---->(1)       <!---->C#传奇经典<o:p></o:p>
<!---->(2)       <!---->世界众多.NET专家好评如潮的秘籍<o:p></o:p>
<!---->(3)       <!---->国内四位MVP联袂翻译<o:p></o:p>
<!---->(4)       <!---->深入全面,知识密集,代码丰富<o:p></o:p>
更多详细信息: http://www.china-pub.com/37188<o:p></o:p>
<o:p> </o:p>
2.《ASP.NET 2.0揭秘.卷1》(原书名: ASP.NET 2.0 Unleashed
 

DSC0001.jpg
<o:p></o:p>
<!---->(1)   <!---->微软技术大师力作<o:p></o:p>
<!---->(2)   <!---->四位微软MVP联袂翻译,众多MVP鼎力推荐<o:p></o:p>
<!---->(3)   <!---->代码密集,提供C#和VB.NET两种版本<o:p></o:p>
<!---->(4)   <!---->有史以来最成功的ASP.NET著作的最新版,有“ASP.NET圣经”之誉。<o:p></o:p>
更多详细信息:

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-379158-1-1.html 上篇帖子: PowerShell常用命令 下篇帖子: PowerShell 脚本读取 rss 新闻
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表