通常$Plist
将是一个数组,但是例如,我们只使用一个目录。
我的问题是我不能使用$ids
var。我不知何故无法读出数据,也无法绕过它:
Get-ADGroup -Identity $id -Properties member | Select-Object -ExpandProperty member
我需要每个目录的用户名及其组名。
赞:Path GroupName UserList
有人可以帮忙吗?也许调整我的代码或进行类似的操作:)
$plist = "\\Server\Share"
$FList = foreach($dir in $Plist)
{
Resolve-Path -Path $dir
Get-Acl -Path $dir -Filter Access | Select-Object -ExpandProperty Access | Where-Object {$_.IdentityReference -like "Domain\*"} | Select-Object IdentityReference
Get-Item $dir | select FullName
}
$Flist | ft FullName, IdentityReference
$identity = $Flist.IdentityReference | out-string
$ids = foreach($ident in $identity)
{
$ident = $ident.Replace("Domain\","")
$ident
}
foreach($id in $ids)
{
$id
Get-ADGroup -Identity $id -Properties member | Select-Object -ExpandProperty member
}
答案 0 :(得分:1)
不要在脚本中稍后使用的值上使用 class FirstActivity extends Component {
static navigationOptions = {
title: 'Main Screen'
}
constructor(props) {
super(props)
this.state = {number: 0}
}
Send_Data_Function = () => { this.props.navigation.navigate('Second', { no: this.state.number, }); }
render() {
return (
<NumericInput
minValue = {0}
initValue={this.state.number}
value={this.state.number}
onChange={value=> this.setState({number: value})}/>
</View>
<Text style={styles.TextStyle}> NEXT </Text>
</TouchableOpacity>/>
)}
class SecondActivity extends Component{
static navigationOptions =
{
title: "Second Activity"
};
render() {
return (
<View style= {styles.MainContainer}>
<Text style={styles.textStyle}>
1 = {this.props.navigation.state.params.no}
</Text>
</View>
)}
}
const AppNavigator = createStackNavigator({
First : {screen: FirstActivity},
Second : {screen: SecondActivity}
});
export default createAppContainer(AppNavigator);
(ft
)或Format-Table
。
Out-String
您还可以使用$ids = foreach($ident in $Flist.IdentityReference){
"$ident".Replace('Domain\','')
}
运算符一次性删除所有用户名中的域前缀:
-replace
答案 1 :(得分:0)
最终脚本是这样的,适用于可能需要类似内容的人们。因此,您可以读出有效权限并显示授予权限的组的组成员。
$ErrorActionPreference = "SilentlyContinue"
$Path = "\\Server\Share\Logs\"
$Log = $Path + "Effective_Permissions" + ".log"
$PPath = Read-Host "Enter Path to scan"
$plist = Get-Childitem -Path $PPath -Recurse | ?{ $_.PSIsContainer } | Select-Object FullName
foreach($Dir in $PList)
{
$Dir = $Dir -replace "@{FullName=", "" -replace "}"
Resolve-Path -Path $Dir
Write-Output "`n" | Out-File $log -append
Write-Output "#######################################################################" | Out-File $Log -append
Get-Item $Dir | select FullName | Out-File $Log -append
$AclList = Get-Acl -Path $Dir -Filter Access | Select-Object -ExpandProperty Access | Where-Object {$_.IdentityReference -like "Domain\*"} | Select-Object IdentityReference
Get-Acl -Path $dir -Filter Access | Select-Object -ExpandProperty Access | Where-Object {$_.IdentityReference -like "Domain\*"} | Out-File $Log -append
foreach($Id in $AclList.IdentityReference.Value -replace 'Domain\\')
{
$ADGroup = Get-ADGroup $Id -Properties member | Select-Object -ExpandProperty member
Write-Output "`n" | Out-File $Log -append
Write-Output "Member of $Id `n
---------------------------------" | Out-File $Log -append
foreach ($Object in $ADGroup)
{
$Group = Get-ADUser -filter * -SearchBase "$Object"
if($Group -ne $null)
{
$GrName = $Group.Name
Write-Output "$GrName" | Out-File $Log -append
}
}
}
Clear-Variable Object, Group, ADGroup, ACLList, GRName, Id
}