@@ -12149,8 +12149,8 @@ https://msdn.microsoft.com/en-us/library/windows/desktop/aa370440(v=vs.85).aspx
1214912149 )
1215012150
1215112151 BEGIN {
12152- if ($PSBoundParameters['Credential'] -and ($Method -eq 'WinNT') ) {
12153- Write-Warning "[Get-NetLocalGroup] -Credential is only compatible with '-Method WinNT'"
12152+ if ($PSBoundParameters['Credential']) {
12153+ $LogonToken = Invoke-UserImpersonation -Credential $Credential
1215412154 }
1215512155 }
1215612156
@@ -12203,12 +12203,7 @@ https://msdn.microsoft.com/en-us/library/windows/desktop/aa370440(v=vs.85).aspx
1220312203 }
1220412204 else {
1220512205 # otherwise we're using the WinNT service provider
12206- if ($Credential -ne [Management.Automation.PSCredential]::Empty) {
12207- $ComputerProvider = New-Object DirectoryServices.DirectoryEntry("WinNT://$Computer,computer", $Credential.UserName, $Credential.GetNetworkCredential().Password)
12208- }
12209- else {
12210- $ComputerProvider = [ADSI]"WinNT://$Computer,computer"
12211- }
12206+ $ComputerProvider = [ADSI]"WinNT://$Computer,computer"
1221212207
1221312208 $ComputerProvider.psbase.children | Where-Object { $_.psbase.schemaClassName -eq 'group' } | ForEach-Object {
1221412209 $LocalGroup = ([ADSI]$_)
@@ -12223,6 +12218,12 @@ https://msdn.microsoft.com/en-us/library/windows/desktop/aa370440(v=vs.85).aspx
1222312218 }
1222412219 }
1222512220 }
12221+
12222+ END {
12223+ if ($LogonToken) {
12224+ Invoke-RevertToSelf -TokenHandle $LogonToken
12225+ }
12226+ }
1222612227}
1222712228
1222812229
@@ -12354,8 +12355,8 @@ https://msdn.microsoft.com/en-us/library/windows/desktop/aa370601(v=vs.85).aspx
1235412355 )
1235512356
1235612357 BEGIN {
12357- if ($PSBoundParameters['Credential'] -and ($Method -eq 'WinNT') ) {
12358- Write-Warning "[Get-NetLocalGroupMember] -Credential is only compatible with '-Method WinNT'"
12358+ if ($PSBoundParameters['Credential']) {
12359+ $LogonToken = Invoke-UserImpersonation -Credential $Credential
1235912360 }
1236012361 }
1236112362
@@ -12449,12 +12450,7 @@ https://msdn.microsoft.com/en-us/library/windows/desktop/aa370601(v=vs.85).aspx
1244912450 else {
1245012451 # otherwise we're using the WinNT service provider
1245112452 try {
12452- if ($Credential -ne [Management.Automation.PSCredential]::Empty) {
12453- $GroupProvider = New-Object DirectoryServices.DirectoryEntry("WinNT://$Computer/$GroupName,group", $Credential.UserName, $Credential.GetNetworkCredential().Password)
12454- }
12455- else {
12456- $GroupProvider = [ADSI]"WinNT://$Computer/$GroupName,group"
12457- }
12453+ $GroupProvider = [ADSI]"WinNT://$Computer/$GroupName,group"
1245812454
1245912455 $GroupProvider.psbase.Invoke('Members') | ForEach-Object {
1246012456
@@ -12539,6 +12535,12 @@ https://msdn.microsoft.com/en-us/library/windows/desktop/aa370601(v=vs.85).aspx
1253912535 }
1254012536 }
1254112537 }
12538+
12539+ END {
12540+ if ($LogonToken) {
12541+ Invoke-RevertToSelf -TokenHandle $LogonToken
12542+ }
12543+ }
1254212544}
1254312545
1254412546
0 commit comments