191145685 发表于 2018-9-2 12:14:53

23. PowerShell -- 定义文本,密码和用户交互处理


[*]  Powershell 定义文本

[*]  使用双引号,可以让自己的定义的字符中的变量被内容替换;
$site="飞苔博客 Powershell博客"$text="$site $(get-date) $env:windir"$text  输出:
  飞苔博客 Powershell博客 08/25/2012 18:49:41 C:windows
  2.使用单引号,可以让自己的定义的字符串原样输出;
$text='$fei $(tai) $env:windir 飞苔博客 (20+2012)'$text  输出:
  $fei $(tai) $env:windir 飞苔博客 (20+2012)
  3. 文本中的两种特殊字符, 一个是变量的前缀“$”,一个是反引号“·”位于数字键1左边。
  PS C:\> "computer name:$env:computername"
  computer name: computer1
  PS C:\> "current date:$(get-date)"
  current date:05/07/2015 09:47:11
  4. Powershell转义字符
  在其它编程语言中喜欢将反斜杠作为转义字符,但是在Powershell中扮演转义字符角色的不是反斜杠,而是反引号“`”字符串中的反引号,会对紧跟随其后的字符进行特殊处理。
#使用单引号闭合字符串输出双引号'The site of my blog is"www.mossfly.com"'#使用转义字符输出双引号“My blog site is`"www.mossfly.com`""#在字符串中输出换行符“The site of my blog is `"www.mossfly.com`",`n飞苔博客"  输出:
  The site of my blog is”www.mossfly.com”
  My blog site is”www.mossfly.com”
  The site of my blog is “www.mossfly.com”,
  飞苔博客
  5. Powershell转义字符表
转义字符描述`n换行符`r回车符`t制表符`a响铃符`b退格符`’单引号`”双引号`0Null“反引号本身  6. PowerShell中strings 定义多行文本
  @“字符串”@格式定义多行文本,尤其是较长的文本,再好不过了,这里要注意开始和结束的标记必须另起一行。
@"这首诗用来评价陶渊明的诗歌再好不过了 一语天然万古新,豪华落尽见真淳。南窗白日羲皇上,未害渊明是晋人。"@  7. PowerShell中用户的交互
  如果要提示用户输入可以使用read-host
  PS E:> $name=Read-Host "请输入您的用户名"
  请输入您的用户名: Mosser Lee
  PS E:> "您输入的用户名为:$name"
  您输入的用户名为:Mosser Lee
  如何解析read-host中的变量?以通过ExpandString方法解析
  PS E:> $inputPath=Read-Host "请输入文件路径"
  请输入文件路径: $env:windir
  PS E:> $inputPath
  $env:windir
  PS E:> $ExecutionContext.InvokeCommand.ExpandString($inputPath)
  C:windows
  如何将加密的密码转换为普通文本?
  PS E:> $pwd=Read-Host -AsSecureString "请输入密码"
  请输入密码: ******
  PS E:> $pwd
  System.Security.SecureString
  PS E:> ::PtrToStringAuto(::SecureStringToBSTR($pwd))
  abc123
询问用户名和密码
  如果你想授权一个用户需要提供用户凭据,可以使用Get-Credential命令,该命令会弹出一个安全对话框,一旦用户输入完毕,就会返回一个Credential对象包含用户名和密码
  PS E:> $cre=Get-Credential MossserLee
  PS E:> $cre
  UserName                        Password
  --------                        --------
  MossserLee System.Security.SecureString
  如何轻松的获得用户凭据,不需要用户交互的输入?
  Function Get-DomainCredential()
  {
  $domain=Get-DomainName
  $username = "$domain\administrator"
  $password = "123456"
  $cred = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force))
  return $cred
  }

页: [1]
查看完整版本: 23. PowerShell -- 定义文本,密码和用户交互处理