Articles of PowerShell

使用PowerShell连接到Azure

如何使用Powershell连接到Azure? 我特指服务pipe理器系统,而不是资源pipe理器。 另外,使用证书还是使用用户名/密码连接更有意义?

Powershell命令用于从域中提取所有用户

Get-ADUser -SearchBase "dc=contoso,dc=local" -filter * -properties Name, Surname, samAccountName, Enabled, PasswordNeverExpires, PasswordExpired, PasswordLastSet, MemberOf | Select Name, Surname, SamAccountName, Enabled, PasswordExpired, MemberOf | Export-Csv C:\temp\expired3.csv 我需要使用此属性的域中的所有用户的列表,问题是与MemberOf属性。 而不是获得他们所属的组我只得到Microsoft.ActiveDirectory.Management.ADPropertyValueCollection

我的脚本不会去到下一个服务器

我试图从多个服务器检索事件日志(在某些情况下)。 它只检查第一台服务器,不移动到下一台服务器上。 它有什么问题? 我尝试了不同的脚本(这是我的第一个脚本,我知道他们吸) Clear-Host $serverArray = "DC1PRISEAS1","DC2DRISEAS1","ATLAH1PRBUSOB01","ATLAH1PRECLHS01","DC2STGHYPFS1","DC2STGHYPFS2","DC2STGHYPRS1","DC2STGHYPRS2","DC2STGHYPHFM1" foreach ($element in $serverArray) { Write-Output "$element" Get-Eventlog -Logname System -After (Get-Date).Adddays(-1) -ComputerName $element | Where {$_.entryType -Match "Error"} }

以特定方式检索计算机对象的脚本,并显示其各自的OU

我有一个有许多子OU的OU,每个OU都有一个计算机的OU。 要开始的最高级别的OU是具有许多子OU的“部门”。 我需要一个脚本来检索所有的计算机,并将它们列在一个表中,并显示它们各自的OU。 脚本的结果可能如下所示: 计算机名称— OU Computer01 —- Fabrikam.com/Departments/Finance/Computers ….或者它甚至可能看起来像是相应的AD'Object': Fabrikam.com/Departments/Finance/Computers/Computer01 虽然我更喜欢第一个。 这是我试过的脚本,但运行时会抛出大量的错误: On Error Resume Next Const ADS_SCOPE_SUBTREE = 2 Set objConnection = CreateObject("ADODB.Connection") Set objCommand = CreateObject("ADODB.Command") objConnection.Provider = "ADsDSOObject" objConnection.Open "Active Directory Provider" Set objCommand.ActiveConnection = objConnection objCommand.Properties("Page Size") = 1000 objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE objCommand.CommandText = _ "SELECT ADsPath FROM 'LDAP://OU=Departments,dc=fabrikam,dc=com' WHERE […]

PowerShell:如何获取本地用户和本地组,但排除禁用的帐户

我得到一个PowerShell命令,给我一个用户列表和这些用户所属的组。 唯一的问题是,这是给我的每一个用户,包括那些被禁用的。 我需要能够列出活动用户及其各自的组。 任何帮助,将不胜感激。 $adsi = [ADSI]"WinNT://$env:COMPUTERNAME" $adsi.Children | where {$_.SchemaClassName -eq 'user'} | Foreach-Object { $groups = $_.Groups() | Foreach-Object {$_.GetType().InvokeMember('Name', 'GetProperty', $null, $_, $null)} ; $_ | Select-Object @{n='UserName';e={$_.Name}},@{n='Groups';e={$groups -join ';'}} } | Format-Table -autosize -wrap

如何SSH到EC2群集中的所有实例?

我刚刚使用spark-ec2创build了一个集群。 我遵循这里的步骤http://spark.apache.org/docs/latest/ec2-scripts.html 。 现在我想要configuration所有的从站(150),即为所有的主站和所有从站同时安装Java 8,是否有一个快速而简单的方法来为所有实例(主站和从站)提供一个terminal?

在调整内存大小时,在2012 R2中创build虚拟机的PowerShell脚本失败

我已经创build了一个基本脚本来快速添加Hyper-V中的虚拟机,并且一切都很好,直到达到Set-VMMemory命令。 在这一点上,variables似乎失败并产生一个错误。 脚本代码: $Name = Read-Host -Prompt 'New VM Name' $ProcessorCount = Read-Host -Prompt 'Processor Count' $MinimumBytes = Read-Host -Prompt 'Dynamic Memory Minimum' $MemoryStartupBytes = Read-Host -Prompt 'Memory Startup Bytes' $MaximumBytes = Read-Host -Prompt 'Dynamic Memory Maximum' $Priority = Read-Host -Prompt 'Dynamic Memory Priority' $Buffer = Read-Host -Prompt 'Dynamic Memory Buffer' $VlanId = Read-Host -Prompt […]

我怎样才能find一个网站托pipe在我的域名只有其公共URL的IIS服务器实例?

我开始了一个新的工作,并inheritance了很多服务器和网站。 一个特定的网站,我不确定它托pipe什么服务器/ IIS实例。 我所知道的是该网站的公开url。 有没有办法(也许是一个PowerShell脚本?)来扫描我的域名,并find这个特定的URL绑定到IIS实例?

Powershell权限和执行策略

在closures之前,请注意它不是一个代码问题,而是一个环境,特权和政策问题,我们如何在整个环境中实现这一点。 我们正在定期创buildVHD,服务器和客户端,很大一部分这个脚本是使用下面的batch file从一个提升的pipe理命令提示符下运行的。 该脚本不是一个问题,因为它在多个Win 8.1 Pro和Server计算机上运行良好。 对于Win 8.1机器和一些不工作的服务器。 我想弄清楚为什么并将环境设置,策略应用于所有机器。 最好是一种自动化的方式,或者如果没有select手动的话 它触发的错误消息: New-VHD : The term 'New-VHD' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At E:\VHD\VhdCreateFormat\VhdCreateFormat.ps1:4 char:1 […]

从batch file运行Exchange Powershell脚本:命令不起作用。 我的语法有什么问题?

来自这个问题在这里: 如何创buildExchange PowerShell的脚本来修改所有共享邮箱的设置? 这是我的Powershell脚本(向右滚动以查看全部): $Mailboxes = Get-Mailbox -RecipientTypeDetails SharedMailbox Foreach ($Mailbox in $Mailboxes) { Set-Mailbox $Mailbox -MessageCopyForSentAsEnabled $True -MessageCopyForSendOnBehalfEnabled $True } 如果从Exchange命令行pipe理程序窗口启动,它可以正常工作。 但是我想从batch file启动它,所以我find了以下Microsoft页面: https : //technet.microsoft.com/en-us/library/bb123798%28v=exchg.150%29.aspx?f=255&MSPPError = -2147217396#了RunScript 按照指南那里,我创build了这个batch file(向右滚动查看全部): PowerShell.exe -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; 'C:\Program Files\Microsoft\Exchange Server\V15\bin\enablesentforshared.ps1'" 我添加了一个没有在说明中指定的事情是围绕我想要运行的脚本的完整path的单引号。 没有单引号,我得到关于C:\Program不是一个公认的cmdlet或脚本的错误。 无论如何,当我运行这个batch file时,terminal窗口打开,然后切换到Powershell窗口,脚本的path名被打印到屏幕上,但在[PS]提示符之前打印出来,没有任何东西执行。 这是我的Powershell窗口在执行batch file后的样子: VERBOSE: Connecting to exchangeserver.domain.com VERBOSE: Connected […]