• PowerShell学习笔记


    1,ps7官方文档

    2,使用脚本生成帮助文档

    function Add-Node { 
            param ( 
                $selectedNode, 
                $name, 
                $tag 
            ) 
            $newNode = new-object System.Windows.Forms.TreeNode  
            $newNode.Name = $name 
            $newNode.Text = $name 
            $newNode.Tag = $tag 
            $selectedNode.Nodes.Add($newNode) | Out-Null 
            return $newNode 
    } 
     
    function Get-HelpTree { 
        if ($script:cmdletNodes)  
        {  
              $treeview1.Nodes.remove($script:cmdletNodes) 
            $form1.Refresh() 
        } 
        $script:cmdletNodes = New-Object System.Windows.Forms.TreeNode 
        $script:cmdletNodes.text = "PowerShell Help" 
        $script:cmdletNodes.Name = "PowerShell Help" 
        $script:cmdletNodes.Tag = "root" 
        $treeView1.Nodes.Add($script:cmdletNodes) | Out-Null 
         
        $treeView1.add_AfterSelect({ 
            if ($this.SelectedNode.Tag -eq "Cmdlet") { 
                $helpText = Get-Help $this.SelectedNode.Name -Full 
                $richTextBox1.Text = $helpText | Out-String 
                $linkLabel1.Text = $helpText.relatedLinks.navigationLink[0].uri 
                $form1.refresh() 
            } else { 
                $richTextBox1.Text = "Example to show how to use TreeView control in PowerShell script" 
                $linkLabel1.Text = "http://www.ravichaganti.com/blog" 
            } 
        }) 
         
        #Generate Module nodes 
        $modules = @("Microsoft.PowerShell.Core","Microsoft.PowerShell.Diagnostics","Microsoft.PowerShell.Host","Microsoft.PowerShell.Management","Microsoft.PowerShell.Security","Microsoft.PowerShell.Utility") 
         
        $modules | % { 
            $parentNode = Add-Node $script:cmdletNodes $_ "Module" 
            $moduleCmdlets = Get-Command -Module $_ 
            $moduleCmdlets | % { 
                $childNode = Add-Node $parentNode $_.Name "Cmdlet" 
            } 
        } 
        $script:cmdletNodes.Expand() 
    } 
     
    #Generated Form Function 
    function GenerateForm { 
    ######################################################################## 
    # Code Generated By: SAPIEN Technologies PrimalForms (Community Edition) v1.0.7.0 
    # Generated On: 3/2/2010 5:46 PM 
    # Generated By: Ravikanth Chaganti (http://www.ravichaganti.com/blog) 
    ######################################################################## 
     
    #region Import the Assemblies 
    [reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null 
    [reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null 
    #endregion 
     
    #region Generated Form Objects 
    $form1 = New-Object System.Windows.Forms.Form 
    $linkLabel1 = New-Object System.Windows.Forms.LinkLabel 
    $label4 = New-Object System.Windows.Forms.Label 
    $label3 = New-Object System.Windows.Forms.Label 
    $label2 = New-Object System.Windows.Forms.Label 
    $button1 = New-Object System.Windows.Forms.Button 
    $richTextBox1 = New-Object System.Windows.Forms.RichTextBox 
    $treeView1 = New-Object System.Windows.Forms.TreeView 
    $InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState 
    #endregion Generated Form Objects 
     
    #---------------------------------------------- 
    #Generated Event Script Blocks 
    #---------------------------------------------- 
    #Provide Custom Code for events specified in PrimalForms. 
    $button1_OnClick=  
    { 
    $form1.Close() 
     
    } 
     
    $OnLoadForm_StateCorrection= 
    {Get-HelpTree 
    } 
     
    $linkLabel1_OpenLink= 
    { 
        [system.Diagnostics.Process]::start($linkLabel1.text) 
    } 
    #---------------------------------------------- 
    #region Generated Form Code 
    $form1.Text = "Primal Form" 
    $form1.Name = "form1" 
    $form1.DataBindings.DefaultDataSourceUpdateMode = 0 
    $System_Drawing_Size = New-Object System.Drawing.Size 
    $System_Drawing_Size.Width = 838 
    $System_Drawing_Size.Height = 612 
    $form1.ClientSize = $System_Drawing_Size 
     
     
    $linkLabel1.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",9,0,3,0) 
    $System_Drawing_Size = New-Object System.Drawing.Size 
    $System_Drawing_Size.Width = 539 
    $System_Drawing_Size.Height = 23 
    $linkLabel1.Size = $System_Drawing_Size 
    $linkLabel1.TabIndex = 10 
    $linkLabel1.Text = "http://www.ravichaganti.com/blog" 
    $System_Drawing_Point = New-Object System.Drawing.Point 
    $System_Drawing_Point.X = 253 
    $System_Drawing_Point.Y = 541 
    $linkLabel1.Location = $System_Drawing_Point 
    $linkLabel1.TabStop = $True 
    $linkLabel1.DataBindings.DefaultDataSourceUpdateMode = 0 
    $linkLabel1.Name = "linkLabel1" 
    $linkLabel1.add_click($linkLabel1_OpenLink) 
     
    $form1.Controls.Add($linkLabel1) 
     
    $label4.TabIndex = 9 
    $System_Drawing_Size = New-Object System.Drawing.Size 
    $System_Drawing_Size.Width = 136 
    $System_Drawing_Size.Height = 23 
    $label4.Size = $System_Drawing_Size 
    $label4.Text = "Cmdlet Help URI" 
    $label4.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",9,1,3,0) 
     
    $System_Drawing_Point = New-Object System.Drawing.Point 
    $System_Drawing_Point.X = 253 
    $System_Drawing_Point.Y = 518 
    $label4.Location = $System_Drawing_Point 
    $label4.DataBindings.DefaultDataSourceUpdateMode = 0 
    $label4.Name = "label4" 
     
    $form1.Controls.Add($label4) 
     
    $label3.TabIndex = 6 
    $System_Drawing_Size = New-Object System.Drawing.Size 
    $System_Drawing_Size.Width = 100 
    $System_Drawing_Size.Height = 23 
    $label3.Size = $System_Drawing_Size 
    $label3.Text = "Description" 
    $label3.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",9,1,3,0) 
     
    $System_Drawing_Point = New-Object System.Drawing.Point 
    $System_Drawing_Point.X = 255 
    $System_Drawing_Point.Y = 37 
    $label3.Location = $System_Drawing_Point 
    $label3.DataBindings.DefaultDataSourceUpdateMode = 0 
    $label3.Name = "label3" 
     
    $form1.Controls.Add($label3) 
     
    $label2.TabIndex = 5 
    $System_Drawing_Size = New-Object System.Drawing.Size 
    $System_Drawing_Size.Width = 177 
    $System_Drawing_Size.Height = 23 
    $label2.Size = $System_Drawing_Size 
    $label2.Text = "PowerShell Help Tree" 
    $label2.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",9,1,3,0) 
     
    $System_Drawing_Point = New-Object System.Drawing.Point 
    $System_Drawing_Point.X = 13 
    $System_Drawing_Point.Y = 13 
    $label2.Location = $System_Drawing_Point 
    $label2.DataBindings.DefaultDataSourceUpdateMode = 0 
    $label2.Name = "label2" 
     
    $form1.Controls.Add($label2) 
     
    $button1.TabIndex = 4 
    $button1.Name = "button1" 
    $System_Drawing_Size = New-Object System.Drawing.Size 
    $System_Drawing_Size.Width = 75 
    $System_Drawing_Size.Height = 23 
    $button1.Size = $System_Drawing_Size 
    $button1.UseVisualStyleBackColor = $True 
     
    $button1.Text = "Close" 
     
    $System_Drawing_Point = New-Object System.Drawing.Point 
    $System_Drawing_Point.X = 253 
    $System_Drawing_Point.Y = 577 
    $button1.Location = $System_Drawing_Point 
    $button1.DataBindings.DefaultDataSourceUpdateMode = 0 
    $button1.add_Click($button1_OnClick) 
     
    $form1.Controls.Add($button1) 
     
    $richTextBox1.Name = "richTextBox1" 
    $richTextBox1.Text = "" 
    $richTextBox1.DataBindings.DefaultDataSourceUpdateMode = 0 
    $System_Drawing_Point = New-Object System.Drawing.Point 
    $System_Drawing_Point.X = 255 
    $System_Drawing_Point.Y = 61 
    $richTextBox1.Location = $System_Drawing_Point 
    $System_Drawing_Size = New-Object System.Drawing.Size 
    $System_Drawing_Size.Width = 562 
    $System_Drawing_Size.Height = 454 
    $richTextBox1.Size = $System_Drawing_Size 
    $richTextBox1.TabIndex = 1 
     
    $form1.Controls.Add($richTextBox1) 
     
    $System_Drawing_Size = New-Object System.Drawing.Size 
    $System_Drawing_Size.Width = 224 
    $System_Drawing_Size.Height = 563 
    $treeView1.Size = $System_Drawing_Size 
    $treeView1.Name = "treeView1" 
    $System_Drawing_Point = New-Object System.Drawing.Point 
    $System_Drawing_Point.X = 13 
    $System_Drawing_Point.Y = 37 
    $treeView1.Location = $System_Drawing_Point 
    $treeView1.DataBindings.DefaultDataSourceUpdateMode = 0 
    $treeView1.TabIndex = 0 
     
    $form1.Controls.Add($treeView1) 
     
    #endregion Generated Form Code 
     
    #Save the initial state of the form 
    $InitialFormWindowState = $form1.WindowState 
    #Init the OnLoad event to correct the initial state of the form 
    $form1.add_Load($OnLoadForm_StateCorrection) 
    #Show the Form 
    $form1.ShowDialog()| Out-Null 
     
    } #End Function 
     
    #Call the Function 
    GenerateForm
    View Code

    3,查看命令帮助:man get-filehash / get-help get-filehash

    4,get-filehash 

    1, 获取文件MD5

    get-filehash xxx.txt -Algorithm MD5

    2, 获取字符串MD5: 需要自定义函数实现, 这里的函数有些问题,比如例子中得出的“123456”的MD5值和实际不同:实际:E10ADC3949BA59ABBE56E057F20F883E答案:E1ADC3949BA59ABBE56E057F2F883E少了2位,当然也不是全部的0都去掉了。原因是字节转换成字符串的时候没有保证是2位宽度造成的,待研究。

    function Get-Hash{
    param(
        [string] $string = $(throw 'string is required'),
         [ValidateSet("MD5", "SHA256")]
        [string] $algorithm
    )
    
    $utf8 = new-object -TypeName System.Text.UTF8Encoding
    $hasher = [System.Security.Cryptography.HashAlgorithm]::create($algorithm)
    $hash = $hasher.ComputeHash($utf8.GetBytes($string))
    
     -join ( $hash | foreach {"{0:X}" -f $_} )
    }
    
    Get-Hash '123456' -algorithm MD5
    Get-Hash '123456' -algorithm SHA256

    5,

    6,

  • 相关阅读:
    走势图通用写法
    配置文件通配符的问题
    jvm排查工具
    有趣的linux命令
    jQuery框架
    jQuery常见案例
    页面布局之--Font Awesome+导航
    页面布局之--导航栏功能
    页面布局之--内容区域的左右分居
    Dom,查找标签和操作标签
  • 原文地址:https://www.cnblogs.com/everest33Tong/p/11344824.html
Copyright © 2020-2023  润新知