• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1018
  • Last Modified:

Using "ifmember" to map network drives for users in multiple groups.

Using "ifmember" to map network drives for users in multiple groups.

His guys, I'm trying to use "ifmember" to map network drives for users in multiple group, but it will only map the needed drives for users in the first group that fines. Here is the bat file that I'm using.

::test for membership - goto appropriate group
ifmember "mydomain\mydomain Accounting" || goto mydomainAccounting
ifmember "mydomain\mydomain Payable" || goto mydomainAccountsPayable
ifmember "mydomain\mydomain Accounts Receivable" ||  goto mydomainAccountsReceivable
ifmember "mydomain\mydomain Authorized ETA" || goto mydomaindETA
ifmember "mydomain\mydomain Escheat" || goto mydomainescheat
ifmember "mydomain\mydomain Escrow Trust Accounting" || goto mydomainETA
ifmember "mydomain\mydomain Executive" || goto mydomainexecutive
ifmember "mydomain\mydomain GeneralLedger" || goto mydomainGeneralLedger
ifmember "mydomain\mydomain HR Related" || goto mydomainHumanResources
::if not a member of any of the above - goto global mapping
goto global

:mydomainAccounting
net use g: \\mydomain\accounting /persistent:no
net use j: \\mydomain\journal /persistent:no
net use m: \\mydomain\ap /persistent:no
net use r: \\mydomain\ar /persistent:no
net use l: \\mydomain\gl /persistent:no
goto global

:mydomainAccountsPayable
net use n: \\mydomain\ap /persistent:no
goto global

:mydomainAccountsReceivable
net use g: \\mydomain\accounting /persistent:no
net use r: \\mydomain\ar /persistent:no
net use t: \\mydomain\eta /persistent:no
goto global

:mydomaindETA
net use g: \\mydomain\accounting /persistent:no
net use t: \\mydomain\eta /persistent:no
net use z: \\mydomain\authorizedeta /persistent:no
goto global

:mydomainescheat
net use k: \\mydomain\1099 /persistent:no
net use n: \\mydomain\escheat /persistent:no
net use t: \\mydomain\eta /persistent:no
goto global

:mydomainETA
net use t: \\mydomain\eta
goto global

:mydomainexecutive
net use p: \\mydomain\legal
net use x: \\mydomain\executive
goto global

:mydomainGeneralLedger
net use g: \\mydomain\accounting
net use j: \\mydomain\journal
net use l: \\mydomain\gl
net use m: \\mydomain\ap
net use r: \\mydomain\ar
goto global

:mydomainHumanResources
net use f: \\mydomain\apps
net use g: \\mydomain\accounting
net use i: \\mydomain\installs
net use o: \\mydomain\hr
net use y: \\mydomain\payrollhr
net use u: \\mydomain\everyone
goto global

:global
net use U: \\mydomain\everyone /persistent:no
net use I: \\mydomain\installs /persistent:no

exit

***Credit to Sirbounty for the bat file***
0
bleonard55301
Asked:
bleonard55301
  • 3
  • 2
1 Solution
 
sirbountyCommented:
Hello again! :^)

You'll need to 'call' those subsections if you want to continue testing:
I changed the goto's to call's...execution should return and process the subsequent tests.... I also changed all the section goto globals to goto :eof (since goto global is the 'final' execution...)


::test for membership - goto appropriate group
ifmember "mydomain\mydomain Accounting" || call :mydomainAccounting
ifmember "mydomain\mydomain Payable" || call :mydomainAccountsPayable
ifmember "mydomain\mydomain Accounts Receivable" ||  call :mydomainAccountsReceivable
ifmember "mydomain\mydomain Authorized ETA" || call :mydomaindETA
ifmember "mydomain\mydomain Escheat" || call :mydomainescheat
ifmember "mydomain\mydomain Escrow Trust Accounting" || call :mydomainETA
ifmember "mydomain\mydomain Executive" || call :mydomainexecutive
ifmember "mydomain\mydomain GeneralLedger" || call :mydomainGeneralLedger
ifmember "mydomain\mydomain HR Related" || call :mydomainHumanResources
::if not a member of any of the above - goto global mapping
goto global

:mydomainAccounting
net use g: \\mydomain\accounting /persistent:no
net use j: \\mydomain\journal /persistent:no
net use m: \\mydomain\ap /persistent:no
net use r: \\mydomain\ar /persistent:no
net use l: \\mydomain\gl /persistent:no
goto :eof

:mydomainAccountsPayable
net use n: \\mydomain\ap /persistent:no
goto :eof

:mydomainAccountsReceivable
net use g: \\mydomain\accounting /persistent:no
net use r: \\mydomain\ar /persistent:no
net use t: \\mydomain\eta /persistent:no
goto :eof

:mydomaindETA
net use g: \\mydomain\accounting /persistent:no
net use t: \\mydomain\eta /persistent:no
net use z: \\mydomain\authorizedeta /persistent:no
goto :eof

:mydomainescheat
net use k: \\mydomain\1099 /persistent:no
net use n: \\mydomain\escheat /persistent:no
net use t: \\mydomain\eta /persistent:no
goto :eof

:mydomainETA
net use t: \\mydomain\eta
goto :eof

:mydomainexecutive
net use p: \\mydomain\legal
net use x: \\mydomain\executive
goto :eof

:mydomainGeneralLedger
net use g: \\mydomain\accounting
net use j: \\mydomain\journal
net use l: \\mydomain\gl
net use m: \\mydomain\ap
net use r: \\mydomain\ar
goto :eof

:mydomainHumanResources
net use f: \\mydomain\apps
net use g: \\mydomain\accounting
net use i: \\mydomain\installs
net use o: \\mydomain\hr
net use y: \\mydomain\payrollhr
net use u: \\mydomain\everyone
goto :eof

:global
net use U: \\mydomain\everyone /persistent:no
net use I: \\mydomain\installs /persistent:no

exit
0
 
Steve KnightIT ConsultancyCommented:
Try changing each "goto mydomainAccounting" bits to call :myDomainAccounting then change the "goto global" after each to goto :eof so it drops to the end of the file and out of the subroutine call each time.

That will then call each set of drive mappings as a subroutine.  Note however it won't overwrite a drive mapping unless you put in some net use x: /delete commands so the first "g: "will win as it stands.


0
 
Steve KnightIT ConsultancyCommented:
:-) Guess I was a bit slow hitting submit there!!
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
sirbountyCommented:
There'll be other days Steve... ;^)
0
 
bleonard55301National Systems ManagerAuthor Commented:
Works great!! A+ answer thanks SirBounty!!
0
 
sirbountyCommented:
Happy to help - thanx : )
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now