Articles of PowerShell

对发送电子邮件的Powershell脚本进行故障诊断

该脚本在触发特定事件时发送电子邮件。 当我在FSRM上configuration的文件屏幕检测到用户保存特定文件types时,我正在运行此脚本。 命令选项卡是我运行powershell.exe和这个脚本的参数。 我试图从事件日志中添加我的文件屏幕configuration生成的消息。 但是,当此脚本生成电子邮件时,它会生成以下内容而不是事件消息。 System.Diagnostics.EventLogEntry 这是脚本: function sendMail{ Write-Host “Sending Email” #SMTP server name $smtpServer = “smtp.abc.com” #Creating a Mail object $msg = new-object Net.Mail.MailMessage #gets the server name $srv = $env:computername #gets the event ID details $event = Get-Eventlog -LogName Application -source SRMSVC -Newest 1 #Creating SMTP server object $smtp = new-object Net.Mail.SmtpClient($smtpServer) […]

Office 365 Powershell – 将用户导出到csv文件

我从这篇文章中拿出了这个脚本: Office 365 Powershell,但是当我运行它时,我收到这个错误: 警告:更多结果可用。 请指定All或MaxResults参数之一。 我需要在哪里添加maxresults参数才能使导出成为可能? $lines = @() foreach($msolUser in (Get-MSOLUser -ALL | where {$_.isLicensed -eq $true})) { $UserInfo = Get-User -identity $msolUser.UserPrincipalName foreach($license in $msolUser.Licenses) { $lines += New-Object PsObject -Property @{ "Nom/Prenom"="$($UserInfo.DisplayName)"; "Societe"="$($UserInfo.Company)"; "AdressePrincipale"="$($UserInfo.UserPrincipalName)"; "Licences"="$($license.AccountSKUid)" } } } $lines | Export-CSV C:\out1.csv -Delimiter ";" -Encoding Unicode

获取不在父组中的所有AD用户

我有一个小组,我使用命名的工作人员。 它是一些嵌套组的父母。 我需要对该组进行审计,以列出不属于该组的一部分的用户或其中的任何嵌套子组。 我find了脚本,这些脚本会给我不属于工作人员组的用户,但不包括任何子组,因此用户可以是子组的一部分,但仍然被列为不在父母组。 我不想为父母的每个孩子组编写脚本。 有没有办法列出所有不属于一个团体的账户,而且还包括所有的子女?

Powershell脚本 – 检查退出代码

嗨,我有以下脚本: foreach ($server in $ProductList.$SelectedServer){ Invoke-Command -ComputerName $server -Credential domain\user -ScriptBlock { Import-Module WebAdministration echo "restarting AppPool $args[0] … on $args[1]" Restart-WebAppPool -Name $args[0] -ErrorAction stop echo "Restarted WebApp $args[0] on $args[1]"} } -ArgumentList $SelectedAppPool, $Server 我想检查Restart-WebAppPool命令是否成功执行。 如果是这样,我呼应'它的工作'其他回声'它没有工作'。 目标是提供一个简单的简单英文消息,而不是典型的未处理的exception。 谢谢

AD计算机度量

我正在试图找出Powershell脚本的正确编码。 我希望它看到我们所有的域控制器,并使用最新的lastlongondate。 它有数据后,我希望它通过操作系统分类,所以它会说Windows 10 – 100服务器2008 – 10前….我似乎无法弄清楚如何得到它来检查所有的控制器的适当的数据。 这是我迄今为止。 有没有人看到我在做什么错了? #Functions function ImportADModule { Import-Module ActiveDirectory if (!($?)) { Add-WindowsFeature RSAT-AD-PowerShell Import-Module ActiveDirectory } } function GetDN { param($domain) $names = $domain.Split(".") $bFirst = $true foreach ($name in $names) { if ($bFirst) { $dn += "DC=" + $name $bFirst = $false } else { $dn […]

Server 2012 Standard通过PowerShell使用设置导出特定的angular色

我最近试图将我的物理服务器转换为虚拟机。 特别是我的路由和远程访问服务器提供L2TP连接。 我已经能够这样做了,但是当我启动新的虚拟服务器(服务不启动,Nic的行为意外)时,angular色似乎从未正常工作。 所以不是试图从物理迁移到虚拟我只是做了一个新的虚拟机,并安装了Server 2012标准。 我不想手动重buildangular色,我想尝试在PowerShell中导出angular色和设置(仅适用于RRASangular色),并通过导入在新服务器上创build它。 我已经阅读了很多关于这个的教程,但它似乎只包括导出所有angular色和function。 在这种情况下,我真的只想导出我的路由和远程访问angular色的configuration。 我已经使用powershell来获取我的angular色列表,我知道如何导出它们,而不是远程访问。 这是我运行Get-WindowsFeature | where { $_.Installed -eq $True} | select displayname, name时Get-WindowsFeature | where { $_.Installed -eq $True} | select displayname, name Get-WindowsFeature | where { $_.Installed -eq $True} | select displayname, name DisplayName Name ———– —- File and Storage Services FileAndStorage-Services Storage Services Storage-Services Remote Access […]

Powershellarraysrobocopy

我有一个batch file,从serverA到serverB做一个robocoy,它工作得很好。 我有一个服务器名称列表。 我想将这个列表加载到一个powershell数组中,然后枚举这个数组,然后使用path运行这个robocopy。 这是我工作的robocopybatch file: ROBOCOPY C:\Websites\ \\serverB\C$\Websites\ /MIR 我想要做的是用数组中的值replace“serverB”。 我从来没有真正使用PowerShell之前,所以我甚至不知道从哪里开始,除了在机器上安装PowerShell;) 理论上,这是我想要的(psudo-code): $serverNames = ("serverA","serverB", "serverC") foreach ($server in $serverNames ) { "ROBOCOPY C:\Websites\ \\" + $server + "\C$\Websites\ /MIR" } 我想,问题是,如何执行什么通常是从PowerShell的批处理命令? 谢谢你的帮助!

如何在Microsoft Hyper-V Server 2008上安装Powershell?

我正在运行独立版本的Hyper-V,Microsoft Hyper-V Server 2008 ,并希望安装Powershell。 我会用它来使用pipe理库脚本。 我怎样才能做到这一点? 谢谢,

将数组的元素与PowerShell中的前一个元素进行比较

有人可以描述一个好的模式来比较$ entry [X]到$ entry [Y]来确定它们是否相同? 我试图得到我的日志可读摘要,不想吐出400条相同的线。 foreach ($log in $logs) { $nm = $log.LogDisplayName $header = $log.LogDisplayName Write-Host $header Add-Content $output "$header Log Errors/Warnings, Past 48 Hours" $entries = $log.Entries | ? {$_.TimeWritten -gt ($(Get-Date).AddDays(-2)) -and (($_.EntryType -like "Error") -or ($_.EntryType -like "Warning"))} foreach ($entry in $entries) { ***here is where I think I need […]

Set-QADUser可以设置所有属性吗?

我正在使用Quest命令行程序进行一个非常简单而直接的更新,但它不起作用。 没有错误,它只是没有改变的价值: Set-QADUser ttest -ObjectAttributes @{office="ABQ"} 不能简单得多 – 我做错了什么? 这两个工作正常: Set-QADUser ttest -objectAttributes @{otherTelephone=@('555-34-67','555-34-68')} Set-QADUser ttest -objectAttributes @{otherTelephone=''} 但是这不是: Set-QADUser ttest -objectAttributes @{extensionattribute2="test"}