我一直在使用Get-ADUser和Get-ADComputer来帮助解决系统中的问题。 我已经看到通过registry, PsLoggedon.exe和其他脚本识别哪个用户login到特定机器上的几种方法,但是由于我不是一个真正的networkingpipe理员,我经常被拒绝访问。 这很好,因为我挖掘深度并不是很有趣。 我所需要的只是以某种方式确定哪些用户在计算机上拥有帐户(configuration文件)(或者哪些机器有用户帐户),以便我们可以联系他们并在他们的IP地址发生exception时帮助他们。 这两个对象之间是不是完全没有关系?
部署HKCUregistry的最佳方法是, 任何login到计算机的人都可以进行部署。 有人向我提到主动安装…但我不确定。
我怎样才能找回一个特定的财产? 我知道select-object cmdlet在这方面似乎很低调: PS C:\> Get-ADOrganizationalUnit -SearchBase 'OU=Houston,DC=contoso,DC=net' -Filter 'Name -like "SomeOU"' -Properties * | Select-Object Description,Streetaddress,State,postalcode | format-list 优化的版本将是: PS C:\> Get-ADOrganizationalUnit -SearchBase 'OU=Houston,DC=contoso,DC=net' -Filter 'Name -like "SomeOU"' -Properties Description,Streetaddress,State,postalcode 为什么-property开关不是单独返回input的propENTS?
我是一个专业的Linux系统pipe理员,但我不得不做一些权力。 我的问题是这样的: 我用这个命令从AD得到活动用户列表: $allusers= get-aduser -Filter {Enabled -eq $true} | FT samAccountName 我的意图是$ alluserrs成为一个数组填充get-aduser命令的输出行。 在数组填充后popup这个块似乎证实确实如此。 for ($i; $i -le $allusers.length; $i++) { $allusers[$i] } 大! 所以现在我想检查一个给定的用户名是否存在于该数组中。 我看到数组中包含一个非常方便的“Contains()”函数,看起来它应该是我的目的。 echo $allusers.Contains("joeq") 可惜! 我得到这个错误: Method invocation failed because [System.Object[]] doesn't contain a method named 'contains'. 在C:\ Users \ dylanh \ jirauserpurge.ps1:33 char:24 + echo $ allusers.contains <<<<(“joeq”)+ CategoryInfo:InvalidOperation:(contains:String)[],RuntimeException […]
如何在后台查看由Get-ADUser执行的LDAP查询,即: 这个命令 Get-ADUser -Filter * -Properties * | Where { $_.Enabled -eq $True } | Where { $_.PasswordNeverExpires -eq $False } | Where { $_.PasswordExpired -eq $False } 我想知道确切的LDAP查询发送到Active Directory服务器。 编辑:我试图将一些Powershell脚本转换为Python,因此我需要原始的LDAP查询,我可以喂python-ldap。 编辑2:Active Directorypipe理中心有很好的学习LDAP查询function。 在全局search中,您可以使用关键字和勾选checkbox构build查询,然后单击转换为LDAP 。 享受漂亮和复杂的LDAP查询。
我已经search并创build了两个脚本。 (1),(2) (1)首先导出一个名为“ap.cz”的共享邮箱的“Full Access” Get-Mailbox ap.cz | Get-MailboxPermission | where {$_.user.tostring() -ne "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false} | Select Identity,User,@{Name='Access Rights';Expression={[string]::join(', ', $_.AccessRights)}} | Export-Csv \\myserver\c$\fulla.csv –NoTypeInformation (2)第二个是导出名为“ap.cz”的共享邮箱的“Send As” Get-Mailbox ap.cz | Get-ADPermission | where { ($_.ExtendedRights -like “*Send-As*”) -and ($_.IsInherited -eq $false) -and -not ($_.User -like “NT AUTHORITY\SELF”) } | Select Identity, User, […]
在尝试运行Copy-GPO cmdlet以使用预定义的迁移表复制组策略对象时,我收到此exception: System.Runtime.InteropServices.COMException (0x8007000D): The data is invalid. (Exception from HRESULT: 0x8007000D) at Microsoft.GroupPolicy.GPMResultClass.OverallStatus() at Microsoft.GroupPolicy.Gpo.CopyTo(GPDomain targetDomain, String newDisplayName, Boolean copyAcl, GPMigrationTable migrationTable, GPStatusMessageCollection& statusMessages) at Microsoft.GroupPolicy.Commands.CopyGpoCommand.ProcessRecord() at System.Management.Automation.CommandProcessor.ProcessRecord() At C:\Users\djedig\Documents\OUCopy.ps1:335 char:2 + NewGPOsFromTemplate "OU=$sSubDomain,OU=$sDivision,$sBaseRessourcenDN" $sTmplBas … + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,NewGPOsFromTemplate 这篇博客文章指出,这是由于迁移表内的目标帐户数据无法parsing,但我似乎无法弄清楚可迁移数据的“正确”格式。 事实上,在没有-MigrationTable参数的情况下运行Copy-GPO时,GPO复制得很好。 我的命令是: Copy-GPO -SourceName […]
我已阅读描述使用计算机/用户启动/closures脚本的TechNet页面,这很好,但是我想通过命令行创build这些脚本(而不必在gpedit.msc中单击)。 看起来像%SYSTEMROOT%\ System32 \ GroupPolicy \ Machine \ Scripts中的scripts.ini和psscripts.ini指定要运行的脚本,但这些脚本在第一次运行gpedit.msc之前不存在。 直接创build和编辑这些文件是否安全? 或者我需要使用Set-GPO或类似的东西? 谢谢!
我在两个不同的Server 2008 R2系统上安装了PowerShell。 在一个系统上, $HOME被预置为$profile ,但是另一个没有任何前提: 服务器1(PowerShell 2) PS C:\> echo $HOME C:\Users\sysnetdom PS C:\> $profile | format-list -force CurrentUserAllHosts : C:\Users\sysnetdom\Documents\WindowsPowerShell\profile.ps1 CurrentUserCurrentHost : C:\Users\sysnetdom\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 服务器2(PowerShell 3) PS C:\> echo $HOME C:\Users\sysnetdom PS C:\> $profile | format-list -force CurrentUserAllHosts : WindowsPowerShell\profile.ps1 CurrentUserCurrentHost : WindowsPowerShell\Microsoft.PowerShell_profile.ps1 (我剪掉AllUserspath,因为这些都是正常的。) 这是一个没有分配主目录的域帐户。 据我所知,这应该会导致Windows分配一个默认的本地主页。 它的确如此,但在服务器2上似乎并没有被PowerShell 3.0所吸引。 我能做些什么吗?
我目前正在build立一个实验室环境,以了解DSC可以完成什么以及在哪些限制范围内。 我们需要根据操作系统,AD组成员和包含目标的OU等标准推出一次性configuration到一组节点。 所以我开发了以下示例脚本: # Pulls computer objects from Active Directory Function Get-Nodes { Param($OperatingSystem) Get-AdComputer -Filter 'OperatingSystem -eq ${OperatingSystem}' -SearchBase "OU=SomeThing,DC=contoso,DC=com" } # Defines the configuration to apply Configuration ConfigureHostsPush { Node $Allnodes.NodeName { # This resource is not able to delete a key, only values Registry ConfigureRegistry { Ensure = "Present" Key = "HKEY_LOCAL_MACHINE\SOFTWARE\" […]