Powershell管理系列(二十三)PowerShell操作之使用密文密码创建邮箱及连接powershell
-----提供AD\Exchange\Lync\Sharepoint\CRM\SC\O365等微软产品实施及外包,QQ:185426445.电话18666943750
我们使用Powershell创建邮箱的时候,填写密码有两种方式,
方法1、手动输入密码
$password = Read-Host "Enter password" -AsSecureString
New-Mailbox -UserPrincipalName [email protected] -Alias chris -Database "Mailbox Database 1" -Name ChrisAshton -OrganizationalUnit Users -Password $password -FirstName Chris -LastName Ashton -DisplayName "Chris Ashton" -ResetPasswordOnNextLogon $true
方法2、使用明文密码在加密使用
New-Mailbox -UserPrincipalName [email protected] -Alias chris -Database "Mailbox Database 1" -Name ChrisAshton -OrganizationalUnit Users -Password (ConvertTo-SecureString -String P@ssw0rd -AsPlainText -Force) -FirstName Chris -LastName Ashton -DisplayName "Chris Ashton" -ResetPasswordOnNextLogon $true
方法1使用起来感觉不太方便,每次新建账号都要输入一遍密码,方法2使用起来又容易导致密码被别人看到,安全性没保障,我们怎么确保创建密码的时候不用每次输入,又保证安全性有保障。方法是有的,就是使用密文密码。
步骤1、将密码加密后保持到c:\xxx.txt。
$mysecret="Passw0rd"
$mysecret|ConvertTo-SecureString -AsPlainText -Force |ConvertFrom-SecureString|Out-File c:\xxx.txt -Encoding utf8
步骤2、将密文密码转换成powershell可以使用的格式
$securestring=(Get-Content C:\xxx.txt).ToString() | ConvertTo-SecureString
$ptr = [System.Runtime.InteropServices.Marshal]::SecureStringToGlobalAllocUnicode($secureString)
$serverpass = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($ptr)
$Password = ConvertTo-SecureString $serverpass -AsPlainText –Force
步骤3、创建邮箱的时候调用$Password变量。
New-Mailbox -UserPrincipalName [email protected] -Alias chris -Database "Mailbox Database 1" -Name ChrisAshton -OrganizationalUnit Users -Password $password -FirstName Chris -LastName Ashton -DisplayName "Chris Ashton" -ResetPasswordOnNextLogon $true
我们连接powershell的时候,发现有个地方特别烦,每次都要输入用户名和密码,如下图。
其实我们可以把这个密码转换成密文密码保存下来,供powershell直接调用,命令如下:
$securestring=(Get-Content C:\xxx.txt).ToString() | ConvertTo-SecureString
$ptr = [System.Runtime.InteropServices.Marshal]::SecureStringToGlobalAllocUnicode($secureString)
$serverpass = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($ptr)
$UserName = "[email protected]" #定义管理员账户名称
$Password = ConvertTo-SecureString $serverpass -AsPlainText –Force
$cred = New-Object System.Management.Automation.PSCredential($UserName,$Password)
$session=New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://mail.rightdo.net/powershell -Authentication Basic -Credential $cred
Import-PSSession $sessionImport-PSSession $session
输入后powershell正常连接上了。
有加密同时也有解密的方法,将密文转换回明文(只能在加密时使用的计算机上解密)
$secureString = Get-Content -Path c:\xxx.txt | ConvertTo-SecureString
$ptr = [System.Runtime.InteropServices.Marshal]::SecureStringToGlobalAllocUnicode($secureString)
$mysecret = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($ptr)
$mysecret
本文出自 “周平的微软技术交流平台” 博客,请务必保留此出处http://yuntcloud.blog.51cto.com/1173839/1614363
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。