Articles of PowerShell

如何设置IIS应用程序池回收时间,而不使用丑陋的Add-WebConfiguration语法?

我一直脚本编写我们的IIS 7.5实例的configuration,并通过其他人民的脚本的脚本我已经想出了一个我喜欢的语法: $WebAppPoolUserName = "domain\user" $WebAppPoolPassword = "password" $WebAppPoolNames = @("Test","Test2") ForEach ($WebAppPoolName in $WebAppPoolNames ) { $WebAppPool = New-WebAppPool -Name $WebAppPoolName $WebAppPool.processModel.identityType = "SpecificUser" $WebAppPool.processModel.username = $WebAppPoolUserName $WebAppPool.processModel.password = $WebAppPoolPassword $WebAppPool.managedPipelineMode = "Classic" $WebAppPool.managedRuntimeVersion = "v4.0" $WebAppPool | set-item } 我已经看到这样做了很多不同的方式,不那么简洁,我喜欢这种设置对象属性的语法看起来比较像我在TechNet上看到的东西: Set-ItemProperty 'IIS:\AppPools\DemoPool' -Name recycling.periodicRestart.requests -Value 100000 有一件事我没有弄清楚,但是如何使用这个语法设置回收计划。 这个命令设置ApplicationPoolDefaults,但是很丑陋: add-webconfiguration system.applicationHost/applicationPools/applicationPoolDefaults/recycling/periodicRestart/schedule -value (New-TimeSpan -h […]

Powershell远程删除PKI证书

我最近重build了我的PKI,我想删除发给我networking中所有客户端机器的证书。 听起来像是Powershell的工作! 所以我写了这个脚本,由GPO分发,从SysVol运行,并在启动时在客户端机器上触发: set-location cert:\LocalMachine\My $certname = $env:COMPUTERNAME + ".domain.com" get-item * | %{ if($_.issuer -like "CN=IssuingCA*" -and $_.DnsNameList.unicode -like $certname) { remove-item .\$_.Thumbprint -Force } } 从提升的命令提示符: 当冉,脚本没有输出(只是一个新的terminal线)。 它不返回错误,证书不会被删除。 将参数-WhatIf添加到脚本中的Remove-Item命令时,不会再删除错误和证书。 当运行Remove-Item。\ CERTIFICATE-THUMBPRINT -Force时,证书将被删除。 这是一个权限问题? 有一个更聪明/更简单的方法来做到这一点? 谢谢!

域名系统(DNS)服务器Cmdlet的小问题

我想知道如果我需要清除一些caching或有我遇到的问题。 我试图从DNS区域中删除Alogging,并用具有相同主机名称的CNameloggingreplace它们。 Remove-DnsServerResourceRecord -Zonename $line -InputObject $record -Force Add-DnsServerResourceRecordCName -Zonename $line -Name $hostname -TimeToLive $ttl -HostNameAlias $target 这引发了我: Add-DnsServerResourceRecordCName:在服务器NS01的zone zone.tld中创build资源logging@失败。 在C:\ admin \ updatettl.ps1:56 char:4 + Add-DnsServerResourceRecordCName -Zonename $ line -Name $ hostname> -TimeToLive … + ~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (@:root / Microsoft / … urceRecordCName)> [Add-DnsServerResourceRecordCName],CimException + FullyQualifiedErrorId:WIN32 9709,附加DnsServerResourceRecordCName 有任何想法吗? 谢谢

无法为CurrentUser设置Powershell ExecutionPolicy

这里是我正在运行的命令的一个示例: PS C:\> Get-ExecutionPolicy -List Scope ExecutionPolicy —– ————— MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser Undefined LocalMachine Unrestricted PS C:\> Set-ExecutionPolicy Unrestricted -Scope CurrentUser PS C:\> Get-ExecutionPolicy -List Scope ExecutionPolicy —– ————— MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser Undefined LocalMachine Unrestricted 我想将CurrentUser设置为Unrestricted ,但我似乎无法这样做。 我检查了这个MSDN文档中概述的组策略,但没有find任何configuration。 任何线索,我可以如何设置?

如何使用PowerShell比较两台Windows服务器之间的已安装修补程序?

我需要使用PowerShell比较开发者和生产环境之间已经安装的补丁。 我该怎么做?

在Exchange 2010中无法提供“发送”权限

我试图给Exchange 2010中的一个用户“发送”权限。下面是我正在运行的Powershell命令: Add-ADPermission "User1" -User "Ourdomain\User2" -Extendedrights "Send As" Powershell返回这个错误: Active Directory操作在DC.OurDomain.pri上失败。 这个错误是不可回溯的。 其他信息:访问被拒绝。 活动目录响应:00000005:SecErr:DSID-031521D0,问题4003(INSUFF_ACCESS_RIGHTS),数据0 + CategoryInfo:WriteError:(0:Int32)[Add-ADPermission],ADOperationException + FullyQualifiedErrorId:EDBB94A3,Microsoft.Exchange.Management.RecipientTasks。 AddADPermission 我已经尝试了多个Powershell命令的替代品 – 即。 使用-Identity等,但那和EMC向导都返回相同的错误。 我不确定是否“INSUFF_ACCESS_RIGHTS”是指我正在运行命令的用户还是指向正在发送的权限的用户? 我一直在关注Microsoft Technet “pipe理邮箱的发送权限”网页: http : //technet.microsoft.com/en-us/library/bb676368.aspx 所以已经添加了你需要这两个权限: 组织pipe理 收件人pipe理 但是这没有帮助。 有任何想法吗? 更新 如果我做到以下几点: 使用“高级function”视图打开“AD用户和计算机” 转到User1的属性 在安全选项卡上点击“高级” select“添加” input“用户2”并select“发送”允许 这是有效的,如果我closuresADUaC并再次打开并重新检查这些新的权限,他们仍然存在。 如果我大约10分钟后返回,那么这些权限现在已经消失 – user2完全不会显示在user1的安全权限中。 不要以为我以前见过这种AD行为。

Powershell命令来备份SQL Server数据库

是否有PowerShell命令将执行服务器上的所有数据库的备份? 或者,我可以从PowerShell调用存储过程(将执行备份)?

如何通过Powershell为IIS APPPOOL \ *帐户添加ACL权限?

我希望能够为新网站设置IIS帐户具有修改权限。 我有以下脚本: function Set-ModifyPermission ($directory, $username, $domain = 'IIS APPPOOL') { $inherit = [system.security.accesscontrol.InheritanceFlags]"ContainerInherit, ObjectInherit" $propagation = [system.security.accesscontrol.PropagationFlags]"None" $acl = Get-Acl $directory $user = New-Object System.Security.Principal.NTAccount($domain, $username ) $accessrule = New-Object system.security.AccessControl.FileSystemAccessRule($user, "Modify", $inherit, $propagation, "Allow") $acl.AddAccessRule($accessrule) set-acl -aclobject $acl $directory } 但是,当我运行它,我得到这样的错误: Set-Acl:此工作站与主域之间的信任关系失败。 我认为这是因为IIS APPPOOL不是一个真正的域,而是一个假的帐户上的一个奇怪的前缀。 有没有正确的方法来引用该帐户,以便我可以做这个工作?

如何使用Powershell启用卷影副本?

如何启用特定驱动器上的卷影副本(D:,E:,…),并使用Powershell设置时间表? 我只需要一些提示如何开始。

使用PowerShell检测AD站点选项

如何使用PowerShell在PowerShell中查找AD站点选项,例如+IS_INTER_SITE_AUTO_TOPOLOGY_DISABLED ? 我一直在玩下面的命令,但不能让它吐出任何有用的东西。 Get-ADObject -Filter 'objectClass -eq "site"' -Searchbase (Get-ADRootDSE).ConfigurationNamingContext` -Properties options