2014-09-24 84 views
0

我正在使用AD域,我想通过PowerShell远程更改密码策略。powershell - 如何设置属性

我在这里:

$domain1 = New-Object System.DirectoryServices.DirectoryEntry("LDAP://test.com") 

$domain |get-member 
... 
masteredBy      Property System.DirectoryServices.PropertyValueCollection masteredBy {get;set;}      
maxPwdAge      Property System.DirectoryServices.PropertyValueCollection maxPwdAge {get;set;}       
minPwdAge      Property System.DirectoryServices.PropertyValueCollection minPwdAge {get;set;}       
..... 

- >在这一点上我看到有这些性能的定义{get;set;}

的问题是:这意味着你可以在喜欢的方式设置maxPwdAge

$domain |set-property -name maxPwdAge -value XX

请记住,我不能使用任何cmdlet的从Active Directory模块,因为远程域没有运行Active Directory Web Services

这个问题是理解的含义{获得;设置;}的性质,并找到一个PS的方式来设置这些值;-)

+0

如果我错了,但是密码策略未在组策略中配置,我将删除此密码策略? – Matt 2014-09-24 13:13:05

+0

通常在PowerShell中,通过调用像这样的属性来使用get方法:$ object.propertyname。以同样的方式,如果对象支持它,你应该能够像这样使用set:$ object.propertyname ='new value' – ojk 2014-09-24 13:23:30

回答

0

在这种情况下,这些都是只读属性。您需要编辑组策略或调用传统Net * API以编程方式更改此设置。

0

找到了!!! ...在最简单的方法:d

定义与$域后:

$domain = New-Object System.DirectoryServices.DirectoryEntry("LDAP://test.com") 

我可以读:

$domain.maxPwdAge 

我可以设置:

$domain.maxPwdAge = 10 
$domain.setinfo() 

我只错过了'setinfo()'方法.....之后它终于起作用了!