Articles of PowerShell

AD帐户的LDAP筛选器

我想要获取所有未过期且密码为空的广告用户帐户。 到目前为止,我已经使用了一个ldapfilter来获取所有过期的帐户: (&(objectCategory=person)(objectClass=user) (!accountExpires=9223372036854775807) (!accountExpires=0)) 我需要做一个filter,取得所有未到期的帐户,并有一个空白的密码。 任何build议我必须做什么修改。

创build一个新的VHD,并在没有DiskManagement窗口的情况下使用Powershell进行挂载

如何创build并装入没有分配驱动器号的新VHDX卷? 在一些服务器上,我得到了下面描述的行为,在其他的服务器上,它的工作方式应该是这样 所以除了AutoMount外,还必须有一个系统设置来影响这个行为。 我使用下面的代码来创build和安装一个VHDX卷与Powershell New-VHD -path $vhdpath -SizeBytes $vhdSize -Dynamic | ` Mount-VHD -NoDriveLetter -Passthru 这将创buildVHDX文件并将其挂载到系统中。 然后DiskManagement窗口即刻popup,要求我初始化新的卷。 但是我想用脚本初始化,分区和格式化卷。 我发现提示禁用Windows AutoMountfunction,但这并没有帮助。 另外,当我手动取消初始化对话框并继续执行以下命令时,系统会为该卷指定一个随机驱动器号: $d = InitializeDisk -Number 4 -PartitionStyle GPT $p = New-Partition -DiskNumber $d.Number -UseMaximumSize -AssignDriveLetter:$False $v = Format-Volume -Partition $p -FileSystem NTFS -Confirm:$false Add-PartitionAccessPath -DiskNumber $d.Number -PartitionNumber $p.PartitionNumber -AccessPath "C:\mount" 然后创build分区并将其挂载到C:\ mount中。 但系统也分配一个驱动器号。 我不想要这个。 系统:Windows […]

远程PowerShell非非pipe理员用户在非域PC

我试图达到以下目的:我想在不在域中的计算机上运行远程PowerShell脚本。 我已经研究了很多,并build立了所有的权限/防火墙规则等,使我得到以下结果。 当我尝试运行以下内容时: Invoke-Command -ComputerName thecomputer -ScriptBlock { $Session = New-Object -ComObject Microsoft.Update.Session } -credential regularuser 我得到以下错误: 从IClassFactory创build具有CLSID {4CB43D7F-7EEE-4906-8698-6 0DA1C38F2FE}的COM组件实例失败,原因如下:80070005访问被拒绝。 (从HRESULTexception:0x80070005(E_ACCESSDENIED))。 然而, 当我在远程PC上的pipe理员组中添加普通用户时,它可以正常工作 在普通用户(非pipe理员)本地运行相同的命令工作正常 另外,当我尝试跑步 Invoke-Command – 计算机名称thecomputer -ScriptBlock {Get-ChildItem C:\} -credential正规用户 它完美的作品。 我相信所有的连接设置正确(它作为pipe理员用户,以及具有不同脚本的普通用户)。 这似乎是一个特定的Microsoft.Update.Session COM对象的权利问题。 有没有人有任何想法如何解决这个问题(而不诉诸于pipe理员用户)。 我也尝试禁用防火墙(远射,但读一些其他职位),但结果相同。 远程机器是Windows 10专业。 先谢谢你, 维姆

远程调用命令Powershell停止 – WebAppPool不再在PowerShell 5升级后工作

我们有一个PowerShell脚本,通过以下命令closures远程应用程序池: $appPoolName = "myAppPool" $server = "myserver.domain.com" $stopAppPoolScript = {param($appPoolname); Import-Module WebAdministration; Stop-WebAppPool -Name $appPoolName;} #remotely execute script to stop the app pool Invoke-Command -ComputerName $server -scriptBlock $stopAppPoolScript -ArgumentList $appPoolname #sleep for 10 seconds Start-Sleep -s 10 #print out the status of the app pool Invoke-Command -ComputerName $server -scriptBlock $checkAppPoolStatusScript -ArgumentList $appPoolname #always says "Started" […]

使用Certutil来pipe理CA,显示请求者名称/ ID的证书并撤销

我正在寻找另一种方式来pipe理我的CA. 我写了一个powershell脚本,它允许我显示所有证书的指定的请求者名称或请求ID,并撤销这些证书。 有没有可能在certutil做到这一点? 我找不到有关请求ID或请求者名称的任何信息

允许用户在Windows Server 2012 RC2的PowerShell中添加pipe理单元

我有一个用户运行Powershell脚本,由Windows 2012RC2服务器上的Windows任务计划程序触发。 脚本使用特定的pipe理单元,在脚本开始时添加。 脚本失败,当我手动尝试通过在服务器上运行Powershell来查找问题的根本原因时,我发现用户无法添加pipe理单元: asnp <snap-in> + asnp <snap-in> + ~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (<snap-in>:String) [Add-PSSnapin], PSArgumentException + FullyQualifiedErrorId : AddPSSnapInRead,Microsoft.PowerShell.Commands.AddPSSnapinCommand 如果我在pipe理员的Powershell中运行相同的命令,它工作正常。 我如何允许用户在服务器上的PowerShell中添加pipe理单元?

PowerShell DSC无法使用xWebAdminstration创build应用程序池

目前我们正尝试使用PowerShell DSC(WMF5.0)和xWebAdminstration(v1.15)模块来设置应用程序池。 到目前为止,我们已经设法使用https://msdn.microsoft.com/en-us/powershell/dsc/pullserver中的指令成功地使客户机节点和服务器一起工作。 使用下面的脚本客户端节点安装IIS成功,但应用程序池没有被创build,这是问题所在。 Configuration MyWebsite { Import-DscResource -ModuleName xWebAdministration Node Webserver { WindowsFeature IIS { Ensure="Present" Name="Web-Server" } WindowsFeature Mgmt-Tools { Ensure = "Present" Name = "Web-Mgmt-Tools" } WindowsFeature Mgmt-Console { Ensure = "Present" Name = "Web-Mgmt-Console" } WindowsFeature Mgmt-Service { Ensure = "Present" Name = "Web-Mgmt-Service" } $secpasswd = ConvertTo-SecureString "PlainTextPassword" -AsPlainText -Force […]

无法通过PowerShell远程会话启用credSSP

我需要通过PowerShell远程启用远程启用credSSP身份validation。 运行时: enable-wsmancredssp -role client -delegatecomputer fqdn -force` 我得到这个错误: Access is denied. + CategoryInfo : InvalidOperation: (:) [Enable-WSManCredSSP], nvalidOperationException + FullyQualifiedErrorId : WsManError,Microsoft.WSMan.Management.EnableWSManCredSSPCommand + PSComputerName : xxx.xxx.xxx.xxx 即使执行“get-wsmancredssp”时也会发生相同的错误 当我通过rdp连接到服务器并运行命令它运行良好。 是否有一些防止远程启用的策略?

