Articles of PowerShell

使用Powershell获得一组特定的性能计数器

我试图设置一个脚本,使用PowerShell生成blg文件每一段时间。 我知道这可以使用perfmon XML模板来完成,但是对于这个特定的项目,我必须尽可能使用powershell来完成。 我的主要问题是,我无法存储我想在一个variables中使用的性能计数器的列表,并重新使用它们。 我试图使用下面的脚本来创build一个性能计数器列表来使用: $Counters = @() $Counters += '\Memory\Available Bytes' $counters += '\Paging File(*)\% Usage' $Counters += '\PhysicalDisk(*)\Disk Reads/sec' $Counters += '\PhysicalDisk(*)\Disk Writes/sec' $Counters += '\PhysicalDisk(*)\Avg. Disk sec/Read' $Counters += '\PhysicalDisk(*)\Avg. Disk sec/Write' $Counters += '\Processor(*)\% Processor Time' $Counters += '\System\Processor Queue Length' foreach($counter in $Counters) { $string = $string + ", '" […]

高级function – 获取计算机对象的本地安全组成员

我试图编译一个有权访问我们组织中的一组计算机/服务器的组列表,关于MSDN许可证报告..: – / 把我的工作放在本地组成员关于Hey Scripting Guy的博客文章中: http : //blogs.technet.com/b/heyscriptingguy/archive/2013/10/27/the-admin-s-first-steps-local-组membership.aspx 但是,我需要validation每个服务器上的多个组中的成员。 而这里来的尴尬的东西,我不记得之前看到:当添加额外的参数的函数的参数部分,它无法得到任何组成员。 function Test-LocalSecurityGroups { [CmdletBinding()] param( [parameter( ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true)] [string[]]$ComputerName = $env:COMPUTERNAME, [parameter( ValueFromPipelineByPropertyName=$true)] [string[]]$Group ) BEGIN { Add-Type -AssemblyName System.DirectoryServices.AccountManagement $ctype = [System.DirectoryServices.AccountManagement.ContextType]::Machine } PROCESS{ foreach ($Computer in $ComputerName) { Write-Verbose "Connecting to $Computer" $context = New-Object -TypeName System.DirectoryServices.AccountManagement.PrincipalContext -ArgumentList $ctype, $Computer $idtype = […]

为什么我不能使用给定服务器的Powershell命令Send-MailMessage?

我正尝试使用以下命令(不带换行符)通过另一台服务器的Exchange 2013服务器中继电子邮件。 发送服务器被列出,明确允许中继匿名电子邮件和几个月前使用相同的命令。 Send-MailMessage -To [valid email group] -From [throwaway address] -Subject "Test Only" -SmtpServer [valid URI to server] -body "Testing" 命令的结果是没有任何反应。 没有错误,没有电子邮件,没有。 我不是Exchangepipe理员,他说我们已经安装了更新等,但是我们无法将一个更新或会话关联到此失败。 任何疑难解答提示 谢谢。

重新启动服务器Powershell端口

我刚在PowerShell中遇到了一个远程处理项目的问题。 我试图从我们的内部网中远程重新启动坐在DMZ中的服务器,但得到一个RPC服务器不可用的错误。 The RPC server is unavailable. (Exception from HRESULT: 0x800706BA) 我知道这可能意味着需要的端口被阻塞。 我的问题是:为了能够成功执行命令,需要打开的最小端口数量是多less。 我是否需要在两个方向上打开端口或足够? 到目前为止我从微软find的是TCP和UDP:HTTP – 80,443,593 命名pipe道 – 445 RPC端点映射器 – 135 那么我真的需要打开所有的端口吗? 甚至更多? (由于dynamic端口关联?)可悲的是我不能自由testing,因为我不负责防火墙,所以我想从一开始就订购正确的端口。 附加信息: 来源:Server 2012重新启动目标:Server2003

以编程方式备份​​从版本6开始的KACE转储文件?

我们为我们的一些用户系统使用KACE系统pipe理设备。 从KACE 5.x起,您可以直接从设备下载备份文件。 我们利用这种方法将数据库备份到脚本上的磁带上,如下所示: $TodaysDate = Get-Date -format yyyyMMdd $KaceRootDownloadUrl = "http://kace-url/common/download_file.php?FILENAME=/kbackup/" $KaceDBFileName=$TodaysDate+"_k1_dbdata.gz" $KaceKBoxFileName=$TodaysDate+"_kbox_file.tgz" $KaceBackupFolder="D:\\backupfolder\\KACE\\" $WebClient = New-Object System.Net.WebClient $WebClient.DownloadFile($KaceRootDownloadUrl+$KaceDBFileName, $KaceBackupFolder+$KaceDBFileName) $WebClient.DownloadFile($KaceRootDownloadUrl+$KaceKBoxFileName, $KaceBackupFolder+$KaceKBoxFileName) 不幸的是,通过KACE 6.0升级,此URL现在redirect到login页面。 我尝试在WebClient DownloadFile调用上发送凭据,但仍然将其redirect到login页面。 有没有其他人处理这个问题? 有没有一个秘密路线使用httpauthentication,而不是寻找一个logincookie?

我可以在PowerShell上执行Azure自动化Runbook吗?

其实我想自己运行这些运行手册,而不是依靠自动化部分。 在这种情况下,我可以select何时部署它们,而且我可以灵活地selectvariables。 为我提供一些简单的教程会更好。 任何帮助将不胜感激。 谢谢

如何在Windows PowerShell ISE中运行MySQL提示符?

我想使用PowerShell ISE选项卡来连接mysql客户端和tun sql语句,但只要我使用以下命令连接到客户端 – >mysql.exe –defaults-file=<abc.xnf> –datadir=<xyz> 不会出现mysql提示符,而是控制台performance为连续的进程运行。 有谁知道如何可以得到MySQL提示?

Move-ADObject:无法执行该操作,因为该对象的父代不是被解释或删除

PS C:\Users\Administrator> Get-ADComputer NAME | Move-ADObject -TargetPath "OU=SERVERS,OU=COUNTY, OU=STATE,OU=REGION,OU=COUNTRY,DC=subdomain,DC=mydomain,DC=com" 但是,我得到这个: Move-ADObject:无法执行该操作,因为该对象的父代不是被解释或删除 任何想法我做错了什么? ADComputer不正确的pipe道? 示例显示这是有效的。 我正在尝试将计算机移到默认的新OU中。

在Powershell中使用不同的.NET框架版本进行reflection

我想从.NET程序集反映一些程序集属性。 我使用Powershell 2.0,但程序集是使用.NET Framework 4.5.1编写的,所以当我尝试以下命令时: $assembly = [Reflection.Assembly]::ReflectionOnlyLoadFrom("C:\Path\To\My\Assembly.dll") 我得到以下例外: 无法加载文件或程序集“file:/// C:\ Path \ To \ My \ Assembly.dll”或其某个依赖项。 此程序集由比当前加载的运行时更新的运行时构build,无法加载。 我已经尝试了几个不同的主题(例如Assembly.Load,Assembly.LoadFrom),但没有任何改进。 有任何想法吗? 我可以使用Get-Command获取基本信息,但是不会返回我需要的所有程序集属性。

SCSM如何将受影响的用户与服务请求相关联?

我正在使用内置的SCSM cmdlet和SMlets powershell模块。 我能够查询服务请求,但我似乎无法弄清楚如何获得给定服务请求的受影响的用户。 我以下列方式获取服务请求: Import-Module SMlets -ErrorAction Stop $SCSMclassSR = Get-SCSMClass -Name System.WorkItem.ServiceRequest $SCSMobject = Get-SCSMObject -Class $SCSMclassSR 如果您select任何给定的票证并运行Get-Member ,您可以查看属性列表。 其中没有一个映射回受影响的用户。 考虑到票数据可能与用户对象一起保存,我运行了下面的代码: $scsmuser = Get-SCSMObject -Class (get-scsmclass -name microsoft.ad.user) -filter "UserName -like <username>" 这里没有一个属性可以映射到任何票据上(也可以运行一个gm)。 当然,这可能是我的无知,产生票的方法并不恰当地命名或描述。 我试过看SMlets源代码来收集一些见解,但我不是一个C#开发人员,所以它的一些超过了我的头。 我也尝试从EnterpriseManagementObject Class的msdn页面获得一些理解和帮助,但是无济于事。 希望有一个非常简单的解决scheme,我只是在想它。 但是, 如何使用PowerShell获得SCSM票证的受影响用户? 优选地,服务请求票证。