Сам недавно узнал (месяцев 8 назад) что в PowerShell можно использовать C# напрямую в скрипте.
Add-Type @'
public class Foo
{
public string GetComputerName()
{
return System.Environment.MachineName + " it works!";
}
}
'@
$foo = New-Object Foo
$foo.GetComputerName()
Это позволит вам написать метод который вернет работает ли пользователь за ПК или нет, и уже на основании этого принимать решение о дальнейшей работе ПК. Можно также все это сделать в C# и только вызвать в скрипте.
Скрипт нельзя запускать много раз с добавлением типа, будет ошибка.
Для этого сохраните создание типа в другом скрипте и импортируйте его в основной через
. C:\Path\CreateType.ps1
При внесении изменения в тип нужно перезапустить сессию ISE PowerShell.
C# богаче для определения активности пользователя.