Exchange 2010中的Get-ExchangeServer不会在输出中返回Exchange 2013服务器

我有一个与2个Exchange 2007服务器,1个Exchange 2010服务器和1个Exchange 2013服务器的Exchange组织。 在运行Get-ExchangeServer cmdlet的2007和2013服务器上输出全部四台服务器。 在2010服务器上,Get-ExchangeServer cmdlet仅输出2007和2010服务器。 这是从2010年服务器的预期行为,还是表示在某个地方的环境中的一些问题? 在Exchange 2010服务器上; [PS] > Get-ExchangeServer Name Site ServerRole Edition AdminDisplayVersion —- —- ———- ——- ——————- BC-EXCH07 bclabs.local/Conf… Mailbox,… Enterprise Version 8.3 (Bui… BC-EXCH10 bclabs.local/Conf… Mailbox,… Enterprise Version 14.3 (Bu… BC-EXCH07-2 bclabs.local/Conf… Mailbox,… Enterprise Version 8.3 (Bui… 在Exchange 2007和2013服务器上; [PS] > Get-ExchangeServer Name Site ServerRole Edition AdminDisplayVersion […]

主Smtp地址New-Mailbox cmdlet的有效格式

我正在编写使用New-Mailbox cmdlet的简单应用程序。 其中一个参数是PrimarySmtpAddress 。 提供的Smtp地址必须有效,否则呼叫将失败。 我试图find一些有效的smtp地址规范,但无论我在哪里看,我看到不同的规则。 我在哪里可以find有效的Smtp地址格式的规范。