$Params = New-Object -ComObject 'klakaut.KlAkParams';
$Params.Add('Address', 'localhost:13000');
$Params.Add('UseSSL', $true)
$AdmServer = New-Object -COMObject "klakaut.KlAkProxy";
$code = @"
using System;
using System.Runtime.InteropServices;
public class PowershellComSecurity
{
[DllImport("Ole32.dll", CharSet = CharSet.Auto)]
public static extern int CoSetProxyBlanket(IntPtr p0, uint p1, uint p2, uint p3, uint p4, uint p5, IntPtr p6, uint p7);
public static int EnableImpersonation(object objDCOM) { return CoSetProxyBlanket(Marshal.GetIDispatchForObject(objDCOM), 10, 0, 0, 0, 3, IntPtr.Zero, 0); }
}
"@
Add-Type -TypeDefinition $code;
Remove-Variable -Name 'code';
[PowershellComSecurity]::EnableImpersonation($AdmServer) | Out-Null;
Все работает без авторизации. Windows Server 2022, KSC 15.1.0.20748
По мотивам публикации
Добавил в скрипт KSC.PS1 перед строкой
$AdmServer = New-Object -COMObject "klakaut.KlAkProxy";строки
и после указанной строки
Все работает без авторизации. Windows Server 2022, KSC 15.1.0.20748