gawatkins has asked for the wisdom of the Perl Monks concerning the following question:
I have a set of strings returned from a function depicting Active Directory user accounts. The string is in the form of:
I would like to change the format to read:Win32_Account.Domain="ADDomain",Name="aduser1" Win32_Account.Domain="ADDomain",Name="aduser2" Win32_Account.Domain="ADDomain",Name="aduser3" Win32_Account.Domain="ADDomain",Name="aduser4"
So they can easily be understood on a report. I am currently using the following code to perform this task.ADDomain\aduser1 ADDomain\aduser2 ADDomain\aduser3 ADDomain\aduser4
Although the code works, is there a more efficient way to do the work. Any advice would be welcomed. Thank you,#!/usr/bin/perl -w use strict; use warnings; my $string = q/ Win32_Account.Domain="ADDomain",Name="aduser1"/; my ( $domain, $uname ) = split( ",", $string ); $domain =~ s/\"//ig; $domain =~ s/Win32_Account.Domain=//ig; $uname =~ s/\"//ig; $uname =~ s/Name=//ig; #concat the parts or replace with Account Deleted if SID not found my $user = ( $uname eq "" ? "Account Deleted" : $domain . "\\" . $unam +e ); print $user;
Greg W.
Update:
- Changed the output, Thanks Roy Johnson.
- Replaced #/ with #!/, Thanks ikegami
Back to
Seekers of Perl Wisdom