我使用的powershell脚本类似于下面的脚本,它查看AD安全组成员身份,并基于此为用户映射驱动器。我想要实现的是,当它看到用户从某个特定IP或子网登录时,除了从AD组成员身份获取的驱动器之外,它还会映射一组不同的驱动器,任何洞察力都将受到赞赏。
# The section below determines what AD groups is the user member of
$strName = $env:username
function get-GroupMembership($DNName,$cGroup){
$strFilter = "(&(objectCategory=User)(samAccountName=$strName))"
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.Filter = $strFilter
$objPath = $objSearcher.FindOne()
$objUser = $objPath.GetDirectoryEntry()
$DN = $objUser.distinguishedName
$strGrpFilter = "(&(objectCategory=group)(name=$cGroup))"
$objGrpSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objGrpSearcher.Filter = $strGrpFilter
$objGrpPath = $objGrpSearcher.FindOne()
If (!($objGrpPath -eq $Null)){
$objGrp = $objGrpPath.GetDirectoryEntry()
$grpDN = $objGrp.distinguishedName
$ADVal = [ADSI]"LDAP://$DN"
if ($ADVal.memberOf.Value -eq $grpDN){
$returnVal = 1
return $returnVal = 1
}else{
$returnVal = 0
return $returnVal = 0
}
}else{
$returnVal = 0
return $returnVal = 0
}
}
# The section below maps network drives based on users AD Security Group memberships
$result = get-groupMembership $strName "SecurityGrtoup1"
if ($result -eq '1') {
$(New-Object -ComObject WScript.Network).RemoveNetworkDrive("G:");
$(New-Object -ComObject WScript.Network).MapNetworkDrive("G:", "\\server1\Group");
$(New-Object -ComObject WScript.Network).RemoveNetworkDrive("P:");
$(New-Object -ComObject WScript.Network).MapNetworkDrive("P:", "\\server2\Common");
}
$result = get-groupMembership $strName "SecurityGroup3"
if ($result -eq '1') {
$(New-Object -ComObject WScript.Network).RemoveNetworkDrive("N:");
$(New-Object -ComObject WScript.Network).MapNetworkDrive("N:", "\\Server3\files");
}发布于 2013-04-11 08:01:24
这应该会将IPv4地址作为一个字符串对象:
$ip = (Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object {$_.IPAddress} | Select-Object -ExpandProperty IPAddress)[0]然后,您可以根据需要对其进行解析,也可以改为使用.IPSubnet或.DefaultIPGateway属性(如果这样可以获得所需的内容)。
有关其他可用属性,请尝试:
Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object {$_.IPAddress} | Get-Memberhttps://stackoverflow.com/questions/15936982
复制相似问题