@@ -12181,8 +12181,8 @@ https://msdn.microsoft.com/en-us/library/windows/desktop/aa370440(v=vs.85).aspx
12181
12181
)
12182
12182
12183
12183
BEGIN {
12184
- if ($PSBoundParameters['Credential'] -and ($Method -eq 'WinNT') ) {
12185
- Write-Warning "[Get-NetLocalGroup] -Credential is only compatible with '-Method WinNT'"
12184
+ if ($PSBoundParameters['Credential']) {
12185
+ $LogonToken = Invoke-UserImpersonation -Credential $Credential
12186
12186
}
12187
12187
}
12188
12188
@@ -12235,12 +12235,7 @@ https://msdn.microsoft.com/en-us/library/windows/desktop/aa370440(v=vs.85).aspx
12235
12235
}
12236
12236
else {
12237
12237
# otherwise we're using the WinNT service provider
12238
- if ($Credential -ne [Management.Automation.PSCredential]::Empty) {
12239
- $ComputerProvider = New-Object DirectoryServices.DirectoryEntry("WinNT://$Computer,computer", $Credential.UserName, $Credential.GetNetworkCredential().Password)
12240
- }
12241
- else {
12242
- $ComputerProvider = [ADSI]"WinNT://$Computer,computer"
12243
- }
12238
+ $ComputerProvider = [ADSI]"WinNT://$Computer,computer"
12244
12239
12245
12240
$ComputerProvider.psbase.children | Where-Object { $_.psbase.schemaClassName -eq 'group' } | ForEach-Object {
12246
12241
$LocalGroup = ([ADSI]$_)
@@ -12255,6 +12250,12 @@ https://msdn.microsoft.com/en-us/library/windows/desktop/aa370440(v=vs.85).aspx
12255
12250
}
12256
12251
}
12257
12252
}
12253
+
12254
+ END {
12255
+ if ($LogonToken) {
12256
+ Invoke-RevertToSelf -TokenHandle $LogonToken
12257
+ }
12258
+ }
12258
12259
}
12259
12260
12260
12261
@@ -12386,8 +12387,8 @@ https://msdn.microsoft.com/en-us/library/windows/desktop/aa370601(v=vs.85).aspx
12386
12387
)
12387
12388
12388
12389
BEGIN {
12389
- if ($PSBoundParameters['Credential'] -and ($Method -eq 'WinNT') ) {
12390
- Write-Warning "[Get-NetLocalGroupMember] -Credential is only compatible with '-Method WinNT'"
12390
+ if ($PSBoundParameters['Credential']) {
12391
+ $LogonToken = Invoke-UserImpersonation -Credential $Credential
12391
12392
}
12392
12393
}
12393
12394
@@ -12481,12 +12482,7 @@ https://msdn.microsoft.com/en-us/library/windows/desktop/aa370601(v=vs.85).aspx
12481
12482
else {
12482
12483
# otherwise we're using the WinNT service provider
12483
12484
try {
12484
- if ($Credential -ne [Management.Automation.PSCredential]::Empty) {
12485
- $GroupProvider = New-Object DirectoryServices.DirectoryEntry("WinNT://$Computer/$GroupName,group", $Credential.UserName, $Credential.GetNetworkCredential().Password)
12486
- }
12487
- else {
12488
- $GroupProvider = [ADSI]"WinNT://$Computer/$GroupName,group"
12489
- }
12485
+ $GroupProvider = [ADSI]"WinNT://$Computer/$GroupName,group"
12490
12486
12491
12487
$GroupProvider.psbase.Invoke('Members') | ForEach-Object {
12492
12488
@@ -12571,6 +12567,12 @@ https://msdn.microsoft.com/en-us/library/windows/desktop/aa370601(v=vs.85).aspx
12571
12567
}
12572
12568
}
12573
12569
}
12570
+
12571
+ END {
12572
+ if ($LogonToken) {
12573
+ Invoke-RevertToSelf -TokenHandle $LogonToken
12574
+ }
12575
+ }
12574
12576
}
12575
12577
12576
12578
0 commit comments